Das Ganze hängt davon ab was du suchst. Ein Vorschlag von mir:
Delphi-Quellcode:
var
Outbound, Suchwort: string;
Position, i: Integer;
begin
Outbound := 'Messfehler in Modul 2A. Überprüfen Sie ebenfalls die Verbindung zu XY';
Suchwort := 'Messfehler in Modul';
Position := Pos(Suchwort, Outbound);
if Position > 0 then
begin
Delete(Outbound, 1, Position + Length(Suchwort) - 1);
Outbound := TrimLeft(Outbound);
i := 1;
while (Outbound[i] in ['0'..'9', 'A'..'Z', 'a'..'z']) and (i <= Length(Outbound)) do
Inc(i);
Outbound := Copy(Outbound, 1, i - 1);
end;
ShowMessage(Outbound);
end;
Ich gehe davon aus, dass du die Modulnummer suchst. Ich gehe auch davon aus, dass sich das Zeichen nach der Nummer unterscheiden kann, also Leerzeichen, Punkt, Stringende. Deshalb würde ich es so wie oben machen. Ansonsten ist den Code schon mal nicht falsch. Das ist Quatsch:
if Position <> 0 then
, da das ergebnis 0 oder größer sein kann, aber nicht kleiner Null. Ansonsten ok.