Jump to content

Openoffice-Calc DEZ in HEX wandeln


b3nz0l

Empfohlene Beiträge

Moin,

 

nachdem ich mehrere Stunden investiert habe bis ich zu dem gewünschten Ergebnis gekommen bin möchte ich dies hier nun zur verfügung stellen:

 

Es ging darum eine Liste mit TV Kanälen zu erstellen ähnlich der oscam.srvid, als quelle diente mir die Kanalbelegung vom kdg-forum-helpdesk da diese immer recht aktuell ist.

Und da ich manchmal ein verdammter pedant sein kann möchte ich dass diese Liste nach SID geordnet ist.

Des weiteren möchte ich die SID in HEX angezeigt bekommen, was auch das Hauptproblem an der Sache war.

 

Also haben wir die quelltabelle kopiert und in ein neues Tabellendokument eingefügt.

Aufs sortieren gehe ich hier mal nicht ein , das funktioniert unter dem aktuellen OOo ja recht selbsterklärend, es ist nur darauf zu achten dass man wenn man danach gefragt wird die auswahl auf alle spalten legt und nicht nur auf die nach der man sortieren möchte damit die zuordnung der namen erhalten bleibt.

 

um nun die dezimal angegebenen SIDs in HEX angezeigt zu bekommen bedienen wir uns der BASE funktion

=BASE(inHEXanzuzeigenderWert;zahlensystembasis;minimaleanzeigelänge)

es fällt auf dass unser Ausgangswert mitten in der Formel steht und da es eine menge werte sind die wir dann ändern müssten nehmen wir dafür einen Makro.

der soll die aktuell ausgewählte zelle bearbeiten

er schreibt dann vor die dez-zahl das "=BASE(" und dahinter das ";16;4)", wichtig ist auch dass es als formel reingeschrieben wird und nicht als string (zeichenkette).

anschließend wollen wir mit dem fokus noch eine zelle tiefer springen damit wir den makro bei bedarf direkt nochmal ausführen können

wenn wir den makro dann noch auf eine Tastenkombination legen können wir diese gedrückt halten und der Makro rattert schön die zellen in einer spalte von oben nach unten durch...

 

lange rede kurzer sinn, hier der Makro:

 

 

 

sub toHEX2
Dim Column as Integer
Dim Row as Integer
Dim nRow as Integer
Dim myDoc as Object
Dim mySheet as Object
Dim myCell as Object
Dim nCell as Object
Dim myString as String
myDoc = thisComponent
oCtl = myDoc.getCurrentController
mySheet = oCtl.ActiveSheet
Column = getColumn()
Row = getRow()
mycell = mysheet.getCellByPosition(Column, Row)
myString = mycell.string
myString = "=BASE(" & myString & ";16;4)"
mycell.formula = myString
nRow = Row + 1
nCell = mysheet.getCellByPosition(Column, nRow)
oCtl.select(nCell)
End Sub

function getColumn() as String
dim oSel as Object
dim oDesktop as Object
dim oAdr as Object

oDesktop = createUnoService( "com.sun.star.frame.Desktop" )
oSel = oDesktop.CurrentFrame.Controller.Selection
oAdr = oSel.CellAddress
getColumn = oAdr.Column
end function

function getRow() as String
dim oSel as Object
dim oDesktop as Object
dim oAdr as Object

oDesktop = createUnoService( "com.sun.star.frame.Desktop" )
oSel = oDesktop.CurrentFrame.Controller.Selection
oAdr = oSel.CellAddress
getRow = oAdr.Row
end function

 

 

bearbeitet von b3nz0l
Link zu diesem Kommentar
Auf anderen Seiten teilen

nachdem ich mehrere Stunden investiert habe bis ich zu dem gewünschten Ergebnis

gekommen bin möchte ich dies hier nun zur verfügung stellen:

 

Es ging darum eine Liste mit TV Kanälen zu erstellen ähnlich der oscam.srvid, als

quelle diente mir die Kanalbelegung vom kdg-forum-helpdesk da diese immer recht aktuell ist.

Und da ich manchmal ein verdammter pedant sein kann möchte ich dass diese Liste nach SID geordnet ist.

Des weiteren möchte ich die SID in HEX angezeigt bekommen, was auch das Hauptproblem an der Sache war.

Ist mir jetzt nicht ganz klar, warum die Mühe mit dem Umrechnen, denn die SIDs (PIDs) kann man schon

immer auch in HEX exportieren lassen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...