Für die Arbeit mit Strings möchte ich gerne wieder auf
reguläre Ausdrücke verweisen, mit denen eine Prüfung auf gültige IPs (jede Komponente 0-255) relativ kurz gestaltet werden kann:
Delphi-Quellcode:
function IsValidIPAddress(const AString: string): Boolean;
const
RE255 = '([1-9]?\d|1\d\d|2([0-4]\d|5[0-5]))';
begin
Result:= RegExp('^(%s\.){3}%:0s$', [RE255]).Execute(AString);
end;
Um also die IPs gem Deiner Beschreibung in ein Memo zu laden, felro, könnte mit dem passenden Ausdruck in
ReIPFromLogFile dieser Code verwendet werden:
Delphi-Quellcode:
with TStringList.Create do
try
LoadFromFile(AFilename);
with RegExp(ReIPFromLogFile) do
if Execute(Text) then
repeat
Memo1.Lines.Add(Match[0])
until not ExecuteNext;
finally
Free;
end;
Wenn Du in Zukunft häufiger mit Strings arbeitest, könnten Lösungen dieser Art einiges an Arbeit ersparen auch wenn sie auf den ersten Blick etwas kryptisch anmuten mögen...