Şöyle bir örnek var, Accessi aratmayacak Veritabanı motoru olmadan
(Dosya ve kodlar Biraz daha güncellenmiştir)
(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.
__________________________
From Now I will only Reading.
From Now I will only Reading.

