txt dosyasına hem kaydettirme hemde içeriğini alma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
r_korkmaz44
Üye
Mesajlar: 63
Kayıt: 11 Ara 2005 01:00

txt dosyasına hem kaydettirme hemde içeriğini alma

Mesaj gönderen r_korkmaz44 »

Selam arkadaşlar;
Bir proje üzerinde çalışmaktayım.Veritabanı kullanmadan gerçekleştirmek istiyorum.
Maskedit1 Maskedit2 Maskedit3 gibi elemanlarını deneme.txt dosyasına alt alta yazdıracam.Programı açıp kapandığı anda maskedit1 maskedit2 maskedit3 te deneme.txt ye kaydettirilenler sırayla gelecek. tekrar kapanıp açılınca eğer değişiklik yapılmışsa dahi deneme.txt teki bilgiler maskeditlere yazacak. bunu listbox ile yapıyorum. ama program ilk açılınca listbox ı sanırım boş gördüüğü için hata veriyor.acaba memo mu kullanmalıyım? şimdiden teşekkürler.
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: txt dosyasına hem kaydettirme hemde içeriğini alma

Mesaj gönderen mkysoft »

direk dosyadan okuyun bence, memo kullanamanıza gerek yok. isterseniz şöyle bir şey yapın. Kaydedilmesini istediğiniz text nesnelerinin tag değerini 1, maskeditleri 2, groupboxları 3, ... gibi numaralandırın. sonra formun closequery olayına şöyle bir genel kayıt fonksiyonu yazın:

Kod: Tümünü seç

procedure Tfr_anaform.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
var
  exfile: TextFile;
  i:integer;
begin
  if (MessageDlg('Parametreleri kaydetmek istiyor musunuz?', mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
  begin
    AssignFile(exfile,ExtractFilePath(Application.ExeName) + 'Ayarlar.txt');
    Rewrite(exfile);
    for i:=0 to ComponentCount-1 do
    begin
      if Components[i].Tag = 1 then
        Writeln(exfile,TEdit(Components[i]).Text)
      else if Components[i].Tag = 2 then
        Writeln(exfile,inttostr(TRadioGroup(Components[i]).ItemIndex))
      else if Components[i].Tag = 3 then
        Writeln(exfile,BoolToStr(TCheckBox(Components[i]).Checked,true))
      else if Components[i].Tag = 4 then
        Writeln(exfile,TMaskEdit(Components[i]).Text);
    end;
    CloseFile(exfile);
  end;
end;
Formun onshow olayında:

Kod: Tümünü seç

procedure Tfr_anaform.FormShow(Sender: TObject);
var
  line: string;
  exfile: TextFile;
  i:integer;
begin
  try
    if FileExists('Ayarlar') then
    begin
      AssignFile(exfile, ExtractFilePath(Application.ExeName) + 'Ayarlar');
      Reset(exfile);
      for i:=0 to ComponentCount-1 do
      begin
        if Components[i].Tag = 1 then
        begin
          readln(exfile,line);
          TEdit(Components[i]).Text := line;
        end
        else if Components[i].Tag = 2 then
        begin
          Readln(exfile,line);
          TRadioGroup(Components[i]).ItemIndex := strtoint(line);
        end
        else if Components[i].Tag = 3 then
        begin
          Readln(exfile,line);
          TCheckBox(Components[i]).Checked := StrToBool(line);
        end
        else if Components[i].Tag = 4 then
        begin
          Readln(exfile,line);
          TMaskEdit(Components[i]).Text := line;
        end;
      end;
      CloseFile(exfile);
    end;
  except
    CloseFile(exfile);
    DeleteFile('Ayarlar');
  end;
end;
Kolay gelsin.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: txt dosyasına hem kaydettirme hemde içeriğini alma

Mesaj gönderen sabanakman »

Ayrınca TIniFile sınıfını incelemenizi öneririm.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla