Das einzig ungewöhnliche, was mir auffällt ist das tmpStr := nil;
. Warum setzt du den lokalen String auf nil?
Ist in einer Textdatei eventuell ein Fehler drin? Was macht Split? Eventuell kracht es da. Tut mir Leid ich kann auch nur raten im Moment.
Ich kann ihn auch einfach auf SetLength(tmpStr, 0) setzen.
Aber der Fehler tritt bei Free auf.
Dateien werden alle ordnungsgemäß addiert mit der Spilt funktion.
Delphi-Quellcode:
function Split(const Source, Delimiter: string): TSplitStrArray;
var
spCount: integer;
spPos: integer;
spLength: integer;
sTemp: string;
aSplit: TSplitStrArray;
begin
sTemp := Source;
spCount := 0;
spLength := Length(Delimiter) - 1;
repeat
spPos := Pos(Delimiter, sTemp);
if spPos = 0 then
break
else
begin
Inc(spCount);
SetLength(aSplit, spCount);
aSplit[spCount - 1] := Copy(sTemp, 1, spPos - 1);
Delete(sTemp, 1, spPos + spLength);
end;
until False;
if Length(sTemp) > 0 then
begin
Inc(spCount);
SetLength(aSplit, spCount);
aSplit[spCount - 1] := sTemp;
end;
Result := aSplit;
end;
gruss