Einzelnen Beitrag anzeigen

Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#20
  Alt 1. Jun 2003, 09:33
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;
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat