Tabellenimport 55e3 -> 55000

Tach allerseits!

Sorry, aber ich muss mir grade mal Luft machen.
Diese Volltrottel von OOo besorgen mir gleich einen mittelschweren Schreikrampf. Folgendes Problem:

Ich habe eine Textdatei mit dem dump eines stringorientierten Protokolls. Letztendlich werden bloß vier vierstellige hex Zahlen übertragen. Eine Zeile sieht so aus:

T=063F;H=0049;L0=0320;L1=0228;

Ich benötige hier nur die letzten beiden Zahlen, L0 und L1. Diese in calc auszuschneiden und zu importieren hat erstaunlich gut funktioniert. Nur als ich dann ein Diagramm aus der Tabelle zeichnete fiehlen mir die Augen aus dem Kopf. Was ich sah entpuppte sich als ein derber OOo fail:

Steht in der Textdatei die hex Zahl 55E3 interpretiert calc das als 55*10^3 also 55000. Das passiert schon bevor die Daten in die Tabelle eingefügt werden, denn wenn ich die Standartformatforlage auf Text umstelle hat das keinen Effekt außer, dass die 55000 jetzt als Text eingefügt wird. ARGS!

Need HELP!

Thor

OMG! Ich habe es nach einer Stunde experimentieren doch geschafft. Hier nun für die Nachleserschaft:

Man muss calc erst vereimern, indem man ein Zeichen mit in den string nimmt, der seiner Meinung nach unmöglich zu einer Zahl gehören kann. In meinem Beispiel konnte ich dann ein „05e7;“ erfolgreich importieren.

Nur hat man jetzt leider tatsächlich einen string der nicht mehr als Zahl durchgeht. Man muss ihn erst weiter verarbeiten. Aber nach einem LEFT(A1;4) hatte ich dann meine gewünschten hex Zahlen.

Thor

In meinem Beispiel konnte ich dann ein „05e7;“
erfolgreich importieren.

Nur hat man jetzt leider tatsächlich einen string der nicht
mehr als Zahl durchgeht. Man muss ihn erst weiter verarbeiten.
Aber nach einem LEFT(A1;4) hatte ich dann meine gewünschten
hex Zahlen.

Hallo Thor,

wenn du in A1 stehen hast „55e3;“, dann schreib mal in B2:
=WERT(LINKS(A1;4))
Dann biste wieder bei deinen 55000.

Korrekt wären dez 21987.

Kannst ja mal dieses probieren:

Sub Einlesen
Dim iNumber As Integer, sZeile As String, Satz, Zei as long
iNumber = Freefile
Open "c:\test\kwootest.txt" For input As #iNumber
While not eof(iNumber)
 Line Input #iNumber, sZeile
 Satz=split(sZeile,";")
 thiscomponent.Sheets(0).getCellByPosition(0,Zei).value= "&H" & mid(satz(2),4)
 thiscomponent.Sheets(0).getCellByPosition(1,Zei).value= "&H" & mid(satz(3),4)
 Zei=Zei+1
wend
Close #iNumber
End Sub

Gruß
Reinhard

Tach Reinhard!

Du verstehst mich falsch. Ich habe mein Problem bereits gelöst. Aber trotzdem danke.

Interessanter Weise wurde nach LINKS(A1;4) nicht mehr interpretiert. Calc dumpte mir brav meine hex Werte in die Spalte. Danach war eine Umwandlung mit HexInDez sehr einfach.

Thor