Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 259
от 26.11.2006, 16:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 222, Экспертов: 52
В номере:Вопросов: 1, Ответов: 1


Вопрос № 63468: Здравствуйте, помогите считать числа с файла 1.txt в масив, при этом неизвесно сколько их там. Числа записаны в строчку через пропуск. Первое число оставить без изменений, а к всем остальным, если это не 1 добабивить 1. Если же число 1 т...

Вопрос № 63.468
Здравствуйте, помогите считать числа с файла 1.txt в масив, при этом
неизвесно сколько их там. Числа записаны в строчку через пропуск.
Первое число оставить без изменений, а к всем остальным, если это не 1 добабивить 1.
Если же число 1 то с ним делать ничего не надо. вывести в другой файл 2.txt суму полученых
цыфр. Пример№1
1.txt:
2 1 1 1 1

2.txt:
6

пример №2
1.txt:
5 2 3 6

2.txt
19
Отправлен: 20.11.2006, 21:45
Вопрос задал: Polonne (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Алтунин Василий Владимирович
Здравствуйте, Polonne!
Для работы с текстовыми файлами в Паскале существуют специальные функции:
Прежде всего, вам надо нужно объявить файловую переменную типа Text

var f:Text;

Далее мы должны привязать эту переменную к файлу

Assign(f, ‘c: extfile.txt’);

Теперь мы должны решить, что будем делать с файлом.
Если считывать из него данные, то используем Reset(f);
Если записывать в файл данные, то используем Rewrite(f);
Если до записывать в файл данные, то используем Append(f);

Кстати, после того как мы выполним все операции с файлом важно закрыть канал ввода-вывода с файлом Close(f);

Перед тем как считывать данные из файла мы должны объявить буфер для считываемых данных. Это может быть переменная типа String

var buf:String;
Например, нужно прочитать файл, для этого используем функцию ReadLn(f, buf)
После этого в buf мы получим первую строку из считываемого файла.
Оператор ReadLn позволяет считывать строки до тех пор, пока не будет достигнут конец файла.

Достигнут или нет, конец файла всегда можно проверить с помощью функции SeekEOF(f):Boolean;

Для записи строки в файл воспользуемся оператором WriteLn(f,buf) она запишет содержимое буфера в общем случае в конец файла.

Дальше вам, необходимо используя функции для работы со строками разбить на подстроки, это просто сделать, так как у вас разделителем является пробел. Далее строки нужно будет преобразовать в числа с помощью Val, проверить число на предмет равенства единице и записать результат в файл.

Для записи можно использовать функцию Write(f,buf)

Приложение:

Ответ отправил: Алтунин Василий Владимирович (статус: 1-ый класс)
Ответ отправлен: 21.11.2006, 06:10


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.37 от 04.10.2006
Яндекс Rambler's Top100

В избранное