Hallo zusammen,
ich möchte gerne einen string auslesen der in etwas so aussieht:
#'+*~04~00~09+*#'
Jetzt habe ich ein Programm geschrieben das den String nach dem Zeichen ~ durcsucht und mir die nachfolgende Zahl filtert.
Beim nächsten Umlauf fängt die Suche leider wieder von vorne an und er findet das erste Zeichen wieder und liest dieselbe Zahl aus '04', er soll aber einen weiter springen und nach der nächsten Tilde suchen, damit ich alle Zahlen ausgelesen habe.
Kann ich einen Merker setzten, nachdem Motto, erste Tilde gefunden, zahl ausgelesen, weiter ab dieser Stelle suchen und nicht von vorne.
Hänge Euch mal meine Funktion an
ide ich bis jetzt zum auslesen geschrieben habe und die immer von neuen anfängt.
Delphi-Quellcode:
function TForm1.auswerten(data: string): string;
var
firstletter, lastletter, hilfspoint :integer;
wert : string;
begin
firstletter := 0;
lastletter := 0;
if not(pos('~',data) = 0) then
begin
{Ermittlung der Befehlsposition "erste Doppelzahl"}
while (firstletter < Length(data)) and not (data[firstletter] in [#48..#57]) do
Inc(firstletter);
lastletter := firstletter;
{auslesen und speichern der Doppelzahl}
while (lastletter < Length(data)) and (data[lastletter] in [#48..#57]) do
begin
wert := wert + data[lastletter];
Inc(lastletter);
end;
firstletter := lastletter;
hilfspoint:=strtoint(wert);
auswerten:=inttostr(hilfspoint);