Есть программка использующая динамический массив, собирается без проблем, но при исполнении вываливает кучу "An unhandled exception occurred at $XXXXXX"
Куда копать непонятно.
Собственно код программы:
type
PUsers = ^pusersar;
users = record
ip: string[16];
traff: qword;
end;
pusersar = array of users;
const
FName = 'ulogd.syslogemu';
UName = 'users';
SAddrPrefix = 'DST=';
Protocol = 'PROTO';
Traff = 'LEN=';
var
LogF: Text;
UsersAr: pusers;
IP: TStringList;
I, J, Num, Num2, ErrC: word;
LenPos: longint;
STraff, Source: string;
DigTraff: qword;
begin
//create objects
IP := TStringList.Create;
//complite create objects
AssignFile(LogF, FName);
Reset(LogF);
IP.LoadFromFile(UName);
Num := IP.Count;
GetMem(UsersAr, Num*Sizeof(Users));
for I := 0 to Num - 1 do
begin
UsersAr^[I].IP := IP.Strings[I];
while not EOF(LogF) do
begin
readln(LogF, Source);
if pos(IP.Strings[I], Source)<>0 then
begin
LenPos := pos(Traff, Source);
delete(Source, 1, LenPos+3);
LenPos := pos(' ', Source);
delete(Source, LenPos, length(Source));
STraff := Source;
val(STraff, DigTraff, ErrC);
if ErrC<>0 then
begin
writeln('Parsing error with code -- ', ErrC);
exit;
end
else
begin
UsersAr^[I].Traff := UsersAr^[I].Traff + DigTraff;
end;
end;
end;
end;
for I := 0 to Num -1 do
writeln(UsersAr^[I].IP, ' -- ', UsersAr^[I].Traff, ' bytes');
//Destroing objects
FreeMem(UsersAr);
IP.Destroy;
CloseFile(LogF);
end.
В турбо паскале такая конструкция работала.
подскажите где ошибка...