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

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

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

Mesaj gönderen Biltes »

Arkadaşlar öncelikle kolay gelsin;
Projemde tablodaki verilerimi txt formatında kaydetmem gerekiyor. Bunun için aşağıdaki kodu amatörce kullandım üzerinde biraz çalıştım ama istediğim sonucu alamadım. Yapmak istediğim olay txtye verileri sola yaslı olarak düzenli bir şekilde aralıklı olarak aktarmak istiyorum. Kullandığım kod aşağıda;

Kod: Tümünü seç

  with tatable Do
      While NOT EOF do begin
        Writeln(f, FieldByName('userid').AsString,'  ',
                   FieldByName('vno').AsString,'  ',
                   FieldByName('fid').AsString,'  ',
                   FieldByName('skodu').AsString,'  ',
                   FieldByName('scinsi').AsString);
        Next;
      end;
    CloseFile(f);
Yani exceldeki sütunlara dizilmiş gibi hizalamak istiyorum Verileri arkadaşlar. İlginize çok tşk ederim. Kolaygelsin...
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ı
Battosai
Üye
Mesajlar: 1316
Kayıt: 01 Eki 2007 12:02
Konum: Ankara

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

Mesaj gönderen Battosai »

text formatına neden aktarma ihtiyacı duyuluyor pek anlamıyorum...yani ne kadar düzenli yapmaya çalışılsada yinede güzel bir veri ortamı oluşmuyor...csv,excel,html kullanılması gereken ortamlar,bazıları bunların yanına heralde fazlalık olsun diye text export da koyuyor çıkan sonuca bakıyorum karışık bir yapı...eğer senden böyle birşey istenmediyse bence hiç uğraşma...
danaci
Üye
Mesajlar: 178
Kayıt: 24 May 2005 01:45

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

Mesaj gönderen danaci »

select rpad(fieldname,20,'') yada lpad(fieldname,20,'*') from tablenameile verileri çekebilirsin

sonrada bunu txt dosyana yazdırabilirsin.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

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

Mesaj gönderen conari »

Kod: Tümünü seç

Query.FieldByname('AY1_TUTAR').AsCurrency:7:2,#9,Query.FieldByname('AY2_TUTAR').AsCurrency:7:2,#9,
şeklinde aktarıyorum.
#9 Tab boşluğu bazı satırlarımda problem oluyor görsellikte. ama genelde düzgün.
ise 7 hane sonra 2 kuruş manasında burada

Kod: Tümünü seç

FieldByname('CARI_ISIM').value:70,#9
70 karakter yaz
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
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 »

Battosai yazdı:text formatına neden aktarma ihtiyacı duyuluyor pek anlamıyorum...yani ne kadar düzenli yapmaya çalışılsada yinede güzel bir veri ortamı oluşmuyor...csv,excel,html kullanılması gereken ortamlar,bazıları bunların yanına heralde fazlalık olsun diye text export da koyuyor çıkan sonuca bakıyorum karışık bir yapı...eğer senden böyle birşey istenmediyse bence hiç uğraşma...
genelde bankalara gönderilen dosyalar bu şekilde oluyor.
muhtemelen bankada bilmem kaç yılından kalma bir program kullanılıyordur o programda verileri text dosyadan okuyordur.
ondan sebep bu şekilde bir rapor hazırlanması gerekiyordur.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

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

Mesaj gönderen conari »

aslangeri yazdı:genelde bankalara gönderilen dosyalar bu şekilde oluyor.
muhtemelen bankada bilmem kaç yılından kalma bir program kullanılıyordur o programda verileri text dosyadan okuyordur.
ondan sebep bu şekilde bir rapor hazırlanması gerekiyordur.
Aynen dediğiniz gibi, bizde bu şekilde excel e giriliyor
hesap no, adı soyadı, tutar; şeklinde ve Txt dosya oluşturuluyor. Tabii format bankanın formatı burdan otomatik, banka da hesaplara dağıtım yapıyor.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
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 hocam dediğiniz gibi txt formatında olmak zordunda çıktının ama verilen örneklere dayanarak dahi düzgün bir sonuca varamadım daha :( Bu kadarcık bir olay dünya kadar zamanımı yedi :(
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 »

Arkdaşlar aşağıdaki kod ile tüm veriler tabloda düzenli ama sağa yaslı geliyoo bunları sola yaslayarak nasıl getirebiliriz. En azından bir aşama kaydettik ;)

Kod: Tümünü seç

  with tatable Do
      While NOT EOF do begin
        Writeln(f, FieldByName('userid').Value:0,#9,
                   FieldByName('vno').Value:3,#9,
                   FieldByName('fid').Value:3,#9,
                   FieldByName('skodu').Value:10,#9,
                   FieldByName('scinsi').Value:30,#9);
        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...
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

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

Mesaj gönderen ofenX »

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.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

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

Mesaj gönderen conari »

Biltes yazdı:Arkdaşlar aşağıdaki kod ile tüm veriler tabloda düzenli ama sağa yaslı geliyoo bunları sola yaslayarak nasıl getirebiliriz. En azından bir aşama kaydettik ;)

Kod: Tümünü seç

FieldByName('vno').Value:-3,#9,

Kod: Tümünü seç

- olarak
girerseniz sola yazlı yapıyor olması lazım.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
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 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);
Oluşan txt dosyasının şekli :
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...
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 »

o kullandığın fonttan kaynaklanıyor.
kullandığın fontta her karakterin genişliği aynı değil ondan sutun gibi sıralanmıyor.
fontu courier new veya benzer bir font seçersen sütun gibi olur. :D
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

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

Mesaj gönderen conari »

format olayından kaynaklanıyor olabilir.

Excelde macroya baktığımda

Kod: Tümünü seç

 isim = Format(Mid((Cells(t_sayac, 1).Value), 1, 25), "!@@@@@@@@@@@@@@@@@@@@@@@@@")
        sbkd = Format(Mid(Cells(t_sayac, 2).Value, 1, 4), "0000")
        hesap = Format(Mid(Cells(t_sayac, 3).Value, 1, 8), "!@@@@@@@@")
        tutar = Format(Mid(Cells(t_sayac, 4).Value, 1, 15), "000000000000.00")
kullanılmış.
Delphi de karşılığı nasıldır :roll: uyarlamak lazım..
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
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 »

benmi yanlış anladım.
sütun gibi dizmek derken neyi kastettiğinizi anlayamadım.
resme dikkatlice bakınca font zaten doğru seçilmiş.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

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

Mesaj gönderen conari »

Benim anladığım, Arkadaş resimde ki örnekte,
Cocola Pet şişe ile
Sportive Yün Bere nin tam alt alta gözükmesini istiyor.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Cevapla