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
Text Dosyayı Print Etmek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Text Dosyayı Print Etmek
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.
2. yol olarak ta dosyayı direk yazıcıya gönderebilirsin ;
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) ;
Re: Text Dosyayı Print Etmek
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.
2. yol olarak ta dosyayı direk yazıcıya gönderebilirsin ;
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) ;