1. Заголовок или название темы должно быть информативным ! 2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 4.НЕ используйте форум для личного общения! 5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
здра все. подскажите пжалста, как записать данные в текстовый файл, если неизвестно кол-во его элементов, а дан признак конца ввода? в моём случае-точка. и ещё вопрос. как текстовый файл разделять на строки?
svetkom, тебя не очень просто понять. Иногда ты говоришь о записи файла (сначала), иногда о вводе его с клавиатуры.. Похоже, тебе действительно не помешало бы побольше спать Попробую сказать, как я понял. Предположим, что твоя программа должна читать текстовые данные (то есть алфавитно-цифровые и знаки препинания, разделенные на строки). Ввод при этом можно осуществлять с разных устройств (например, с диска), но в данном случае возьмем клавиатуру.
Введенную информацию надо где-то сохранять (как правило). Сохранять можн, например, в массиве строк (заведомо большего размера, чем возможное количество строк). Можно в списке (это такая структура с последовательным доступом к элементам), можно еще сотней разных способов. Но самое простое - сохранить их в файл на диске (мне кажется, ты этого и хотела).
Если ты заранее не знаешь количество вводимых строк, то ввод нужно осуществлять в цикле типа while или repeat. Вот один из возможных вариантов:
var f:text; {заводим переменную типа текстовый файл для сохранения результатов} ... {затем, уже в теле программы} Assign(f,'svetkom.txt'); ReWrite(f); repeat ReadLn(s); WriteLn(f,s) until s='.' {условие окончания ввода} Close(f)
Обрати внимание, что признаком конца ввода тут является отдельностоящая точка, то есть строка ничего больше не содержит, кроме этой точки. (Кстати, забавно, именно такой признак конца ввода данных в протоколе SMTP, который пересылает твои e-mail'ы )
Кстати, можно использовать и EoF. Признком конца текстового файла является Ctrl-Z. То есть, можешь использовать вот такую структуру: while not EoF do ReadLn; - этот ввод завершится по нажатии Ctrl-Z, а за ним Enter. Прояснилось немного?..
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой