Newsgroup: it.comp.lang.delphi
Titolo: Writeln

Scusate se è un quesito banale:
è possibile fare in modo che il comando writeln scriva una riga all'inizio 
del file, anziché alla fine?
Avete presente la tipica classifica dei giochi, in cui l'ultimo utente 
compare in alto nell'elenco?
Grazie per le illuminazioni.
 F.

 del file, anziché alla fine?
No, in generale scrivere all'inizio di un file significa, in realtà, 
scrivere i nuovi dati all'inizio a cui si accodano di nuovo, tramite 
codice, i contenuti precedenti del file.
In sostanza, meglio se scrivi il file sequenzialmente previo ordinamento 
inverso direttamente in memoria dei dati che devi trasferire sul file 
stesso.
Ciao! :-)
-- 
Marco «Alka» Breveglieri
  (marco [@] abls [.] it)
  ABLS Team S.n.c. - Software & Web
  42019 Scandiano (Reggio Emilia)
 
http://www.abls.it

 stesso.
Aiuto! Avevo ipotizzato una soluzione del genere, ma non so realizzarla.
Io ho delle stringhe, so scriverle in un file e leggerle. Ma non so cosa si 
intenda per scrivere in memoria e come si ordinino inversamente. Potete 
aiutarmi?
Grazie
F. 

 ha scritto nel messaggio
news:NXZWd.628752$b5.28...@news3.tin.it...


 aiutarmi?
Come suggerisce Giorgio, puoi usare la classe *TStringList* per 
memorizzare le stringhe e salvarle su file.
Per "scrivere in memoria" intendevo semplicemente "averle all'interno di 
variabili", indipendentemente dalla natura di queste ultime.
Se hai difficoltà a memorizzare un elemento o un vettore di elementi e 
ordinare quest'ultimo inversamente, credo che tu debba prendere fiato e 
partire da molto, molto, molto più indietro. :-|


 memorizzare le stringhe e salvarle su file.
Se la lista è molto lunga però potrebbe non convenire: ogni volta che 
aggiungi una riga TStringList deve caricarla tutta in memoria e poi 
risalvarla tutta...
Si potrebbe pensare agli stream (TStringStream nello specifico)...
Ciao,
-- 
Andrea /\/\agni

 Si potrebbe pensare agli stream (TStringStream nello specifico)...
Secondo me, il vero problema è che...non è ben chiaro il problema, o 
almeno io ho questa impressione. :-)


 ha scritto nel messaggio
news:%KdXd.1022843$35.38...@news4.tin.it...


 si esegue il Writeln
Se non sbaglio non puoi fare una Seek su un textfile... però sono anni 
che non uso più la vecchia interfaccia Assign/Reset/Read/Write/ecc...
Io consiglieri di provare a guardare la coppia TFileStream/TStringStream...
ciao


 il tutto con il metodo /SaveToFile/.
Mi sembra di aver capito che è in una situazione in cui "ogni tanto" 
bisogna aggiungere una riga... [tipo file di log per intenderci].
Se stiamo parlando di file piccoli e di operazioni sporadiche io voterei 
in assoluto per una soluzione del tipo:
var
   sl: TStringList;
begin
   sl := TStringList.Create;
   try
     sl.Add('Marco');
     sl.Add('Giorgio');
     sl.Add('Andrea');
     sl.Sorted := True;
// eventualmente usando il metodo CustomSort
     sl.SaveToFile('...');
   finally
     sl.Free;
   end;
end;
Però, come dici tu, il contesto non è chiarissimo...
Ciao :-)


 in assoluto per una soluzione del tipo:
Mi è partito il messaggio troppo in fretta ;-)
Il senso era che si può anche usare una TStringList con 
LoadFromFile/SaveToFile se la performance non è critica...
Se però incomincia ad essere un file sui 500 Kb la differenza si sente 
parecchio rispetto all'altro approccio (Seek+Write)


> č possibile fare in modo che il comando writeln scriva una riga 


 ha scritto nel messaggio
news:4yIXd.1032237$35.38...@news4.tin.it...
