Накидал пример в котором есть структура(простейшая), массив из этих структур, ну и запись/чтение массива структур в/из файл(а).
В процедуре чтения все идет на ура, проверяю в отладчике, все делается как надо. Как только строка переходит на "end" этой процедуры, выскакивает "Invalid pointer operation".
Кому лень качать, вот часть листинга:
type
TXSession = record
name : string;
name2 : string;
end;
XRecordArray = array of TXSession;
......
class procedure TXSessionClass.ReadTXSessions(var AXArray: XRecordArray);
var
FS : TFileStream;
XSession : TXSession;
i, arr_length : integer;
begin
FS := TFileStream.Create( 'Sess_arr.txt', fmOpenRead );
FS.Read(arr_length, SizeOf(integer));
SetLength(AXArray, 0);
for I := 0 to arr_length-1 do
begin
FS.Read(XSession, SizeOf(TXSession));
SetLength(AXArray, Length(AXArray) + 1);
AXArray[Length(AXArray)-1] := XSession;
//AXArray := AXArray + [XSession];
end;
FS.Free;
FS := nil;
end; //<-- Тут вываливается IPO
Вопрос
xenon54
Всем привет!
Вопрос вроде бы легкий, но ....
Накидал пример в котором есть структура(простейшая), массив из этих структур, ну и запись/чтение массива структур в/из файл(а).
В процедуре чтения все идет на ура, проверяю в отладчике, все делается как надо. Как только строка переходит на "end" этой процедуры, выскакивает "Invalid pointer operation".
Кому лень качать, вот часть листинга:
test.zip
Ссылка на комментарий
1 ответ на этот вопрос
Рекомендуемые сообщения