S :='Test'; ShowMessage(PAnsiChar(S)^);// Retourne T ShowMessage(PAnsiChar(S));// Retourne Test ShowMessage(PAnsiChar(S)[0]);// Retourne T ShowMessage(PAnsiChar(S)[1]);// Retourne e ShowMessage(S[1]);// Retourne T
var New : TMemoryStream; S : AnsiString; FStream : TFileStream; Buffer : array [0..1023]of AnsiChar;//Je pars sur une taille de 1024 Octets begin New := TMemoryStream.Create; try FStream := TFileStream.Create('C:\Test.txt', fmOpenRead); try FillChar(Buffer, Sizeof(Buffer), #0);//Je remplie le tableau par #0 FStream.Read(Buffer, Length(Buffer)); S := 'Test'+#13#10;//J'ajoute TestCRLF New.WriteBuffer(PChar(S)^, Length(S)); if FStream.Size >= Length(Buffer) then New.WriteBuffer(Buffer[0], Length(Buffer)-Length(S)) else New.WriteBuffer(Buffer[0], FStream.Size+Length(S)); finally FStream.Free; New.SaveToFile('C:\Test.txt'); end; finally New.Free; end;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionvar Source : TMemoryStream; New : TMemoryStream; S : AnsiString; begin Source := TMemoryStream.Create; New := TMemoryStream.Create; try Source.LoadFromFile('C:\Test.txt'); S := 'Tata'; New.WriteBuffer(S[1], Length(S)); New.CopyFrom(Source,Source.Size-New.Size); New.SaveToFile('C:\Test.txt'); finally Source.Free; New.Free; end;