summaryrefslogtreecommitdiff
path: root/werteunit.pas
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2017-07-11 13:02:04 +0200
committerErich Eckner <git@eckner.net>2017-07-11 13:02:04 +0200
commitbb23ec467e7c17eea6e3a061a93e38b9f4490903 (patch)
tree9d5f0ed9f203359e301b62b6e530aba503edde98 /werteunit.pas
parentd467460a03b86d3840e50f6e3821f5ef2cc826fa (diff)
downloadepost-bb23ec467e7c17eea6e3a061a93e38b9f4490903.tar.xz
kann jetzt auch .sif lesen
Diffstat (limited to 'werteunit.pas')
-rw-r--r--werteunit.pas40
1 files changed, 40 insertions, 0 deletions
diff --git a/werteunit.pas b/werteunit.pas
index a643a7b..fdae91a 100644
--- a/werteunit.pas
+++ b/werteunit.pas
@@ -371,6 +371,7 @@ var
ipp: tProcess;
buf: tByteArray;
etwasGelesen: boolean;
+ s: string;
begin
result:=false;
gibAus('... Dateien einlesen ...',1);
@@ -656,6 +657,45 @@ begin
close(f);
etwasGelesen:=true;
end;
+ if dateien[i] is tAndorInputDateiInfo then begin
+ etsiz:=dateien[i].tsiz;
+
+ assign(f,dateien[i].Name);
+ reset(f,1);
+ seek(f,(dateien[i] as tAndorInputDateiInfo).datenStart);
+ tmpi:=wertGroesze(dateien[i].genauigkeit);
+ if tmpi = sizeOf(wgen) then
+ blockread(f,werte[0],dateien[i].xsteps*dateien[i].tsiz*tmpi)
+ else case dateien[i].genauigkeit of
+ gSingle:
+ for j:=0 to dateien[i].xsteps*dateien[i].tsiz-1 do begin
+ blockread(f,tmps,tmpi);
+ werte[j]:=tmps;
+ end;
+ gDouble:
+ for j:=0 to dateien[i].xsteps*dateien[i].tsiz-1 do begin
+ blockread(f,tmpd,tmpi);
+ werte[j]:=tmpd;
+ end;
+ gExtended:
+ for j:=0 to dateien[i].xsteps*dateien[i].tsiz-1 do begin
+ blockread(f,tmpe,tmpi);
+ werte[j]:=tmpe;
+ end;
+ end{of case};
+ try
+ readAnAndorString(f,s,false);
+ except
+ s:='falsch';
+ end;
+ if s<>'' then begin
+ gibAus('Syntax-Fehler in '''+dateien[i].Name+''': vmtl. zu viele/wenige Daten.',3);
+ closefile(f);
+ exit;
+ end;
+ close(f);
+ etwasGelesen:=true;
+ end;
if not etwasGelesen then begin
gibAus('Ich habe diese Runde keine Daten gelesen!',3);
exit;