Hallo Bedrock,
in meinem Code Schnipsel, den du bisher ja vollkommen ignoriert hast
, sind die Datenfelder durch Semikolons getrennt, das hätte die Suche vereinfacht. Die Schleife hätte dir auch Schreibarbeit gespart.
Vielleicht noch folgender Hinweis: eine repeat - until Schleife sollte man nur benutzen, wenn die Schleife midestens einmal durchlaufen werden soll. Wenn die Tabelle leer ist, funktioniert dein Code nicht, deshalb solltest du unbedingt eine While-Schleife benutzen.
So, nun zu deiner neuen Frage:
Als erstes musst du die Stelle finden, ab der die Ziffern losgehen. Wenn ich deine Ausfführungen korrekt verstanden habe, steht vor den Gruppen immer das Wort "Alarm". Falls das stimmt, funktioniert der folgende Code (aber auch nur, wenn das Wort Alarm nicht in der SMS vorkommt [ansonsten musst du das Wort "Alarm" sooft suchen, bis du das letzte Vorkommen gefunden hast, da du das Leerzeichen als Trennungszeichen benutzt hast])
Delphi-Quellcode:
{ In Zeile steht die zuletzt gelesene Zeile }
posi := Pos('
Alarm', zeile);
{ Jetzt kannst du über Copy(zeile, posi+6, 1) z.B. auf die erste Ziffer zugreifen }
try
grp1 := StrToInt(Copy(zeile, posi+6, 1));
grp2 := StrToInt(Copy(zeile, posi+8, 1));
...
except
on exception do
{ Fehlermeldung ausgeben }
end;