Puoi adattare questo per salvare:
with SaveDialog1 do begin
DefaultExt:= '.CSV';
Filter:= 'File CSV (*.CSV)|*.CSV';
SaveDialog1.Title:='Seleziona il file';
SaveDialog1.Options:=[ofEnableSizing,ofViewDetail,ofReadOnly];
//Preimposto il valore attuale
FileName:=NomefileCSV;
if Execute then begin
NomefileCSV:=FileName;
end;
end;
Scrivi:=False;
if (NomefileCSV <> '') then begin
qui metti il tuo codice
end;
Questo invece per leggere:
with OpenDialog1 do begin
DefaultExt:= '.CSV';
Filter:= 'File CSV (*.CSV)|*.CSV';
OpenDialog1.Title:='Seleziona il file';
OpenDialog1.Options:=[ofEnableSizing,ofViewDetail,ofReadOnly];
//Preimposto il valore attuale
FileName:=NomeFileCSV;
if Execute then begin
NomeFileCSV:=FileName;
end;
end;
//... lo apro
if FileExists(NomeFileCSV) then begin
qui metti il tuo codice
end else begin
ShowMessage('Il file da aprire non esiste');
end;
Il codice originale, in particolare il "SaveDialog1.Execute" (e così pure per la OpenDialog1)
if SaveDialog1.Execute then
begin
MemStr := TFileStream.Create(SaveDialog1.FileName, fmCreate);
viene usato esclusivamente per assegnare un nome al file che dovrà essere elaborato (scritto in questo caso).
Il nome del file scelto dall'utente viene assegnato dal componente alla proprietà "SaveDialog1.FileName".
Se commenti l'Execute e sostituisci a FileName una stringa (o una variabile stringa) hai ciò che chiedi.
//if SaveDialog1.Execute then
begin
//MemStr := TFileStream.Create(SaveDialog1.FileName, fmCreate);
MemStr := TFileStream.Create('sono il nome del file dal creare.cpst', fmCreate);
Ciao
Prova a sostituire il clico for
for p in SG_1.Columns do
p.Free;
con l'istruzione
e dovrebbe andare.
Non conosco questo componente ma così sembra funzionare.
forse ho risolto così:CheckBox1.Checked:=false;
MemStr.ReadComponent(CheckBox1);