Hallo,<BR>
ich habe eine Datei (Textdatei ohne Endung), die als erstes Zeichen einen Seitenwechsel (0D bzw #12 glaub ich) hat.<BR>
Dieses Zeichen muß ich entfernen, um danach mit dieser Datei weiterarbeiten zu können.<BR>
Ich wollte aber kein Memo oder so benutzen, da ich nicht weiß, wie groß diese Datei sein kann.<BR>
Ich habe mich nun schon im Forum umgeschaut und folgende Prozedur gefunden, die doch genau das machen würde, oder.?
<PRE>
procedure UpdateTextFile(fileName:string);
var
TS:TStringStream;
TM:TMemoryStream;
s:string;
begin
TS1:=TStringStream.Create('');
TM:=TMemoryStream.Create;
TM.LoadFromFile(fileName);
TS1.CopyFrom(TM,0);
TM.Free;
s:=TS.DataString;
pos1:=pos(#12,s);// # 12 ?????
TS1.Position:=pos1+1;
TM:=TMemoryStream.Create;
TM.CopyFrom(TS1,TS1.Size-pos1);
TM.SaveToFile(fileName);
TM.Free;
TS1.Free;
end;
</PRE>
Aber bei mir funktioniert das nicht.<BR>
Erstens ist dort irgendwie was mit TS und TS1 und pos1 durcheinander,<BR>
wollte das so geradebiegen,
<PRE>
procedure UpdateTextFile(fileName:string);
var
TS,TS1:TStringStream;
TM:TMemoryStream;
s:string;
pos1:integer;
begin
TS1:=TStringStream.Create('');
TM:=TMemoryStream.Create;
TM.LoadFromFile(fileName);
TS1.CopyFrom(TM,0);
TM.Free;
s:=TS1.DataString;
pos1:=pos(#12,s);// # 12 ?????
TS1.Position:=pos1+1;
TM:=TMemoryStream.Create;
TM.CopyFrom(TS1,TS1.Size-pos1);
TM.SaveToFile(fileName);
TM.Free;
TS1.Free;
end;
</PRE>
aber da kommt dann eine Zugriffsverletzung (Stream-Lesefehler)<BR>
Kann sich das nochmal jemand ansehen bitte?<BR>
Danke im Vorraus
ich habe eine Datei (Textdatei ohne Endung), die als erstes Zeichen einen Seitenwechsel (0D bzw #12 glaub ich) hat.<BR>
Dieses Zeichen muß ich entfernen, um danach mit dieser Datei weiterarbeiten zu können.<BR>
Ich wollte aber kein Memo oder so benutzen, da ich nicht weiß, wie groß diese Datei sein kann.<BR>
Ich habe mich nun schon im Forum umgeschaut und folgende Prozedur gefunden, die doch genau das machen würde, oder.?
<PRE>
procedure UpdateTextFile(fileName:string);
var
TS:TStringStream;
TM:TMemoryStream;
s:string;
begin
TS1:=TStringStream.Create('');
TM:=TMemoryStream.Create;
TM.LoadFromFile(fileName);
TS1.CopyFrom(TM,0);
TM.Free;
s:=TS.DataString;
pos1:=pos(#12,s);// # 12 ?????
TS1.Position:=pos1+1;
TM:=TMemoryStream.Create;
TM.CopyFrom(TS1,TS1.Size-pos1);
TM.SaveToFile(fileName);
TM.Free;
TS1.Free;
end;
</PRE>
Aber bei mir funktioniert das nicht.<BR>
Erstens ist dort irgendwie was mit TS und TS1 und pos1 durcheinander,<BR>
wollte das so geradebiegen,
<PRE>
procedure UpdateTextFile(fileName:string);
var
TS,TS1:TStringStream;
TM:TMemoryStream;
s:string;
pos1:integer;
begin
TS1:=TStringStream.Create('');
TM:=TMemoryStream.Create;
TM.LoadFromFile(fileName);
TS1.CopyFrom(TM,0);
TM.Free;
s:=TS1.DataString;
pos1:=pos(#12,s);// # 12 ?????
TS1.Position:=pos1+1;
TM:=TMemoryStream.Create;
TM.CopyFrom(TS1,TS1.Size-pos1);
TM.SaveToFile(fileName);
TM.Free;
TS1.Free;
end;
</PRE>
aber da kommt dann eine Zugriffsverletzung (Stream-Lesefehler)<BR>
Kann sich das nochmal jemand ansehen bitte?<BR>
Danke im Vorraus
Comment