Hocam öncelikle cevabınız için teşekkür ederim ama sanırım tam ifade edememiş olabilirim dedigim gibi delphiye yeni başladım affınıza sıgınıyorum. isterseniz kodlarıda paylasıyım .
örnegin , Sınıf.txt'de 1 ögrenci kaydı var . Not.txt'de o ögrenciye ait birden fazla not kaydı varsa hepsini toplayıp hesaplattırıyorum . Ben sınıf'taki tek ögrenciyi sildigimde ona girilen bütün notları'da not.txt'den silmem lazım .Şuan txt dosyalara yazmayı da , okutmayıda yapabiliyorum . Txt'de ki bilgilerim listboxa geliyor , Listboxtaki ögrenciye tıkladıgımda 2 txt'dende o ögrenciyle ilişkili ne kadar bilgi varsa sildiren yöntemi arıyorum.
Kod: Tümünü seç
public
{ Public declarations }
OgrNo : Array of Integer;
Adi , Soyadi , Ogretmen , Sube , Ders : Array of String;
Ort : Array of Double;
Kaynak, TextSube,TextOgrNo,TextAdi,TextSoyadi,TextOgretmen,TextOrt,TextOgrNo2,TextDers,TextVize,TextFinal : String ;
procedure SinifOku;
Procedure OgrencininNotunuGetir(pOgrNo : Integer; Var fOrt :Double);
procedure SinifYaz;
procedure ListBoxDoldur;
end;
var
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.SinifOku;
var
MyFile: Textfile;
Text : String;
Sayac, myPos :integer;
begin
Sayac := 0;
SetLength(OgrNo, Sayac);
SetLength(Adi, Sayac);
SetLength(Soyadi, Sayac);
SetLength(Sube, Sayac);
SetLength(Ogretmen, Sayac);
SetLength(Ort, Sayac);
AssignFile(MyFile,'E:\sinif.txt');
Reset(MyFile);
while not Eof(MyFile) do
begin
Sayac := Sayac + 1;
ReadLn(MyFile, Text);
Kaynak := Text ;
SetLength(OgrNo, Sayac);
SetLength(Adi, Sayac);
SetLength(Soyadi, Sayac);
SetLength(Sube, Sayac);
SetLength(Ogretmen, Sayac);
SetLength(Ort, Sayac);
myPos := Pos ('####',Kaynak) ;
TextSube := Copy (Kaynak , 1 , myPos-1) ;
Kaynak := Copy (Kaynak , myPos+4 , Length(Kaynak) - 5);
myPos := Pos ('####',Kaynak);
TextOgrNo := Copy (Kaynak,1 , myPos-1) ;
Kaynak := Copy (Kaynak , myPos+4 , Length(Kaynak) - 5);
myPos := Pos ('####',Kaynak);
TextAdi := Copy (Kaynak,1 , myPos-1) ;
Kaynak := Copy (Kaynak , myPos+4 , Length(Kaynak) - 5);
myPos := Pos ('####',Kaynak);
TextSoyadi := Copy (Kaynak,1 , myPos-1) ;
Kaynak := Copy (Kaynak , myPos+4 , Length(Kaynak) - 5);
myPos := Pos ('####',Kaynak);
TextOgretmen := Copy (Kaynak,1 , myPos-1) ;
Kaynak := Copy (Kaynak , myPos+4 , Length(Kaynak) - 5);
myPos := Pos ('####',Kaynak);
OgrNo[Sayac - 1] := StrToInt (TextOgrNo);
Sube[Sayac - 1] := TextSube;
Adi[Sayac - 1] := TextAdi;
Soyadi[Sayac - 1] := TextSoyadi;
Ogretmen[Sayac - 1] := TextOgretmen;
OgrencininNotunuGetir(StrToInt (TextOgrNo), Ort[Sayac - 1])
end;
Closefile(MyFile);
end;
Procedure TForm2.OgrencininNotunuGetir(pOgrNo : Integer; Var fOrt:Double);
var
MyFile: Textfile;
Text : String;
XPos, sayac :integer;
OgrNo2 : integer;
fVize, fFinal : double;
begin
AssignFile(MyFile,'E:\Not.txt');
Reset(MyFile);
fOrt := 0;
sayac := 0;
while not Eof(MyFile) do
begin
ReadLn(MyFile, Text);
Kaynak := Text ;
xPos := Pos ('####',Kaynak) ;
TextOgrNo2 := Copy (Kaynak , 1 , XPos-1) ;
if StrtoInt(TextOgrNo2) = pOgrNo then
begin
sayac := sayac + 1;
Kaynak := Copy (Kaynak , XPos+4 , Length(Kaynak) - 6);
XPos := Pos ('####',Kaynak);
TextDers := Copy (Kaynak,1 , XPos-1) ;
Kaynak := Copy (Kaynak , XPos+4 , Length(Kaynak) - 6);
XPos := Pos ('####',Kaynak);
TextVize := Copy (Kaynak,1 , XPos-1) ;
Kaynak := Copy (Kaynak , XPos+4 , Length(Kaynak) - 6);
XPos := Pos ('####',Kaynak);
TextFinal := Copy (Kaynak,1 , Length(Kaynak)) ;
OgrNo2 := StrToInt(TextOgrNo2) ;
Ders2 := TextDers;
fVize := StrToFloat(TextVize) ;
fFinal := StrToFloat(TextFinal) ;
fOrt := fOrt + ( fVize * 0.40 ) + ( fFinal * 0.60 );
end;
end;
if sayac > 0 then fOrt := FOrt / sayac;
Closefile(MyFile);
end;
procedure TForm2.FormShow(Sender: TObject);
var
i : integer;
begin
SinifOku;
ListBoxDoldur;
end;
procedure TForm2.Button1Click(Sender: TObject);
var
Sayac : integer;
begin
Sayac := Length(OgrNo) + 1;
SetLength(OgrNo, Sayac);
SetLength(Adi, Sayac);
SetLength(Soyadi, Sayac);
SetLength(Sube, Sayac);
SetLength(Ogretmen, Sayac);
SetLength(Ort, Sayac);
OgrNo[Sayac - 1] := StrToInt (Edit2.Text);
Sube[Sayac - 1] := Edit1.Text;
Adi[Sayac - 1] := Edit3.Text;
Soyadi[Sayac - 1] := Edit4.Text;
Ogretmen[Sayac - 1] := Edit5.Text;
Ort[Sayac - 1] := 0;
SinifYaz;
ListBoxDoldur;
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Edit5.Clear;
end;
procedure TForm2.SinifYaz;
var
MyFile: Textfile;
Text : String;
i : integer;
begin
AssignFile(MyFile,'E:\Sinif.txt');
Rewrite(MyFile);
for i := 0 to Length(OgrNo) -1 do
begin
Writeln(MyFile ,Sube[i] +'####'+InttoStr(OgrNo[i])+ '####'+ Adi[i]+'####'+SoyAdi[i]+'####'+Ogretmen[i]+'####'+FloattoStr(Ort[i]));
end;
Closefile(MyFile);
end;
procedure TForm2.NotYaz;
var
MyFile: Textfile;
Text : String;
begin
AssignFile(MyFile,'E:\Not.txt');
Append(MyFile);
Writeln(MyFile ,Edit6.Text+'####'+Edit7.Text + '####'+ Edit8.Text+'####'+Edit9.Text);
Closefile(MyFile);
end;
procedure TForm2.ListBoxDoldur;
Var
i :integer;
begin
ListBox1.Clear;
for i:=0 to Length(OgrNo) - 1 do
begin
ListBox1.Items.Add(Format('%-5s%-5d%-30s%-30s%-50s%f', [Sube[i], OgrNo[i], Adi[i], Soyadi[i], Ogretmen[i], Ort[i]]));
end;
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
NotYaz;
SinifOku;
ListBoxDoldur;
Edit6.Clear;
Edit7.Clear;
Edit8.Clear;
Edit9.Clear;
end;