Консультация № 201026
31.05.2021, 22:23
0.00 руб.
0 1 1
Здравствуйте! Пожалуйста, нужна помощь в решении задачи на Lazarus:
type текст = file of char;
Описать и проверить работу процедуры del(t), удаляющей из текста t
предпоследний элемент, если такой есть.

Обсуждение

давно
Профессор
401888
1232
01.06.2021, 07:18
общий
это ответ
[code lang=pascal]procedure TForm1.Button1Click(Sender: TObject);
type myText=file of char;
procedure del(var t:myText);
var c:char;
begin
reset(t);
if filesize(t)<2 then
begin
ShowMessage('В файле нет двух символов');
exit;
end;
seek(t,filesize(t)-1);
read(t,c);
seek(t,filesize(t)-2);
write(t,c);
seek(t,filesize(t)-1);
truncate(t);
closefile(t);
end;
var f:myText;
c:char;
begin
//запишем в файл буквы A..Z
Memo1.Text:='Содержание исходного файла'+#13#10;
assignfile(f,'file');
rewrite(f);
for c:='A' to 'Z' do
begin
write(f,c);
Memo1.Text:=Memo1.Text+c;
end;
del(f); //вызовем проедуру
Memo2.Text:='Содержание измененного файла'+#13#10;
reset(f);
while not eof(f) do
begin
read(f,c);
Memo2.Text:=Memo2.Text+c;
end;
closefile(f);
end; [/code]
Форма ответа