Seite 1 von 2
String ( Zahl) Formatieren
Verfasst: 01.03.2010 14:11
von elko68
Hallo ihr Wissenden
Ich habe folgendes Prob.
Über die Serielle sauge ich mir Daten die folgendermaße ankommen
kommt an => soll werden
FA00144800000; => 144800,000
FA00024895000; => 24895,000
FA00001822420; => 1822,420
In Bascom gab es den FORMAT Befehl, wie löse ich es in PB ohne dass ich x-mal Umwandeln muss
Das Ergebniss soll in einem StringGatget ausgegeben werden.
Ich bitte um Erleuchtung
DANKE
Re: String ( Zahl) Formatieren
Verfasst: 01.03.2010 14:17
von Kiffi
elko68 hat geschrieben:Das Ergebniss soll in einem StringGatget ausgegeben werden.
spricht was dagegen, wenn Du die einkommenden Daten direkt in Strings speicherst?
Grüße ... Kiffi
Re: String ( Zahl) Formatieren
Verfasst: 01.03.2010 14:19
von elko68
... die Daten kommen als String
Re: String ( Zahl) Formatieren
Verfasst: 01.03.2010 14:34
von Kaeru Gaman
ich vermute mal, der Header ist eine Art Typenbezeichnung.
also würde ich erst mal gucken, was da steht, und wenn das FA ist, eben als FA behandeln. (Bedingung)
als nächstes schneidest du die ersten beiden Zeichen ab (->
Mid )
dann nimmst du alle führenden Nullen weg, und zum Schluß nimmst du alle links bis auf drei und die drei rechten und setzt ein Komma dazwischen.
alle benötigten Funktionen findest du in der String-Lib, Help-Link siehe oben.
Re: String ( Zahl) Formatieren
Verfasst: 01.03.2010 14:37
von Kiffi
oha!
elko68 hat geschrieben:kommt an => soll werden
.. überlesen. Bin weg.
Re: String ( Zahl) Formatieren
Verfasst: 01.03.2010 14:52
von Christian+
Bau dir halt selbst so eine FORMAT Funktion der einfach den String übergibst und die den Umgewandelten zurückgibt. Hier mal ein einfaches Beispiel wie du das Umwandeln des Strings machen kannst schau dir am besten die ganzen String Befehle in der Hilfe dazu mal noch genau an dann dürfte das nicht allzu schwer sein.
Code: Alles auswählen
string$ = "FA00144800000"
If Left(string$, 2) = "FA"
string$ = LTrim(Mid(string$, 3, 8), "0") + "." + Right(string$, 3)
EndIf
Debug string$
mfg Christian+
Re: String ( Zahl) Formatieren
Verfasst: 01.03.2010 15:00
von Kaeru Gaman
@Christian:
die 8 ist dort fehl am Platz, die musst du dynamisch ermitteln.
außer du bekommst noch ne bestätigung, dass das FA-Format immer gleich lang ist.
Re: String ( Zahl) Formatieren
Verfasst: 01.03.2010 15:06
von Christian+
Ist ja nur ein Beispiel und da es führende Nullen gibt dachte ich sind die Zahlen wahrscheinlich alle maximal so lang und habe das Beispiel möglichst einfach gelassen. elko68 hat ja keine genaueren Angaben gemacht mal sehen was er meint.
Re: String ( Zahl) Formatieren
Verfasst: 01.03.2010 15:17
von elko68
... ja das Format ist immer gleich lang FAxxxxxxxxxxx;
... und so funst es bei mir
Code: Alles auswählen
VFO_A.s = "FA00024895360;"
VFO_A = LTrim(Mid(VFO_A, 3, 8), "0") + "," + Mid(VFO_A,11, 3)+" KHz"
Debug VFO_A
Danke an alle beteiligten Helfer
Gruß
Frank
Re: String ( Zahl) Formatieren
Verfasst: 01.03.2010 15:24
von Kaeru Gaman
bei deiner zweiten Teilfunktion genügt
weil der string dann eh zuende ist, oder gleich
wie vorgeschlagen.
... wie du dich auch entscheidest, du siehst dass es im Grunde echt einfach ist und PB alle benötigten Funktionen zur Verfügung stellt.