получаю ошибку - Error 105: File not open for output.
Program ch; Var f1, f2: text; a,n: byte; count: integer; stroka, stroka1, stroka2: string; begin a:=2; n:=4; assign (f1, 'file1.txt'); assign (f2, 'file2.txt'); reset (f1); rewrite (f2); count:=0; while not eof (f1) do begin readln (f1, stroka); if count=a then writeln (f2, stroka1); if count=n then writeln (f2, stroka2); count:= count+1; end; begin reset (f2); rewrite (f1); count:=1; if count=a then readln (f2, stroka2); writeln (f2, stroka); if count=a then readln (f2, stroka1); writeln (f2, stroka); count:= count+1; end; close (f1); close (f2); erase (f2); end.
klem4
11.04.2007 20:52
reset (f2); // ... writeln (f2, stroka);
ты переоткрыл файл для чтения, а пытаешь в него писать ...
Lurid
11.04.2007 21:40
Цитата(klem4 @ 11.04.2007 17:52)
reset (f2); // ... writeln (f2, stroka);
ты переоткрыл файл для чтения, а пытаешь в него писать ...
А как надо? я дома изучаю язык. по учебнику. Поэтому если не трудно то где править?
мисс_граффити
11.04.2007 22:21
может, задание расскажешь? или это тайна?
текстовый файл можно открыть или для записи, или для чтения. делать и то, и другое одновременно не получится.
readln (f2, stroka2); writeln (f2, stroka);
или ты хотел читать из одного, писать в другой?
Lurid
11.04.2007 22:59
Цитата(мисс_граффити @ 11.04.2007 19:21)
может, задание расскажешь? или это тайна?
текстовый файл можно открыть или для записи, или для чтения. делать и то, и другое одновременно не получится.
readln (f2, stroka2); writeln (f2, stroka);
или ты хотел читать из одного, писать в другой?
Вообще задание: в тесктовом файле поменять местами 2 строки с заданными номерами
Program ch; Var f1, f2: text; a,n: byte; count: integer; stroka, stroka1, stroka2: string; begin a:=2; n:=4; assign (f1, ‘file1.txt’); assign (f2, ‘file2.txt’); reset (f1); rewrite (f2); count:=0; while not eof (f1) do begin readln (f1, stroka); if count=a then writeln (f2, stroka1); if count=n then
writeln (f2, stroka2); count:= count+1; end; begin reset (f2); rewrite (f1); count:=1; if count=a then readln (f2, stroka2); writeln (f1, stroka); if count=a then readln (f2, stroka1); writeln (f1, stroka); count:= count+1; end; close (f1); close (f2); erase (f2); end.
то есть если в файле написано 1 2 3 4 5
должно получится: 1 4 3 2 5
Lurid
11.04.2007 23:34
у меня получается? если было 1 2
то получается 2 2
где я не то пишу?
klem4
11.04.2007 23:46
Цитата
Вообще задание: в тесктовом файле поменять местами 2 строки с заданными номерами
В решении обязательно использовать дополнительный файл ?
Lurid
11.04.2007 23:54
Цитата(klem4 @ 11.04.2007 20:46)
В решении обязательно использовать дополнительный файл ?
да. обязательное условие
klem4
12.04.2007 0:20
Что-то вроде этого, но думаю можно это делоа сократить. Причем серьезно.
var f1, f2: Text; s, first: String; n, m, count: Integer;