Hier noch eine Versuch (nur grob getestet):
Delphi-Quellcode:
var Numbers: array of integer;
procedure Parser (const aText: string);
var p : PChar;
Count : Integer;
Value : Integer;
begin
// Zeiger auf das erste Zeichen setzen
p := PChar(aText);
// Anzahl Werte im Feld initialisieren
Count := 0;
// alle Zeichen des Strings verarbeiten
while (p^ <> #0) do
// ist es eine Ziffer?
if (p^ in ['0'..'9']) then
begin
// ja: Zahl komplett einlesen
Value := 0;
while (p^ in ['0'..'9']) do
begin
Value := 10 * Value + Ord(p^) - Ord('0');
Inc (p);
end;
// Feld bei Bedarf vergrößern
if (Count = Length(Numbers)) then
SetLength (Numbers, Count + 1024);
// Zahl ablegen und zählen
Numbers[Count] := Value;
Inc (Count);
end
else
// andere Zeichen überlesen
Inc (p);
// unbenutzte Feldelemente abschneiden
SetLength (Numbers, Count);
end;
Der Parser scannt den übergebenen Text und trägt alle gefundenen (positiven, ganzzahligen!) Werte in das Feld
Numbers ein. Du kannst ihm einzelne Zeilen oder den kompletten Inhalt der Datei (als String) übergeben.
Gruß Hawkeye