txt desde crear archivos archivo abrir string delphi delphi-7 text-files

string - desde - ¿Cómo guardar una cadena en un archivo.txt en Delphi?



abrir archivos desde delphi (4)

La forma más rápida y sencilla, sin necesidad de declarar ninguna variable:

with TStringList.Create do try Add(SomeString); SaveToFile(''c:/1.txt''); finally Free; end;

Necesito crear un programa que genere una contraseña que se guarda en un formato de archivo de texto en un destino específico que establezco y el usuario debe abrir el archivo .txt para obtener la contraseña para "desbloquear" otro programa.

Ya tengo el código para generar la contraseña en la cadena sPass y ahora necesito usar la función SaveToFile para guardarla en el archivo de texto que creé llamado Password.txt pero no puedo encontrar la forma general para usar la función SaveTo File en Delphi y yo no sabemos dónde colocar sPass y Password.txt en la función.

Debería ser algo como: SaveToFile (...) pero no sé cómo guardar sPass en Password.txt

Editar:

Solo una pregunta más, ¿cómo eliminar lo que está almacenado previamente en Password.txt antes de agregarle la cadena de manera que Password.txt esté en blanco antes de agregar la cadena? Gracias


La forma moderna es crear una lista de cadenas y guardarla en un archivo.

procedure MakeAStringlistAndSaveThat; var MyText: TStringlist; begin MyText:= TStringlist.create; try MyText.Add(''line 1''); MyText.Add(''line 2''); MyText.SaveToFile(''c:/folder/filename.txt''); finally MyText.Free end; {try} end;

Tenga en cuenta que Delphi ya tiene una clase relacionada que hace todo lo que desea: TInifile.
Almacena valores y claves en un formato de key = ''value'' .

passwordlist:= TInifile.Create; try passwordlist.LoadFromFile(''c:/folder/passwords.txt''); //Add or replace a password for `user1` passwordlist.WriteString(''sectionname'',''user1'',''topsecretpassword''); passwordlist.SaveToFile(''c:/folder/passwords.txt''); finally passwordlist.Free; end; {try}

Advertencia
Tenga en cuenta que guardar contraseñas no cifradas en un archivo de texto es una fuga de seguridad. Es mejor codificar sus contraseñas utilizando una función hash, consulte: Cifrado de contraseñas en Delphi
Para obtener consejos sobre cómo guardar contraseñas de forma segura.


La forma moderna moderna es usar TFile.WriteAllText en IOUtils (Delphi 2010 y versiones posteriores)

procedimiento WriteAllText (const Path: string; const Contents: string); sobrecarga; estático;

Crea un nuevo archivo, escribe la cadena especificada en el archivo y luego cierra el archivo. Si el archivo de destino ya existe, se sobrescribe.


Puede usar la clase TFileStream para guardar una cadena en un archivo:

uses Classes; procedure StrToFile(const FileName, SourceString : string); var Stream : TFileStream; begin Stream:= TFileStream.Create(FileName, fmCreate); try Stream.WriteBuffer(Pointer(SourceString)^, Length(SourceString)); finally Stream.Free; end; end;

y leer

function FileToStr(const FileName : string):string; var Stream : TFileStream; begin Stream:= TFileStream.Create(FileName, fmOpenRead); try SetLength(Result, Stream.Size); Stream.Position:=0; Stream.ReadBuffer(Pointer(Result)^, Stream.Size); finally Stream.Free; end; end;