diff options
author | Erich Eckner <git@eckner.net> | 2015-10-26 11:17:54 +0100 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2015-10-26 14:40:06 +0100 |
commit | d9fd586128eaa83a5400367780591d8e19813130 (patch) | |
tree | dc0d15bd25ab68a4168be106ecfa9ff1a8199e04 | |
parent | bead677137dd9428046b2fff2ae8092439c4a152 (diff) | |
download | units-d9fd586128eaa83a5400367780591d8e19813130.tar.xz |
lesethreadunit.pas kann jetzt auf Wunsch eine Kopie der Daten ablegen
-rw-r--r-- | lesethreadunit.pas | 21 |
1 files changed, 19 insertions, 2 deletions
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; @@ -28,11 +29,17 @@ implementation 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; |