Hallo DeddyH,
Danke für den guten Tip. Ich habe zwar die Lösung noch nicht fertig, aber ich weiß jetzt, das es mit PosEx und Pos gehen muss.
Ich habe einfach mal das ganze Simuliert, und habe jetzt schon folgendes Ergebnis. Also das zerlegen des Datensatzes
müsste so funktionieren.
Ich stell meinen Code mal hier ein, vieleicht ist er ja für Euch Interessant, oder es hat noch jemand Tips.
Der Code verarbeitet die Daten zwar noch nicht wie erforderlich, aber er gibt im ShowMessage die Datensätze aus. Optimal zum testen, auch für andere Stringprobleme.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
s : String;
Pos1 : Integer;
Pos2 : Integer;
Datensatz1 : String;
Datensatz2 : String;
begin
s := ' 51 17.06.09 14:36 #$D#$A ABSCHALT. MG 1-01 MB1 #$D#$A Gruppe#$D#$A #$D#$A'+
'52 17.06.09 14:37 #$D#$A ABSCHALT. MG 2-01 MB1 #$D#$A Gruppe#$D#$A #$D#$A';
Pos1 := Pos('#$D#$A #$D#$A', s);
if Pos1 <> 0 then
begin
ShowMessage('Erstes Ende Datensatz an Position: ' + IntToStr(Pos1));
Datensatz1 := Copy(s,0,Pos1);
ShowMessage(Datensatz1);
Pos2 := PosEx('#$D#$A #$D#$A', s, Pos1 + 1);
if Pos2 <> 0 then
begin
ShowMessage('Weiteren Datensatz gefunden an Position: ' + IntToStr(Pos2));
Datensatz2 := Copy(s,Pos1,Pos2);
ShowMessage(Datensatz2);
end
else
ShowMessage('Es wurde nur ein vollständiger Datensatz gefunden');
end
else
begin
ShowMessage('Es wurde kein Vollständiger Datensatz gefunden');
end;
end;
Also, wenn noch jemand Anregungen hat, nehme ich die gerne zur Kenntnis.
Gruß Jens