IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Работа с фалами, Считать f1, считать f2. Записать все в f3
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Стоит задача считать f1 - c:\temp\f1.txt
Затем считать f2 - c:\temp\f2.txt
И все это записать в f3 - c:\temp\f3.txt

Вот что накодил.
program laba;

var f1, f2, f3:text;

a:integer;

begin

assign(f1, 'c:\temp\f1.txt');

reset(f1);

assign(f2, 'c:\temp\f2.txt');

reset (f2);

assign (f3, 'c:\temp\f3.txt');

rewrite(f3);

while not eof(f1) do

begin

read (f1,a);

write (f3, a);

end;

append(f3);

while not eof(f2) do

begin

read(f2,a);

write(f3,a);

end;



write('complete');

close(f1);

close(f2);

close(f3);

end.


Все ли сделано верно?

Сообщение отредактировано: saur -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


по идее перед append надо close(f3) сделать. Но тут append и не нужен, пишешь подряд и пишешь...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата
по идее перед append надо close(f3) сделать.
Не надо:
Цитата(Pascal Help)
Append (procedure)
Opens an existing file for appending.
<...>
Append opens the existing external file with the name assigned to F. An error occurs if no external file of the given name exists. If F is already open, it is closed, then reopened. The current file position is set to the end of the file.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


А так все верно? Просто я писал по памяти. Компилятора нет под рукой, я с телефона сижу, поэтому и попросил проверить.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(saur @ 26.05.2010 22:53) *
А так все верно?
Нет.
Про чтение: поскольку файл текстовый, то сказать этого нельзя. Может быть и верно, и неверно - все зависит от формата входных файлов.
Про запись: заведомо неверно. Ты лепишь числа одно к другому без разделителей - как потом этот файл читать?

А append лучше действительно убрать..

P.S.
и что это за новая мода - писать код через строку и без форматирования?..


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Цитата(Lapp @ 27.05.2010 0:13) *

Нет.
Про чтение: поскольку файл текстовый, то сказать этого нельзя. Может быть и верно, и неверно - все зависит от формата входных файлов.

Только числа на входе в файле через пробел
Цитата(Lapp @ 27.05.2010 0:13) *

Про запись: заведомо неверно. Ты лепишь числа одно к другому без разделителей - как потом этот файл читать?

Т.е. писать лучше так:
read(f2,a);
write(f3,a);
write(f3, ' ');


Да?
Цитата(Lapp @ 27.05.2010 0:13) *

А append лучше действительно убрать..

Он и так будет писать в конец файла?
Цитата(Lapp @ 27.05.2010 0:13) *

P.S.
и что это за новая мода - писать код через строку и без форматирования?..

Это называется пишу через оперу мини. Тут не очень удобно пробелами выравнивать код


Сообщение отредактировано: saur -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(saur @ 27.05.2010 1:27) *
Только числа на входе в файле через пробел

Тогда вроде верно..
Цитата
Т.е. писать лучше так:
read(f2,a);
write(f3,a);
write(f3, ' ');

Да?
Так:
read(f2,a);
write(f3,a,' ');

Цитата
Он и так будет писать в конец файла?
А откуда ему вообще знать, что у тебя один файл закончился и начался второй? и какое ему до этого дело? ))
Процесс записи идет сам по себе, как шел, если ты не сделал reset на f3.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Может кто нибудь откомпилировать и проверить корректность? Мало ли чего. Заранее благодарен за помощь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Цитата
Может кто нибудь откомпилировать и проверить корректность?

Программу и файлы приложи, проверю.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


f1.txt
Код
1 2 3 4 5


f2.txt
Код
6 7 8 9


f3.txt пуст.

После работы программы должно записаться в f3.txt
Код
1 2 3 4 5 6 7 8 9
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Ответ получился:
Цитата
123456789

Если числа должны идти через пробел в f3.txt. то измени
write (f3, a);
на
write (f3, a,' ');


Сообщение отредактировано: Ozzя -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12





Группа: Пользователи
Сообщений: 7
Пол: Мужской

Репутация: -  0  +


Благодарю всех за помощь. Тему можно закрыть.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 15.05.2024 9:25
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name