From d9fd586128eaa83a5400367780591d8e19813130 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Mon, 26 Oct 2015 11:17:54 +0100 Subject: lesethreadunit.pas kann jetzt auf Wunsch eine Kopie der Daten ablegen --- lesethreadunit.pas | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'lesethreadunit.pas') diff --git a/lesethreadunit.pas b/lesethreadunit.pas index 03b1499..1f78201 100644 --- a/lesethreadunit.pas +++ b/lesethreadunit.pas @@ -11,13 +11,14 @@ type tLeseProzess = class private prozess: tProcess; - puffer: string; + puffer,_kopie: string; _anzahl,sollVorrat: longint; function rAnzahl: longint; procedure fuelleVorrat; public property anzahl: longint read rAnzahl; - constructor create(dateiName: string; vorratsZeilen: longint); + constructor create(dateiName: string; vorratsZeilen: longint); overload; + constructor create(dateiName, kopie: string; vorratsZeilen: longint); overload; destructor destroy; override; function gibZeile(out s: string): boolean; end; @@ -27,12 +28,18 @@ implementation // tLeseThread ***************************************************************** constructor tLeseProzess.create(dateiName: string; vorratsZeilen: longint); +begin + create(dateiName,'',vorratsZeilen); +end; + +constructor tLeseProzess.create(dateiName, kopie: string; vorratsZeilen: longint); begin inherited create; puffer:=''; _anzahl:=0; sollVorrat:=vorratsZeilen; + _kopie:=kopie; prozess:=tProcess.create(nil); if pos('/dev/',dateiName)=1 then @@ -66,6 +73,7 @@ procedure tLeseProzess.fuelleVorrat; var s: string; len,i: longint; + f: textfile; const maxLen = 1024*1024; begin @@ -75,6 +83,15 @@ begin for i:=1 to len do _anzahl:=_anzahl+byte(s[i]=#10); puffer:=puffer+copy(s,1,len); + if _kopie<>'' then begin + assignfile(f,_kopie); + if not fileexists(_kopie) then + rewrite(f) + else + append(f); + write(f,copy(s,1,len)); + closefile(f); + end; end; end; -- cgit v1.2.3-70-g09d2