Я делаю простую программу шифрования/дешифрования в Lazarus с 2 кнопками, один для шифрования и один для расшифровки. У меня также есть две записные коробки (или только две заметки). Я протестировал свой алгоритм, и он работает, но когда я попытался реализовать его в удобном для пользователя приложении, я получил эту проблему.Класс исключения 'Внешний: SIGSEGV'
У меня есть эта функция:
function enc(x:string):string;
var
y:string;
p,q:integer;
m:char;
begin
y:=x[1];
for p:=2 to Length(x)do
begin
q:=p-1;
if chr(ord(x[p]))=' ' then
m:='!'
else if ord(x[p])>ord(x[q]) then
m:=Succ(chr(ord(x[p])))
else
m:=Pred(chr(ord(x[p])));
Y:=y+m ;
end;
enc:=y;
end;
и одна процедура вызвать эту функцию
procedure TForm1.Button1Click(Sender: TObject);
begin
Memo1.Text:=enc(Memo2.Text);
end;
Я составил программу, и она работала, но когда я пытался ввести текст и зашифровать этот текст я получил эта ошибка
класс исключения 'External: SIGSEGV'
В файле 'unit1.pas' в строке 46: y: = x [1];
Я недавно начал изучать паскаль и использовать lazarus soo sry, если это Q глупо, но я действительно хочу знать, что я делаю неправильно.
Я действительно понял, в чем проблема. – anakata
процедура TForm1.Button1Click (отправитель: TObject); begin Memo1.Text: = enc (Memo2.Text); конец; Этот фрагмент кода сделал мою программу прекращенной couse, я печатал текст в memo1, но с этим кодом я был suposed для ввода memo2, поэтому я только что заменил memo1 и memo2, и теперь все это хорошо работает – anakata
Вот что я сказал вам в ответе. –