tablodaki verilerin txt'ye formatlı olarak aktarılması...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: tablodaki verilerin txt'ye formatlı olarak aktarılması...

Mesaj gönderen aslangeri »

eğer karakter sayıları aynı ise vede font dediğim şekilde bir font seçili ise alt alta göstermesi lazım.
bu duurmda formatlama sırasında karakter sayısı verilen boşluk sayısından fazla olabilir.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Re: tablodaki verilerin txt'ye formatlı olarak aktarılması...

Mesaj gönderen Biltes »

evet hocam aynen dediğiniz gibi. tüm veriler aktarıldığı zaman sütunların alt alta hizalanmasını istiyorum. Aslangeri hocam sizin dediğiniz gibi fontu Couruer New'de yaptım hiç bir şekilde o sorun çözülmedi halen daha aynı yerde tırmalıyorum. :(

İlgileriniz için çok tşk ederim.
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Re: tablodaki verilerin txt'ye formatlı olarak aktarılması...

Mesaj gönderen Biltes »

Arkadaşlar başka bir yöntem aklıma geldi ama nasıl yapabileceğimi tam olarak bilmiyorum. Cevaplar arasında ofenx hocamın dediği bir yöntem var ama onu başaramadım sanırım onu yapabilrsem olay çözülecek. Sizlerin bu konuda fikirlerini bekliyorum ne türlü denediysem başaramadım bu en son örnek üzerinden yola çıkarak yada yeni bir kodlama ile nasıl yapabilrim. Örneği uyguladım ama dediğim gibi başarılı olamadım.
Eğer bunu başarabilirsem birebir kodları yayımlıcam diğer arkadaşlarda faydalanmaları için...
Yardımlarınız için çok tşk ederim arkadaşlar...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Re: tablodaki verilerin txt'ye formatlı olarak aktarılması...

Mesaj gönderen Biltes »

Arkadaşlar şükürler olsun başardım. Sonunda azim yine galip geldi. Ufak bir fonksiyonla iş çözüldü. Size aşağıda kullandığım fonksiyonu ve kodu veriyorum, umarım böyle bir sıkıntısı olan dostlarımız bundan faydalanabilirler.

Fonskiyon :

Kod: Tümünü seç

function hiza(sagsol,yer:string;sayi:integer):string;
var
  i,bosluk,uzunluk:integer;
begin
  trim(yer); //Bosluklari temizle
  uzunluk:=length(yer); //Verilen stringin uzunlugunu ögren
  bosluk:=sayi-uzunluk; //Verilen sayidan uzunlugu çikar
  if sagsol='sag' then begin //Sagami solami yaslancagini ögren
  for i:=1 to bosluk do begin //Fark kadar saga bosluk ekle
    yer:=' '+yer; //Bosluk ekle
  end;
    result:=yer; //Sonucu bildir
    exit;
  end;

  if sagsol='sol' then
    begin
      trim(yer);
      for i:=1 to bosluk do begin //Fark kadar sola ekle
        yer:=yer+' ';
      end;
      result:=yer; //Sonucu bildir
      exit;
    end;
End;
Benim kullandığım kod:

Kod: Tümünü seç

  with tatable Do
      While NOT EOF do begin
         Writeln(f, hiza('sol',fieldbyname('skodu').AsString,15),
                    hiza('sol',fieldbyname('scinsi').AsString,35),
                    hiza('sag',fieldbyname('barkodu').AsString,20));
        Next;
      end;
    CloseFile(f);

Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: tablodaki verilerin txt'ye formatlı olarak aktarılması...

Mesaj gönderen ikutluay »

ofenX yazdı:Merhaba,
Ben olsam o verinin uzunluğunu bulurum, bu veri uzunluğunu alanın uzunluğundan çıkarır kalan rakam kadar boşluk bırakırım.

Örneğin verdiğiniz bilgiye göre scinsi nin alan uzunluğu 30 karakterdir. Orada örneğin 'ahmet' verisinin olduğunu varsayalım:
stringimiz:=veri+(alan uzunluğu-veri uzunluğu kadar boşluk karakteri)
:=ahmet+30-5
:=ahmet+25 adet boşluk.
bu şekilde 25 tane boşluk atarsanız hepsi düzene binmiş olur. Boşluk bırakmak için fill... gibi bir komut veya string fonksiyanlarından biri kullanılabilir.

Kolay gelsin.
en uygun yöntem budur. dos pascal zamanındaki raporların yöntemi.

Kod: Tümünü seç

writeln(txt,adi,spaceyaz(adi,20) gibi kullan

space yaz ise şöyle olsun
functon spaceyaz (var strr:string; ssize:integer): String;
boy: integer;
begin
 boy:= length(adi)-ssize; 
 result:=for next ile boşluk doldur veya fillchar ile "boy" kadar boşluk at
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Re: tablodaki verilerin txt'ye formatlı olarak aktarılması...

Mesaj gönderen ikutluay »

Biltes yazdı:evet hocam aynen dediğiniz gibi başına - koymam değerleri sola yaslamamı sağladı çok saolun ama son olarakl ufak bir problem daha kaldı. Aşağıdaki kodu kullanınca, resimdeki formtta txt'ye geliyor veriler. Bunların hepsini sütun gibi dizmenin bir yolu yordamı yokmudur acaba. Çok şey mi istiyorum acaba :? İlgi ve alakanız için gerçekten sizlere çok tşk ederim arkadaşlar. Allah hepinizden razı olsun...

Kod: Tümünü seç

  with tatable Do
      While NOT EOF do begin
        Writeln(f, FieldByName('userid').Value:-3,#9,
                   FieldByName('vno').Value:-3,#9,
                   FieldByName('fid').Value:-3,#9,
                   FieldByName('skodu').Value:-3,#9,
                   FieldByName('scinsi').Value:-3,#9);
        Next;
      end;
    CloseFile(f);
#9 olayı excel için kolaylık sağlar ama text import edilmesi için problem olabilir bunun yerine ayzdığınız değişkenin boyunu length ile bulun bunun tanınlı uzuluğu kadar sonuna boşluk ekleyin. diğer cevabımda mantığı var.
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
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Re: tablodaki verilerin txt'ye formatlı olarak aktarılması...

Mesaj gönderen Biltes »

aynen conari hocamın dediği gibi yapmak istiyordum ve yukarıda verdiğim kod ile bunu başarabildim. Txt'ye aktardığı ekran görüntüsünü de aşağıda veriyorum.
Yardımlarınızdan dolayı hepinize ayrı ayrı tşk ediyorum arkadaşlar...

Resim
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Cevapla