سلام
من قبلا (تو دلفي 7) براي اضافه كردن يك متن به يك ابتداي فايل از كد زير استفاده ميكردم:
procedure AddTextToFile(Str, Source, Destination : String);
var
stream : TMemoryStream;
s : array[1..2] of String;
i, size : Integer;
begin
SetLength(s[1],length(str));
for i:=1 to length(Str) do s[1][i]:=str[i];
stream:=TMemoryStream.Create;
try
stream.LoadFromFile(Source);
SetLength(s[2],stream.size);
stream.Read(s[2][1],stream.Size);
finally
stream.Free;
end;
stream:=TMemoryStream.Create;
try
size:=length(s[1]);
stream.Write(size,sizeof(size));
stream.Write(s[1][1],size);
size:=length(s[2]);
stream.Write(size,sizeof(size));
stream.Write(s[2][1],size);
stream.SaveToFile(Destination);
finally
stream.Free;
end;
end;
براي حذف كردنش هم از اين كد استفاده ميكردم:
procedure RemoveTextFromFile(var Str:String; Source, Destination : String);
var
s : String;
InFileStream : TFileStream;
OutFileStream: TFileStream;
size : Integer;
begin
InFileStream := TFileStream.Create(Source, fmOpenRead or fmShareDenyNone);
try
InFileStream.Read(size, SizeOf(size));
SetLength(s, size);
InFileStream.Read(s[1], size);
Str:=s;
// Could decrypt the strings here if desired
InFileStream.Read(size, SizeOf(size));
SetLength(s, size);
InFileStream.Read(s[1], size);
if Destination <> '' then
begin
// Write new file
OutFileStream := TFileStream.Create(Destination,fmCreate or fmOpenWrite or fmShareExclusive);
try
OutFileStream.Write(s[1], size)
finally
OutFileStream.Free
end;
end;
finally
InFileStream.Free
end;
end;
ولي الان تو دلفي 2010 جواب نميده! يعني رشتهاي متفاوت با آن چيزي كه قبلا ابتداي فايل نوشته شده بود برميگردونه.
كسي ميتونه راهنمايي كنه كه اشكالش چيه؟