![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Lurid |
![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
получаю ошибку - 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.
Сообщение отредактировано: Lurid - 11.04.2007 19:39 |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
reset (f2);
// ...
writeln (f2, stroka);
ты переоткрыл файл для чтения, а пытаешь в него писать ... -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Lurid |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
мисс_граффити |
![]()
Сообщение
#4
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
может, задание расскажешь? или это тайна?
текстовый файл можно открыть или для записи, или для чтения. делать и то, и другое одновременно не получится. readln (f2, stroka2);
writeln (f2, stroka);
или ты хотел читать из одного, писать в другой? -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
Lurid |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
может, задание расскажешь? или это тайна? текстовый файл можно открыть или для записи, или для чтения. делать и то, и другое одновременно не получится. 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 19:00 |
Lurid |
![]()
Сообщение
#6
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
у меня получается?
если было 1 2 то получается 2 2 где я не то пишу? |
klem4 |
![]()
Сообщение
#7
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Цитата Вообще задание: в тесктовом файле поменять местами 2 строки с заданными номерами В решении обязательно использовать дополнительный файл ? -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Lurid |
![]()
Сообщение
#8
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
klem4 |
![]()
Сообщение
#9
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Что-то вроде этого, но думаю можно это делоа сократить. Причем серьезно.
var
f1, f2: Text;
s, first: String;
n, m, count: Integer;
begin
n := 2;
m := 3;
if n <> m then begin
assign(f1, 'text.txt'); reset(f1);
assign(f2, 'temp.txt'); rewrite(f2);
count := 0;
while not(eof(f1)) and (count < n - 1) do begin
readln(f1, s); inc(count);
writeln(f2, s);
end;
readln(f1, first);
reset(f1); count := 0;
while not(eof(f1)) and (count <> m) do begin
inc(count);
readln(f1, s);
end;
writeln(f2, s);
reset(f1); count := 0;
while not(eof(f1)) do begin
readln(f1, s); inc(count);
if count = m then writeln(f2, first) else
if count > n then writeln(f2, s);
end;
close(f1); close(f2);
rename(f1, 'to_delete.txt');
rename(f2, 'text.txt');
erase(f1);
end;
end.
-------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Lurid |
![]()
Сообщение
#10
|
Группа: Пользователи Сообщений: 6 Пол: Мужской Репутация: ![]() ![]() ![]() |
klem4, спасибо!!!!!!!!
Большое спасибо! |
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 4:08 |