|
Вопрос # 4 697/ вопрос открыт / |
|
Приветствую, уважаемые эксперты! проблема возникла, задали сделать прогу по теме текстовые файлы. до этого работал только с целыми числами в файлах. теперь надо с символами. буду очень благодарен за любую помощь!
Ответ #1. Отвечает эксперт: Егор
Здравствуйте, Дементьев Евгений Владимирович!
Самый простой способ - открыть два файла: один на чтение, другой - на запись. А затем посимвольно читаем из первого файла и пишем во второй.
var
fin, fout : file of char;
c, s : char;
begin
s := ' ';
assign(fin, 'input.txt');
assign(fout, 'output.txt');
reset(fin);
rewrite(fout);
while not eof(fin) do
begin
read(fin, c);
write(fout, c);
if c=',' then write(fout, s);
end;
close(fin);
close(fout);
end.
 |
Ответ отправил: Егор (статус: 10-ый класс)
Время отправки: 2 ноября 2010, 19:23
Оценка за ответ: 5
Комментарий к оценке: спасибо большое) теперь разобрался)
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 2 ноября 2010, 19:42; участников в обсуждении: 2.
|
Егор (статус: 10-ый класс), 2 ноября 2010, 19:28 [#1]:
странно, но запись вида
write(fout, ' ');
не пошла
Цитата:
Error 20: Variable identifier expected.
пришлось делать через дополнительную переменную
var
s : char;
...
s := ' ';
...
...write(fout, s);
Или я уже окончательно забыл паскаль?
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
|
Мережников Андрей (статус: Абитуриент), 2 ноября 2010, 19:40 [#2]:
гораздо быстрее получится, если объявить fin,fout как текстовые файлы. Читать и писать не посимвольно, а построчно. После чтения строки все символы ',' в ней заменить на сочетание ', ' и полученную строку записать в файл.
|
|
Егор (статус: 10-ый класс), 2 ноября 2010, 19:42 [#3]:
согласен, быстрее. но чуть сложнее.
Опасайтесь багов в приведенном выше коде; я только доказал корректность, но не запускал его.
— Donald E. Knuth.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|