arkadaslar iki boyutlu diziler hakkında llütfen yardım

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
faith27
Üye
Mesajlar: 3
Kayıt: 02 Oca 2008 04:49

arkadaslar iki boyutlu diziler hakkında llütfen yardım

Mesaj gönderen faith27 »

merhaba,arkadaşlar benim ufak bir problemim var,yardımcı olursanız sevinirim..
bir program yapıyorum da,öğrenci notlarını hesaplatacak ve bu bilgileri textfile da saklayacak bir program.Fakat sorun şu ki verileri programdan dosyaya yazdırıyorum fakat bun ları şu şekilde görmesi lazım;
2001 1 1 45
2001 1 2 56
2001 1 3 78
2002 2 1 98
2002 2 2 56
2002 2 3 45
2003 3 1 45
2003 3 2 67
2003 3 3 74

Burada veriler yıla göre programa çağırılacak yani dizi[1,3]=2001 1 3 78
kısacası 3 lü bloklar halinde olması lazım şimdiden saolun..şimdiye kadar sölediğim yerle ilgili kodlarım yarımyamalak şöyle;


Kod: Tümünü seç

procedure TForm1.Kaydet1Click(Sender: TObject);
 var a,i,j:integer;
    dizi:array [1..14] of  array[1..14]  of String;
  begin
   if SaveDialog1.Execute then  begin
     AssignFile(myfile,SaveDialog1.FileName);
      if not FileExists(SaveDialog1.FileName) then begin
     Rewrite(myfile);
     CloseFile(myfile);
     end;
     for a:=1 to 14 do begin
     Append(myfile);
     ogrenci.sinif:=strToint(Edit17.Text);
   ogrenci.Tarih[a]:=Edit16.text;
   if sg.Cells[a,1]<>'' then
   ogrenci.Notlar[a]:=strToint(sg.Cells[a,1]);
   ogrenci.modul[a]:=strToint(sg.Cells[a,0]);
   for i:=low(dizi) to high(dizi) do   begin
   for j:=low(dizi[i]) to high(dizi[i]) do begin
    ?
    ?
    ?
    ?
    ?
    end;
    end;
     Writeln(myfile,dizi[i][j]+'  '+intTostr(ogrenci.sinif)+'  '+intTostr(ogrenci.modul[a])+'  '+intTostr(ogrenci.Notlar[a]));
          Flush(myfile);
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

merhaba

bilgilerin aralarına noktalı virgül koyasanız csv formatlı bir veri elde ederseniz. http://www.torry.net adresinde CSV dosyalarını dataset gibi kullanan bileşenlerde vardı. dolayısıyla ilkelde olsa VT tarzı bir çözüm olur.

noktalı virgül yazdığınızda ise rakamların arasındaki kaymaları vs önlemiş olursunuz. mantıken söylüyorum her "pos" ta kes yapıp değer alacaksınız
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
faith27
Üye
Mesajlar: 3
Kayıt: 02 Oca 2008 04:49

Mesaj gönderen faith27 »

Çok teşekkür ederimde ben bu işi diziyle halletsem sanırım daha ii olur, o şekilde bi yardım ederseniz çok makbule geçer..
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
Açıkcası sorunuzda neyi istediğinizi tam olarak anlamadım.
notları örnekte gösterdiğiniz şekilde bir text dosyasına yazmak mı istiyorsunuz?
yoksa örnekte gösterildiği şekilde yazılmış bir text dosyasından okumak mı istiyorsunuz?
bu noktaya aydınlık getirirseniz yardımcı olmaya çalışalım.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
faith27
Üye
Mesajlar: 3
Kayıt: 02 Oca 2008 04:49

merhabalar

Mesaj gönderen faith27 »

Aslında programda Database yerine dosyada saklamaya çalışıyorum verileri,fakat ilk defa yapıyorum ve sürekli bi sorun çıkıyor.
Sonuç olarak hem programdaki verileri yazdırmam hem de bunları load edip okuyabilmem lazım yukarıda sorduğum soru bunun sadece bir parçası,database olarak dosyayı kullanma işinde yardımcı olabilirsen çok sevinirim sagol..
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
xml kullansan işini görmez mi?

(şayet cevabın hayır ise)
eğer kayıtları dediğin şekilde bir text dosyada tutacağım diyorsan şöyle bir önerim olacak.
bilgileri önce bir memoya (yada bir stringlist create edip onun içine) at. sonra memonun savetofile ve/veya loadfromfile metodları ile text dosyaya yazıp okuma işini hallet.
sonra geriye memoya okuduğun değerleri pars etmek kalıyor.
ondada memonun satır sayısı kadar bir döngü sıradaki satırı bir değişkene atarsın. pos, delete, copy komutlarını kullanarak notları alırsın.
gerisi sana kalmış. Hele bi yazmaya başla. takıldığın yer olursa yardım ederiz. :wink
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla