PDA

Visualizza la versione completa : [DELPHI] Memorizzare Lines del TMemo in file esterni


carmelo81
11-06-2007, 22:25
ciao a tutti...
volevo tenere in memoria le lines di un tmemo in modo tale che al riavvio del sistema, il Tmemo mi visualizza i dati che avevo scritto prima di spegnere il pc.
Nelle applicazioni passate, dato che mi serviva stampare (su file *.rtf) delle relazioni di calcolo, utilizzavo "savedialog" per memorizzare le stringhe quindi, ora, nn mi viene in mente come fare per risolvere il problema di cui vi ho chiesto suggerimenti...
grazie mille a tt !
carmelo

mondobimbi
12-06-2007, 09:21
la proprietà Lines di un TMemo è un TString, puoi quindi usare il suo metodo SaveToFile.
ciao
sergio

carmelo81
12-06-2007, 13:32
ciao e grazie per la risposta...
questo cmq lo sapevo anche io però non volevo utilizzare questo controllo perchè non volevo creare nessun file di testo aggiuntivo.
Non ci sn dei metodi per salvare il testo in memoria senza file aggiuntivi?
ty mille
carmelo

LeleFT
12-06-2007, 13:59
Originariamente inviato da carmelo81
ciao e grazie per la risposta...
questo cmq lo sapevo anche io però non volevo utilizzare questo controllo perchè non volevo creare nessun file di testo aggiuntivo.
Non ci sn dei metodi per salvare il testo in memoria senza file aggiuntivi?
ty mille
carmelo
Forse ti manca un cavillo: quando il sistema si riavvia tutta la memoria viene cancellata. Tutta. Altrimenti a cosa servono gli hard disk?


Ciao. :ciauz:

alka
15-06-2007, 02:24
Originariamente inviato da carmelo81
Non ci sn dei metodi per salvare il testo in memoria senza file aggiuntivi?

Ammesso che sia possibile - per quanto così come è già stato detto se si riavvia la macchina si perdono comunque i dati - non capisco perché non dovresti creare file in cui memorizzi valori che desideri conservare.

Cosa c'è di blasfemo nel salvare in file di testo... un testo? :stordita:

carmelo81
15-06-2007, 13:19
ciao...
in effetti ho cambiato idea sul da farsi per memorizzare le note e richiamarle ad ogni avvio dell'applicazione, io ho fatto cosi ma da dei problemi:

procedure TForm1.FormActivate(Sender: TObject);
begin
memo1.Lines.LoadFromFile(note);
end;

procedure TForm1.Memo1Change(Sender: TObject);
begin
note := ExtractFilePath(Application.ExeName)+'Note.txt'
end;

i problemi sono:
1) all'avvio dell'applicazione mi da l'errore "cannot open file". forse non trova il file note.txt?

2) [note := ExtractFilePath(Application.ExeName)+'Note.txt']: questo mi salva in automatico il file o devo a prescindere salvare il file *.txt con il comando savetofile?
grazie per l'aiuto
ciau

alka
15-06-2007, 13:35
Originariamente inviato da carmelo81
i problemi sono:
1) all'avvio dell'applicazione mi da l'errore "cannot open file". forse non trova il file note.txt?

Ovvio: hai definito il percorso del file nell'evento OnChange del TMemo!


Originariamente inviato da carmelo81
2) [note := ExtractFilePath(Application.ExeName)+'Note.txt']: questo mi salva in automatico il file o devo a prescindere salvare il file *.txt con il comando savetofile?

Se sei a questo punto, allora credo che tu debba fare 1, 10, 100 passi indietro prima di metterti a lavorare con Delphi e con la libreria VCL per realizzare l'applicazione che ti sei prefissato.

Non puoi andare per tentativi senza comprendere il codice che stai scrivendo. Nella Guida in linea trovi tutte le indicazioni per conoscere il significato di ciascuna procedura, classe o membro della classe utilizzato. Posizionati su ExtractFilePath e premi F1, fai lo stesso con Application.ExeName e scoprirai quello che stai realmente facendo.

Se non possiedi la conoscenza minima dei rudimenti del linguaggio, non puoi cimentarti in qualcosa che vada oltre a questo. :stordita:

mondobimbi
15-06-2007, 15:59
segui i consigli di Alka, se vuoi circoscrivere la azione di salvataggio e recupero ti consiglio di inserire due pulsanti nel form, con uno carichi le tue note e con l'altro le salvi.
Nel metodo OnClick dei due pulsanti dovrai inserire

memo1.Lines.LoadFromFile(mio_path_assoluto + '\' + 'note.txt');
in quello che carica il file

memo1.Lines.SaveToFile(mio_path_assoluto + '\' + 'note.txt');
in quello che salva il file

mio_path_assoluto è una stringa del tipo
mio_path_assoluto := 'c:\Documents';
// o altra a tuo piacimento per esempio ricavata utilizzando ExtractFilePath e Application.ExeName

usa il debugger ed inserisci i controlli che vuoi verificando di volta in volta
ciao
sergio

Loading