Text Dosyayı Print Etmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
akissoftware
Üye
Mesajlar: 118
Kayıt: 17 Ağu 2010 09:08

Text Dosyayı Print Etmek

Mesaj gönderen akissoftware »

Arkadaşlar merhaba.

C:\log.txt dosyası var ve bir program buna her 5 saniyede bir yeni veri ekleniyor. Dosyayı bende okuyabiliyorum yani kitlemiyor dosyayı.

Amacım bu yeni eklenen satırları yazıcıya print yani yazdırma. Bununla ilgili program veya kod bilen arkadaş varsa yardımcı olabilirse çok sevinirim. Bu benim için çok önemli. Şimdiden herkese teşekkürler
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: Text Dosyayı Print Etmek

Mesaj gönderen m_ekici »

LPT çıkışı olmayan yazıcılar için uzun süre önce bir örnek yapmıştım. aşağıdaki kodda txt çıktısını alıp bir tabloya atıyor, atılan bilgiyi Fastreportta tek satırlık bilgi olarak yazdırıyor.

Kod: Tümünü seç

AssignFile('log.txt','c:\log');
FileMode := 0;  {Set file access to read only }
Reset(DOSYA);
TMP_.EmptyTable;
TMP_.Open;
try
While not Eof(DOSYA)  do
  begin
  TMP_.Insert;
  ReadLn(DOSYA,SATIR);
  TMP_SATIR.Value := CEVIR1(SATIR); // 'Türkçe karakter problemi varsa düzeltiliyor
  TMP_.Post;
  end;
 TMP_.Refresh;
 Report:=frReport1;
 Report.ChangePrinter(-1,YZC);
 Report.LoadFromFile('Tmp1.frf');
 Report.Dictionary.Variables['Size']:= FSize;
 Report.OnObjectClick  :=nil;
 Report.OnmouseOverObject :=nil;
 If Report.PrepareReport Then
      Report.PrintPreparedReport('',1,True,frAll);
except
ShowMessage(' Hata 2');
end;
Screen.Cursor := crDefault;
TMP_.Close;
end;

2. yol olarak ta dosyayı direk yazıcıya gönderebilirsin ;

Kod: Tümünü seç

ShellExecute(Handle, 'print', PChar('c:\log.txt'), nil, nil, SW_HIDE) ;
Kullanıcı avatarı
m_ekici
Kıdemli Üye
Mesajlar: 563
Kayıt: 11 Haz 2003 06:49
Konum: Adana
İletişim:

Re: Text Dosyayı Print Etmek

Mesaj gönderen m_ekici »

LPT çıkışı olmayan bilgisayarlar için uzun süre önce bir örnek yapmıştım. aşağıdaki kodda txt çıktısını alıp bir tabloya atıyor, atılan bilgiyi Fastreportta tek satırlık bilgi olarak yazdırıyor.

Kod: Tümünü seç

AssignFile('log.txt','c:\log');
FileMode := 0;  {Set file access to read only }
Reset(DOSYA);
TMP_.EmptyTable;
TMP_.Open;
try
While not Eof(DOSYA)  do
  begin
  TMP_.Insert;
  ReadLn(DOSYA,SATIR);
  TMP_SATIR.Value := CEVIR1(SATIR); // 'Türkçe karakter problemi varsa düzeltiliyor
  TMP_.Post;
  end;
 TMP_.Refresh;
 Report:=frReport1;
 Report.ChangePrinter(-1,YZC);
 Report.LoadFromFile('Tmp1.frf');
 Report.Dictionary.Variables['Size']:= FSize;
 Report.OnObjectClick  :=nil;
 Report.OnmouseOverObject :=nil;
 If Report.PrepareReport Then
      Report.PrintPreparedReport('',1,True,frAll);
except
ShowMessage(' Hata 2');
end;
Screen.Cursor := crDefault;
TMP_.Close;
end;

2. yol olarak ta dosyayı direk yazıcıya gönderebilirsin ;

Kod: Tümünü seç

ShellExecute(Handle, 'print', PChar('c:\log.txt'), nil, nil, SW_HIDE) ;
Cevapla