Всем привет. Помогите найти ошибку в программе. Вместо того чтобы
записывать в файл 3 к-ю текстовую строку с файла 1 записывается только последняя строка а предыдущие нет. Заранее спасибо
P. S. Среда ТР 7.0 (условий в операторе case 17)
[HTML]for i:=1 to n do
read(p);
case р of
1:begin
k:=0;
Assign(f,'1.txt');
reset(f);
repeat
k:=k+1;
readln(f,buf);
until k=1;
Assign(ff,'3.txt');
rewrite (ff); append(ff);
writeln(ff,buf);
close(ff);
end;
2: begin
k:=0;
Assign(f,'F:\1.txt');
reset(f);
repeat
k:=k+1;
readln(f,buf);
until k=2;
Assign(ff,'F:\3.txt');
rewrite (ff);
append(ff);
writeln(ff,buf);
close(ff);
end;
end;[/HTML]
=ФАЙЛЫ ТХТ=Помогите найти ошибку плис
Ой, ну и чушь...
1. Что должна делать программа?
2. N не инициализирована (если это переменная) и не задана (если это константа).
3. То, что у вас написано в случае, когда p=1, имеет ровно один смысл - считать первую строку из файла 1.txt и записать ее в файл 3.txt
4. rewrite (ff); append(ff); - это избыточность. Вы сначала полностью очищаете файл ff, а потом требуете добавлять новые данные в конец уже существующих. Какая разница, в конец или в начало, если все прошлые данные уже стерты?
5. Если ваша задача состоит в том, чтобы переписать из файла 1.txt в 3.txt к-ю строку, она вся делается так (объявления переменных пропущу)
assign(f, '1.txt'); reset(f);
assign(ff, '3.txt'); append(ff) ИЛИ rewrite(ff) - смотря по тому, нужно ли очищать выходной файл перед выводом
for i:=1 to k do readln(f,s);
writeln(ff,s);
close(f); close(ff);
Все.
1. Что должна делать программа?
2. N не инициализирована (если это переменная) и не задана (если это константа).
3. То, что у вас написано в случае, когда p=1, имеет ровно один смысл - считать первую строку из файла 1.txt и записать ее в файл 3.txt
4. rewrite (ff); append(ff); - это избыточность. Вы сначала полностью очищаете файл ff, а потом требуете добавлять новые данные в конец уже существующих. Какая разница, в конец или в начало, если все прошлые данные уже стерты?
5. Если ваша задача состоит в том, чтобы переписать из файла 1.txt в 3.txt к-ю строку, она вся делается так (объявления переменных пропущу)
assign(f, '1.txt'); reset(f);
assign(ff, '3.txt'); append(ff) ИЛИ rewrite(ff) - смотря по тому, нужно ли очищать выходной файл перед выводом
for i:=1 to k do readln(f,s);
writeln(ff,s);
close(f); close(ff);
Все.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.