Newsgroup: it.comp.lang.delphi
Titolo: salvare una string in un txt

ciao
qualcuno mi dice come posso salvare una string in un txt senza usare una
TSringList?
grazie
erik

 TSringList?
L'argomento in questione è "I File di Testo".
Ecco qualche dritta per lavorare con detti file...
Per fare questo si deve dichiarare una variabile di tipo TextFile:
var
MyTextFile: TextFile;
dopodiché tale variabile può essere usata per riferirsi a un file di testo.
Per aprire il file è necessaria la conoscenza di due procedure. Una è
AssignFile(), che
associa il nome del file alla variabile di tipo file:
AssignFile(MyTextFile, 'TextFile.txt');
Dopo l'assegnazione del nome, il file può essere aperto; esistono tre modi
per aprire un
file: Il primo, con la procedura Rewrite(), che permette di creare ed aprire
il file. Usando
questa procedura con un file già esistente, esso verrà sovrascritto da un
nuovo file con lo
stesso nome. Il secondo modo, attraverso la procedura Reset(), permette di
aprire il file
per accedervi solo in lettura. Infine è possibile aggiungere del testo in
fondo al file
utilizzando la procedura Append().
Per chiudere un file dopo aver completato le operazioni su di esso, si
utilizza CloseFile().
Per aprire e scrivere su un file potresti seguire il seguente modello:
var
  MyTextFile: TextFile;
begin
  AssignFile(MyTextFile, 'FileDiProva.txt');
  Reset(MyTextFile);
  try
    { qui gestisci il file }
  finally
    CloseFile(MyTextFile);
  end;
end;
Per creare un file potresti procedere così:
var
  MyTextFile: TextFile;
begin
  AssignFile(MyTextFile, 'FileDiProva.txt');
  Rewrite(MyTextFile); // occhio: Rewrite Crea il file e poi lo apre anche
  try
    { altro codice}
  finally
    CloseFile(MyTextFile);
  end;
end;
Per aggiungere testo alla fine di un file esistente puoi procedera anche
così:
var
  MyTextFile: TextFile;
begin
  AssignFile(MyTextFile, 'FileDiProva.txt');
  Append(MyTextFile);
  try
    { qui puoi usare WriteLn('Testo sa scrivere...') per scrivere la riga in
fondo al file... }
  finally
    CloseFile(MyTextFile);
  end;
end;
La seguente procedura  è quella che uso nei miei programmi per il log su
file....
  procedure WriteInFile(AFileName, AString: string);
  var
    F: TextFile;
  begin
    AssignFile(F, AFileName);
    try
      if FileExists(AFileName) then
        Append(F)
      else
        Rewrite(F);
      Writeln(F,AString);
    finally
      CloseFile(F);
    end;
  end;
Alessandro Storniolo ()

 fondo al file... }
L'istruzione giusta č:
    WriteLn(F, 'Testo sa scrivere...');

 MyTextFile: TextFile;
CUT
Eventualmente può anche dare un'occhiata alla classe TStringStream.
Ciao
Antonio

 ha scritto nel messaggio
news:71ZGa.92470$pR3.1...@news1.tin.it...


ok perfetto grazie a tutti
ma se ora volessi riprendere il file,che ha una sola riga, e assegnarlo ad
una string?
ho provato con readln() ma non funsiona.
erik

 ha scritto nel messaggio
news:dz1Ha.178539$g92.3...@news2.tin.it...


nella guida di delphi5 l'uso di fileopene  correlate è sconsigliato.
meglio usare AssignFile e correlate.
A


Per il caricamento di stringhe sono d'accordo: il length restituisce gli
elementi e se un elemento č costituito da piů byte il FileWrite cosě come
l'ho postato salva solo parte della stringa.
POsso capire il consiglio del manuale di Delphi solo se quest'ultimo si
rivolge a chi non sa controllare bene le funzioni "File..." che si rifanno
alle API di Windows.
Se non ci fossero me le avrei scritte come feci in Dos con Turbo Pascal! :-)
Cosa c'č di tanto malvagio nell'innocente FileOpen? :-)
Ciao.
Giuseppe