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

> Правила раздела!

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

> файл и его конец-точка.
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Женский
Реальное имя: света

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


здра все.
подскажите пжалста, как записать данные в текстовый файл, если неизвестно кол-во его элементов, а дан признак конца ввода? в моём случае-точка.
и ещё вопрос. как текстовый файл разделять на строки?

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


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

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

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


svetkom, тебя не очень просто понять. Иногда ты говоришь о записи файла (сначала), иногда о вводе его с клавиатуры.. Похоже, тебе действительно не помешало бы побольше спать smile.gif
Попробую сказать, как я понял.
Предположим, что твоя программа должна читать текстовые данные (то есть алфавитно-цифровые и знаки препинания, разделенные на строки). Ввод при этом можно осуществлять с разных устройств (например, с диска), но в данном случае возьмем клавиатуру.

Введенную информацию надо где-то сохранять (как правило). Сохранять можн, например, в массиве строк (заведомо большего размера, чем возможное количество строк). Можно в списке (это такая структура с последовательным доступом к элементам), можно еще сотней разных способов. Но самое простое - сохранить их в файл на диске (мне кажется, ты этого и хотела).

Если ты заранее не знаешь количество вводимых строк, то ввод нужно осуществлять в цикле типа while или repeat. Вот один из возможных вариантов:
var
f:text; {заводим переменную типа текстовый файл для сохранения результатов}
...
{затем, уже в теле программы}
Assign(f,'svetkom.txt');
ReWrite(f);
repeat
ReadLn(s);
WriteLn(f,s)
until s='.' {условие окончания ввода}
Close(f)

Обрати внимание, что признаком конца ввода тут является отдельностоящая точка, то есть строка ничего больше не содержит, кроме этой точки. (Кстати, забавно, именно такой признак конца ввода данных в протоколе SMTP, который пересылает твои e-mail'ы smile.gif)

Кстати, можно использовать и EoF. Признком конца текстового файла является Ctrl-Z. То есть, можешь использовать вот такую структуру:
while not EoF do ReadLn;
- этот ввод завершится по нажатии Ctrl-Z, а за ним Enter.
Прояснилось немного?.. smile.gif


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

Сообщений в этой теме


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

 





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