17. marts 2002 - 16:43Der er
9 kommentarer og 1 løsning
HASTER gem en tekst file. HASTER
jeg bruger savedialog til at gemme text file med og jeg bruger følgende kode.
if savedialog.execute then begin memo1.lines.savetofile(savedialog.filename);
problemet er at jeg har lavet nogle filer i savedialog a4 = *.a4 a5 = *.a5 a6 = *.a6 ax = *.a? med når jeg så gemmer filen kommer der ikke noget efternavn på filen hvis jeg skriver test i dialogboxen der kommer frem og vælger a5 og trykker gem kommer filen bare til at hedde "test"
Jeg sidder ikke med Delphi her, men jeg kan fortælle dig en god del af svaret. I savedialog komponentet kan man få fat i hvad brugeren har valgt som extension (altså .a4 eller .a5, etc). Så gør du: if savedialog.execute then begin case savedialog.extension{Du skal nok bruge noget andet end .extension, men prøv at kigge på det} of a4: memo1.lines.savetofile(savedialog.filename+'.a4'); a5: memo1.lines.savetofile(savedialog.filename+'.a5'); a6: memo1.lines.savetofile(savedialog.filename+'.a6'); ax: memo1.lines.savetofile(savedialog.filename+'.ax'); end; end;
Det skulle hjælpe. Hvis du ikke kan finde det rigtige kald (her kaldet .extension) så skriv igen, så finder jeg lige den anden maskine frem og kigger på det).
Kommer lige til at tænke på at "case" ikke viker med strings. Du skal nok gøre sådan istedet: if savedialog.execute then begin if savedialog.extension = '.a4' then memo1.lines.savetofile(savedialog.filename+'.a4') else if savedialog.extension = '.a5' then memo1.lines.savetofile(savedialog.filename+'.a5') else if savedialog.extension = '.a6' then memo1.lines.savetofile(savedialog.filename+'.a6') else if savedialog.extension = '.a7' then memo1.lines.savetofile(savedialog.filename+'.a7'); end;
Nedenstående eksempel skulle kunne hjælpe dig på vej. Grunden til 'if ExtractFileExt'... er at brugeren måske vælger eller indtaster en fil med en extension, hvorved der ikke skal tilføjes en.
procedure TForm1.Button1Click(Sender: TObject); var fn : string; begin with SaveDialog1 do begin FileName := ''; if Execute then begin fn := FileName; if ExtractFileExt(FileName) = '' then case FilterIndex of 1 : fn := fn + '.a1'; 2 : fn := fn + '.a2'; 3 : fn := fn + '.a3'; end; Memo1.Lines.SaveToFile(fn); end; end; end;
DefExt bliver tilføjet hvis man indtaster et filnavn uden extention - men problemet er at man tilsyneladende ikke kan ændre den mens Save dialogen er aktiv. Jeg har experimenteret med en event handler på OnTypeChange, men den var tilsyneladende fløjtende ligeglad
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.