Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
COZULDU veritabani prg yerine ne kullanabilirim.
#7
Şöyle bir örnek var, Accessi aratmayacak Veritabanı motoru olmadan
(Dosya ve kodlar Biraz daha güncellenmiştir)
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TKisi = record
   TCKimlikNo: string[11];
   AdSoyad: string[50];
   DogumTarihi: string[10];
 end;

 
 TForm1 = class(TForm)
   Kaydet: TButton;
   edtTCKimlikNo: TEdit;
   edtAdSoyad: TEdit;
   edtDogumTarihi: TEdit;
   memoKutuk: TMemo;
   ListBox1: TListBox;
   bul: TButton;
   sil: TButton;
   Duzenle: TButton;
   ListBox2: TListBox;
   ComboBox1: TComboBox;
   ComboBox2: TComboBox;
   Button1: TButton;
   Button2: TButton;
   procedure KaydetClick(Sender: TObject);
   procedure bulClick(Sender: TObject);
   procedure silClick(Sender: TObject);
   procedure DuzenleClick(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure ComboBox1Change(Sender: TObject);
   procedure ComboBox2Change(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure ListBox1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}


function KayitDosyasiAdi: string;
begin
 Result := ExtractFilePath(Application.ExeName) + 'kayit.txt';
end;

procedure KayitEkle(const Kisi: TKisi);
var
 Dosya: TextFile;
begin
 AssignFile(Dosya, KayitDosyasiAdi);
 if FileExists(KayitDosyasiAdi) then
   Append(Dosya)
 else
   Rewrite(Dosya);

 writeln(Dosya, Kisi.TCKimlikNo + '|' + Kisi.AdSoyad + '|' + Kisi.DogumTarihi);

 CloseFile(Dosya);
end;

procedure KayitSil(const TCKimlikNo: string);
var
 Dosya: TextFile;
 GeciciDosya: TextFile;
 Satir: string;
begin
 AssignFile(Dosya, KayitDosyasiAdi);
 AssignFile(GeciciDosya, KayitDosyasiAdi + '.tmp');
 Reset(Dosya);
 Rewrite(GeciciDosya);

 while not EOF(Dosya) do
 begin
   ReadLn(Dosya, Satir);
   if Pos(TCKimlikNo, Satir) = 0 then
     writeln(GeciciDosya, Satir);
 end;

 CloseFile(Dosya);
 CloseFile(GeciciDosya);

 DeleteFile(KayitDosyasiAdi);
 RenameFile(KayitDosyasiAdi + '.tmp', KayitDosyasiAdi);
end;

procedure TForm1.KaydetClick(Sender: TObject);

var
 Kisi: TKisi;
begin
 Kisi.TCKimlikNo := edtTCKimlikNo.Text;
 Kisi.AdSoyad := edtAdSoyad.Text;
 Kisi.DogumTarihi := edtDogumTarihi.Text;

 KayitEkle(Kisi);
 ShowMessage('Kayıt eklendi.');
end;


// bul
procedure TForm1.bulClick(Sender: TObject);
var
 Dosya: TextFile;
 Satir: string;
 TCKimlikNo: string;
begin
 TCKimlikNo := edtTCKimlikNo.Text;

 AssignFile(Dosya, KayitDosyasiAdi);
 Reset(Dosya);

 while not EOF(Dosya) do
 begin
   ReadLn(Dosya, Satir);
   if Pos(TCKimlikNo, Satir) > 0 then
   begin
   memoKutuk.Clear;
     memoKutuk.Lines.Add(Satir);
     Break;
   end;
 end;

 CloseFile(Dosya);
end;

procedure TForm1.silClick(Sender: TObject);

var
 TCKimlikNo: string;
begin
 TCKimlikNo := edtTCKimlikNo.Text;
 KayitSil(TCKimlikNo);
 ShowMessage('Kayıt silindi.');
end;

procedure TForm1.DuzenleClick(Sender: TObject);
var
 Dosya: TextFile;
 GeciciDosya: TextFile;
 Satir: string;
 TCKimlikNo: string;
 YeniSatir: string;
begin
 TCKimlikNo := edtTCKimlikNo.Text;
 YeniSatir := TCKimlikNo + '|' + edtAdSoyad.Text + '|' + edtDogumTarihi.Text;

 AssignFile(Dosya, KayitDosyasiAdi);
 AssignFile(GeciciDosya, KayitDosyasiAdi + '.tmp');
 Reset(Dosya);
 Rewrite(GeciciDosya);

 while not EOF(Dosya) do
 begin
   ReadLn(Dosya, Satir);
   if Pos(TCKimlikNo, Satir) > 0 then
     writeln(GeciciDosya, YeniSatir)
   else
     writeln(GeciciDosya, Satir);
 end;

 CloseFile(Dosya);
 CloseFile(GeciciDosya);

 DeleteFile(KayitDosyasiAdi);
 RenameFile(KayitDosyasiAdi + '.tmp', KayitDosyasiAdi);

 ShowMessage('Kayıt düzenlendi.');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
begin
 if FileExists(KayitDosyasiAdi) then
   memoKutuk.Lines.LoadFromFile(KayitDosyasiAdi);
end;


end;


procedure TForm1.ComboBox1Change(Sender: TObject);

begin
button2.Click;
end;

procedure TForm1.ComboBox2Change(Sender: TObject);
var
 Dosya: TextFile;
 Satir: string;
 ArananAdSoyad: string;
 Kisi: TKisi;
 Found: Boolean;
begin
 ListBox1.Clear;
 ListBox2.Clear;
 memoKutuk.Clear;

 ArananAdSoyad := UpperCase(ComboBox2.Text);

 AssignFile(Dosya, KayitDosyasiAdi);
 Reset(Dosya);

 Found := False;

 while not EOF(Dosya) do
 begin
   ReadLn(Dosya, Satir);
   // Satır ve aranan metini büyük harfe çevirerek karşılaştırma yap
   if Pos(ArananAdSoyad, UpperCase(Satir)) > 0 then
   begin
     Kisi.AdSoyad := Copy(Satir, 1, Pos('|', Satir) - 1);
     Delete(Satir, 1, Pos('|', Satir));
     Kisi.TCKimlikNo := Copy(Satir, 1, Pos('|', Satir) - 1);
     Delete(Satir, 1, Pos('|', Satir));
     Kisi.DogumTarihi := Satir;

     ListBox1.Items.Add(Kisi.TCKimlikNo);
     ListBox2.Items.Add(Kisi.AdSoyad);
     memoKutuk.Lines.Add(Satir);

     Found := True;
   end;
 end;

 CloseFile(Dosya);

 if Found then
 begin
   ListBox1.ItemIndex := 0;
   ListBox2.ItemIndex := 0;
   Kisi.TCKimlikNo := ListBox1.Items[0];
   Kisi.AdSoyad := ListBox2.Items[0];
   Kisi.DogumTarihi := memoKutuk.Lines[0];
   edtTCKimlikNo.Text := Kisi.TCKimlikNo;
   edtAdSoyad.Text := Kisi.AdSoyad;
   edtDogumTarihi.Text := Kisi.DogumTarihi;
 end
 else
 begin
   // Eğer veri bulunamazsa edit kutularını temizle
   edtTCKimlikNo.Clear;
   edtAdSoyad.Clear;
   edtDogumTarihi.Clear;

   // ListBox1'e tckimlik ve ListBox2'ye adsoyadları listele
   AssignFile(Dosya, KayitDosyasiAdi);
   Reset(Dosya);

   while not EOF(Dosya) do
   begin
     ReadLn(Dosya, Satir);
     Kisi.TCKimlikNo := Copy(Satir, 1, Pos('|', Satir) - 1);
     Delete(Satir, 1, Pos('|', Satir));
     Kisi.AdSoyad := Copy(Satir, 1, Pos('|', Satir) - 1);
     ListBox1.Items.Add(Kisi.TCKimlikNo);
     ListBox2.Items.Add(Kisi.AdSoyad);
   end;

   CloseFile(Dosya);
 end;
end;






procedure TForm1.Button1Click(Sender: TObject);
var
 Dosya: TextFile;
 Satir: string;
 Kisi: TKisi;
begin
 ListBox1.Clear;
 ListBox2.Clear;
 memoKutuk.Clear;

 AssignFile(Dosya, KayitDosyasiAdi);

 if FileExists(KayitDosyasiAdi) then
 begin
   Reset(Dosya);

   while not EOF(Dosya) do
   begin
     ReadLn(Dosya, Satir);

     // Satırı parçalayarak TKisi yapısına dönüştür
     Kisi.TCKimlikNo := Copy(Satir, 1, Pos('|', Satir) - 1);
     Delete(Satir, 1, Pos('|', Satir));
     Kisi.AdSoyad := Copy(Satir, 1, Pos('|', Satir) - 1);
     Delete(Satir, 1, Pos('|', Satir));
     Kisi.DogumTarihi := Satir;

     // Listbox'lara ekle
     ListBox1.Items.Add(Kisi.TCKimlikNo);
     ListBox2.Items.Add(Kisi.AdSoyad);
     memoKutuk.Lines.Add(Satir);
   end;

   CloseFile(Dosya);
 end;
end;

procedure TForm1.ListBox1Click(Sender: TObject);

begin
combobox1.Text:=listbox1.Items[ListBox1.itemindex];
button2.Click;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 Dosya: TextFile;
 Satir: string;
 TCKimlikNo: string;
 Kisi: TKisi;
begin
 ListBox1.Clear;
 ListBox2.Clear;
 memoKutuk.Clear;

 TCKimlikNo := ComboBox1.Text;

 AssignFile(Dosya, KayitDosyasiAdi);
 Reset(Dosya);

 while not EOF(Dosya) do
 begin
   ReadLn(Dosya, Satir);
   if Pos(TCKimlikNo, Satir) > 0 then
   begin
     Kisi.TCKimlikNo := Copy(Satir, 1, Pos('|', Satir) - 1);
     Delete(Satir, 1, Pos('|', Satir));
     Kisi.AdSoyad := Copy(Satir, 1, Pos('|', Satir) - 1);
     Delete(Satir, 1, Pos('|', Satir));
     Kisi.DogumTarihi := Satir;

     ListBox1.Items.Add(Kisi.TCKimlikNo);
     ListBox2.Items.Add(Kisi.AdSoyad);
     memoKutuk.Lines.Add(Satir);
   end;
 end;

 CloseFile(Dosya);

 if ListBox1.Count > 0 then
 begin
   ListBox1.ItemIndex := 0;
   ListBox2.ItemIndex := 0;
   Kisi.TCKimlikNo := ListBox1.Items[0];
   Kisi.AdSoyad := ListBox2.Items[0];
   Kisi.DogumTarihi := memoKutuk.Lines[0];
   edtTCKimlikNo.Text := Kisi.TCKimlikNo;
   edtAdSoyad.Text := Kisi.AdSoyad;
   edtDogumTarihi.Text := Kisi.DogumTarihi;
 end
 else
 begin
   // Eğer veri bulunamazsa edit kutularını temizle
   edtTCKimlikNo.Clear;
   edtAdSoyad.Clear;
   edtDogumTarihi.Clear;
   memoKutuk.Clear;
 end;
end;

end.


Ek Dosyalar
.zip   RECORD TYPE_DATA.zip (Dosya Boyutu: 2,82 KB / İndirme Sayısı: 18)
__________________________
From Now I will only Reading.
Cevapla


Bu Konudaki Yorumlar
veritabani prg yerine ne kullanabilirim. - Yazar: nguzeller - 21-01-2024, Saat: 19:05
veritabani prg yerine ne kullanabilirim. - Yazar: enigma - 21-01-2024, Saat: 21:59
veritabani prg yerine ne kullanabilirim. - Yazar: mcuyan - 21-01-2024, Saat: 23:26
veritabani prg yerine ne kullanabilirim. - Yazar: frmman - 22-01-2024, Saat: 09:52
veritabani prg yerine ne kullanabilirim. - Yazar: COMMANDX - 22-01-2024, Saat: 11:08

Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  SQL Table Type parametre gecisi hakkında (Çözüldü) adelphiforumz 1 154 09-04-2026, Saat: 15:53
Son Yorum: adelphiforumz
  Datasnap veritabanı kayıt serdar 2 351 30-11-2025, Saat: 10:53
Son Yorum: serdar
  FastReport Dinamik Sayıya Göre Etiket Bastırma [ÇÖZÜLDÜ] bünyamin68 2 753 09-01-2025, Saat: 13:47
Son Yorum: bünyamin68
  paslibvlcplayerin gec acilmasi sorunu-COZULDU sadikacar60 7 1.152 08-10-2024, Saat: 09:25
Son Yorum: mrmarman
  [Çözüldü] HTTP üzerinden RTSP ile IP kamera stream işlemek Abdullah ILGAZ 4 6.868 08-10-2024, Saat: 09:20
Son Yorum: sadikacar60



Konuyu Okuyanlar: 1 Ziyaretçi