Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Delphi] zapisywanie zawartosci do istniejacego pliku

salvadorek 03 Gru 2010 00:23 921 1
  • #1 03 Gru 2010 00:23
    salvadorek
    Poziom 2  

    Witam Was koledzy

    Otoz mam taki oto fragment kodu:

    Code:
    procedure TForm8.Button1Click(Sender: TObject);
    
    var
    p: system.text;
    begin
    if SaveDialog1.Execute then
    begin
    System.Assign(p,SaveDialog1.FileName);
    try
       Append(p);
      except
        rewrite(p);

    end;
    write(p,Edit1.Text+';');
    write(p,Edit2.Text+';');
    write(p,Edit3.Text+';');
    write(p,inttostr(combobox1.ItemIndex)+';');
    write(p,Edit4.Text+';');
    write(p,Edit5.Text+';');
    write(p,Edit6.Text+';');
    write(p,inttostr(combobox2.ItemIndex)+';');
    write(p,inttostr(combobox3.ItemIndex)+';');
    write(p,Edit7.Text+';');
    write(p,inttostr(combobox4.ItemIndex)+';');
    write(p,Edit8.Text+';');
    write(p,Edit9.Text+';');
    write(p,Edit10.Text+';');
    write(p,inttostr(combobox5.ItemIndex)+';');
    write(p,inttostr(combobox6.ItemIndex)+';');
    write(p,inttostr(combobox7.ItemIndex)+';');
    writeln(p,inttostr(combobox8.ItemIndex)+';');
    end;
    system.close(p);
    Form8.Close;
    Form1.Dodajstudenta1Click(Sender);
    end;


    Kod ten powoduje otwarcie okienka do zapisywania w celu zapisania zawartosci z editow oraz z comboboxow do pliku. Jednakze chodzi mi tutaj o mozliwosc zapisania tej zawartosci do pliku ktory juz jest uprzednio wczytany bez pytania uzytkownika :) Poprostu dopisanie do wczesniej wcyztanego pliku nowych danych.

    Ktos podpowie?

    0 1
  • #2 03 Gru 2010 10:24
    arnoldziq
    Moderator Programowanie

    Jakoś musisz wybrać ten plik, do którego chcesz odczytywać/zapisywać, więc bez przynajmniej jednokrotnego wywołania OpenDialog/SaveDialog się nie obejdzie.
    Ale jak już masz wskazany plik, to zapisz jego nazwę (lokację) do jakiejś zmiennej, a następnie sprawdzaj czy plik istnieje. Jeżeli istnieje, to nie wywołuj kolejnego SaveDialog, tylko zapisuj bezpośrednio do pliku, którego nazwę zapisałeś w zmiennej.

    Code:
    var
    
     NazwaPliku : string;
    ...
    procedure TForm8.Button1Click(Sender: TObject);
    var
    p: system.text;
    begin

    if (NazwaPliku='') or ( not FileExists(NazwaPliku)) then begin
       if not SaveDialog1.Execute then exit;
       NazwaPliku:=SaveDialog1.FileName;
     end;

      AssignFile(p,NazwaPliku);
    try
       Append(p);
    ...

    0
  Szukaj w 5mln produktów