Не пойму, что такое случилось.
type
TMyArray = array of
record
Field1: integer;
...
end;
procedure MyProc (FileName: string; var _result: TMyArray);
var ResultCount: integer;
function NewElement: integer;
begin
if ResultCount = length(_result) then
SetLength(_result,ResultCount+64);
inc(ResultCount);
result:=ResultCount-1;
writeln ('new = '+inttostr(result)+'; len = '+inttostr(length(_result)));
end;
var SL: TStringList;
i: integer;
begin
SetLength(_result,0);
ResultCount:=0;
try
SL:=TStringList.Create;
try
SL.LoadFromFile(FileName);
for i:=0 to SL.Count-1 do begin
if <некоторое условие на SL[i]> then
with _result[NewElement] do begin
writeln (':');
Field1:=152;
writeln ('.');
...
т.е. читаю файл, для нужных мне строчек создаю элемент в дин. массиве. NewElement возвращает номер элемента. При попытке присвоить значение одному из полей (любому) самой первой записи - получаю AV (на выделенной строчке).
F:\BioProg\Waque>waque.exe -d 1500 -c 80 allwithwat_enh.ent
nw = 0; len = 64
:
Access violation
Смущает то, что Delphi 7.0 дает нормально работающюю программу. И FreePascal (2.0.0) вчера все нормально делал, а сегодня с утра бастует :) FileName - один и тот же файл. Компилирую с опциями
-O -Mdelphi
.