Delphi Can
Record type içerisindeki değişkenlerime for döngüsü ile erişme - Baskı Önizleme

+- Delphi Can (http://www.delphican.com)
+-- Forum: Delphi (http://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (http://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: Record type içerisindeki değişkenlerime for döngüsü ile erişme (/showthread.php?tid=1433)



Record type içerisindeki değişkenlerime for döngüsü ile erişme - yhackup - 24-10-2017

Merhabalar,
Bir Hizmetimde fonksiyonum var, Bu fonksiyonum, bir record tipi dönüyor, tipimin içerisinde her türden değişken var Currency, Int. Str. + Benim yaptığım record tiplerim.

İçerisinde 90'dan fazla değişken var, Fonksiyonumun sonunda, bu tipimin içerisinde dönüp, hangi değişkenimin içerisi ne ile dolmuş okuyup bir text dosyasına yazmam gerekiyor. (loglama yapmam gerekiyor)

Bunu nasıl yapabilirim ?


Cvp: Record type içerisindeki değişkenlerime for döngüsü ile erişme - vkamadan - 24-10-2017

(24-10-2017, Saat: 14:28)yhackup Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Merhabalar,
Bir Hizmetimde fonksiyonum var, Bu fonksiyonum, bir record tipi dönüyor, tipimin içerisinde her türden değişken var Currency, Int. Str. + Benim yaptığım record tiplerim.

İçerisinde 90'dan fazla değişken var, Fonksiyonumun sonunda, bu tipimin içerisinde dönüp, hangi değişkenimin içerisi ne ile dolmuş okuyup bir text dosyasına yazmam gerekiyor. (loglama yapmam gerekiyor)

Bunu nasıl yapabilirim ?

Merhaba Yakup ,

Eğer Delpi Xe ve üzeri bir sürüm kullanıyorsan bence en kestirme yol RTTI kullanmaktır , uses a RTTI ekle , forma bir TMemo ve TButton atıp aşağıdaki örneği hazırladım
TRecordTip  adında basit bir  Record tip tanımlayıp hem alan isimlerini hem değerlerini yazdırdım.

procedure TForm1.Button1Click(Sender: TObject);

 type TRecordTip = record
   a:string;
   b:Integer;
 end;
var
 intRec    : TRecordTip;
 intType   : TRTTIType;
 intFields : TArray<TRttiField>;
 i: Integer;
begin
 intRec.a := 'Str değer';
 intRec.b := 12345;
 intType := TRTTIContext.Create.GetType(TypeInfo(TRecordTip));
 intFields := intType.GetFields;
 for i := 0 to high(intfields) do
   Memo1.Lines.Add(Format('%s: %s ', [ intFields[i].Name,intFields[i].GetValue(@intRec).ToString]));
end;

Kolay gelsin.


Record type içerisindeki değişkenlerime for döngüsü ile erişme - yhackup - 24-10-2017

Harika Teşekkürler.