1

Тема: процедура(де помилка?)

Добрий вечір.

Потрібно написати задачу, яка б поміняла абзаци місцями, використовуючи процедуру.

Ось що вийшло, але програма не працює :(

Program lab8;
Var
F1, FT, FR :text;
Str: string;
L: Boolean;
Procedure Zamina (str2:string; var L2: Boolean);
var F2: text;
Begin
Readln (F2, str);
If ( str[1]=' ') and (str[2]=' ') and (str[3]=' ') then
Begin
Writeln (ft,str);
Readln(f2,str);
While (str[1]<> ' ') and (str[2]<>' ') and (str[3]<>' ') do
Begin
Writeln (ft, str);
Readln (F2,str);
End;
Begin
Close (ft);
Writeln (ft, str);
Readln (F2, str);
While (str[1]<> ' ') and (str[2]<>' ') and(str[3]<>' ') do
Begin
Writeln(fr,str);
Readln (f2,str);
End;
Reset (ft);
While not eof (ft) do
Begin
Readln (ft, str);
Writeln (fr, str);
End;
Close (ft);
While not eof (f2) do
Begin
Readln(f2,str);
Writeln(fr,str);
End;
L:= true;
End;
Begin

Assign (F1,'C:\111.txt');
Reset(f1);

Assign (Ft,'C:\222.txt');
Reset(ft);

Assign (Fr,'C:\333.txt');
Reset(fr);
 begin
L:= false;
Zamina(f1,L);
Writeln ('L=', L);
Close (f1);
Close (ft);
Close (fr);
end;
end;
end;
end.

2

Re: процедура(де помилка?)

А що міститься у файлах, як розділяються абзаци?

3

Re: процедура(де помилка?)

у файлі є текст, якщо на початку рядка є 3 пробіли значить це абзац.

4

Re: процедура(де помилка?)

Я б на вашому місці спочатку зчитував весь текст абзацу в рядкову змінну або масив, а уже потім записував одразу два абзаци. В одній рядковій змінній кілька рядків тексту можна зберігати розділяючи їх символами нового рядка: abz1 := abz1 + chr(13) + chr(10) + str;