Я новичок в delphi и программировании в целом. У меня проблема, когда при компиляции и выполнении следующей DLL-процедуры я получаю ошибку ввода-вывода 998. Не могли бы вы указать, что я делаю неправильно, делая минимально возможное количество изменений в моем коде? Насколько я могу судить, это проблема с тем, как я обрабатываю свои файлы.Ошибка Delphi: ошибка ввода/вывода 998
Идея этой процедуры для приема данных из приложения VCL с использованием DLL, сохранения его в записи и сохранения записи в файл .dat.
type
plist = ^game;
tdata = record
nazwa: shortstring;
wydawca: shortstring;
rokwyd: shortstring;
gatunek1: shortstring;
gatunek2: shortstring;
end;
game = record
data: tdata;
pointer: plist;
end;
{$R *.res}
procedure DodajElement (var field1, field2, field3, field4, field5 : shortstring); stdcall;
var
BazaDanych : file of game;
first, current: plist;
begin
AssignFile(BazaDanych, 'BazaDanychGier.dat');
if not FileExists('BazaDanychGier.dat') then
begin
new(first);
first^.data.nazwa := field1;
first^.data.wydawca := field2;
first^.data.rokwyd := field3;
first^.data.gatunek1 := field4;
first^.data.gatunek2 := field5;
first^.pointer := nil;
Rewrite(BazaDanych);
Write(BazaDanych, first^);
CloseFile(BazaDanych);
end
else
begin
Reset(BazaDanych);
Read(BazaDanych, first^);
CloseFile(BazaDanych);
current := first;
new(first);
first^.data.nazwa := field1;
first^.data.wydawca := field2;
first^.data.rokwyd := field3;
first^.data.gatunek1 := field4;
first^.data.gatunek2 := field5;
first^.pointer := current;
Rewrite(BazaDanych);
Write(BazaDanych, first^);
CloseFile(BazaDanych);
end;
end;
Извините за имена иностранных переменных.
Какая линия вызывает исключение быть поднят? –
Почему мы не можем иметь [mcve]? Это не первый раз, когда мы видели этот код. С кодом довольно много проблем. Должен признаться, мне интересно, почему вы не отлаживаете. Почему это? Разве не легче было бы узнать, как отлаживать и быть в состоянии сделать это самостоятельно, вместо того, чтобы просить других людей отлаживать фрагменты вашего кода? Разве вы не хотели бы сортировать это для себя? –
Да, я хотел бы иметь возможность сделать это сам, я бы не стал задавать вопрос здесь, если бы я еще не исчерпал все свои возможности. Я прошу помощи не потому, что я ленив, а потому, что я застрял. Кроме того, насколько я могу судить, отладчик говорит мне, что все в порядке, я не вижу проблем, о которых вы говорите. –