Я работаю над приложением пользовательского интерфейса Question/Answer в Паскале/Лазаресе. Моя проблема заключается в том, что при вызове ниже кода с помощью нажатия кнопки программа вылетает с ошибкой Segmentation Fault
.Pascal Segmentation Fault parsing Текстовый файл
// more declarations... (UI Form, Buttons, ...)
type
TQuestion = class(TObject)
title: string;
answers: array of string;
correct: integer;
end;
var
questions: array of TQuestion;
procedure TForm1.BStartClick(Sender: TObject);
var
i: integer;
j: integer;
line: string;
arrayLength: integer;
question: TQuestion;
stringList: TStringList;
begin
stringList := TStringList.create;
stringList.LoadFromFile('questions.txt');
for i := 0 to stringList.Count - 1 do ;
begin
line := stringList[i];
if (length(line) >= 2) then
if (line[2] = ' ') and ((line[1] = '-') or (line[1] = '+')) then
begin
arrayLength := length(question.answers);
SetLength(question.answers, arrayLength + 1);
question.answers[arrayLength] :=
Copy(line, 2, Length(line) - 1);
if zeile[1] = '+' then
question.correct := arrayLength;
end
else
begin
question := TQuestion.Create;
question.title := line;
arrayLength := length(questions);
setLength(questions, arrayLength + 1);
questions[arrayLength] := question;
end;
end;
BStart.Visible := False;
end;
Я вижу, что на это был дан ответ, но в следующий раз проверьте, что произойдет, если вы включите всю проверку диапазона и переполнения. –
@MarcovandeVoort попробует это в следующий раз. Я не привык к такому древнему языку программирования, который даже не может предупредить меня о дополнительной точке с запятой. – Clashsoft
Логические ошибки никогда не будут найдены. И последний FPC с этого года. –