есть такая проблема при работе с динамическим масивом spectr
задаю длину масива [0..2*10e6, 0..1] - ок (долго соображает)
записую данные в масив - на 100000-200000 ок
выхожу из цикла - ок
потом программа долго соображает и вылетает с кодом 201
0 0.000 mV 60216
0 0.000 mV 60217
End read Data to Buffer, go write to File
Runtime error 201 at $00002ACD
$00002ACD
$00005E9A
$00002094
при длине до 20000 все работает
FreePascal IDE for GO32 V2 DOS extender
Target CPU: i386
Version 1.0.10 2009/04/01
(Compiler Version 2.2.4)
(Debugger GDB 6.1.1)
OS: Win98
- Код: Выделить всё
var data : array[1..5] of integer;
digit : array[1..4] of real;
spectr: array of array of real;
i, vel : integer;
velk, cnt : longint;
value, xmax, xmin, xexit : real;
fout : text;
port : tport;
begin
...
xexit:=1900*(xmax-xmin)*velk;
SetLength(spectr, round(xexit), 2);
assign(fout,fname);
rewrite(fout);
cnt:=0;
while (not keypressed) and (cnt<xexit) do {nachalo izmereniya}
begin
...
spectr[cnt,0]:=1; spectr[cnt,1]:=value;
...
inc(cnt);
end;
writeln('End read Data to Buffer, go write to File');
{ Error }
for i:=0 to cnt-1 do
begin
writeln(fout, spectr[i,0]:0:0, ' ', spectr[i,1]:5:5);
writeln(i);
flush(fout);
end;
close(fout);