Avatar billede hp-power Nybegynder
17. marts 2002 - 16:43 Der 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"

HVAD GØR JEG FORKERT
Avatar billede morten_s Nybegynder
17. marts 2002 - 16:45 #1
if savedialog.execute then
  begin
memo1.lines.savetofile(savedialog.filename+'.txt');
Avatar billede hp-power Nybegynder
17. marts 2002 - 16:51 #2
nope for hvis jeg vælger a4 eller a5 i filtype skal den gemme den som
test.a4 eller test.a5 osv.

Heino
Avatar billede freeall Nybegynder
17. marts 2002 - 17:15 #3
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).

/FreeAll
end;
Avatar billede freeall Nybegynder
17. marts 2002 - 17:18 #4
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;

/FreeAll
end.
Avatar billede hp-power Nybegynder
17. marts 2002 - 17:57 #5
den hedder ikke .extension og jeg syntes ikke jeg kan finde den.

burte du ikke også bare kunne bruge 'test' + savedialog.?
Avatar billede doc404 Novice
17. marts 2002 - 19:33 #6
SaveDialog er underlig...

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;
Avatar billede hermandsen Juniormester
18. marts 2002 - 00:42 #7
OpenDialog.DefaultExt
Kig på den, Filter og FilterIndex... :)
Avatar billede software_geek Nybegynder
18. marts 2002 - 08:26 #8
Det er fordi at brugeren selv skal indtaste fil-navn.

Men du kan gøre således:

if savedialog1.execute then
begin
  memo1.lines.savetofile(savedialog1.filename + savedialog1.extension);
end;
Avatar billede doc404 Novice
18. marts 2002 - 09:09 #9
software geek> Der er ingen Extention property! Delphi 5 prof...
Avatar billede doc404 Novice
18. marts 2002 - 09:18 #10
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
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel