Главная » Просмотр файлов » Основы программирования

Основы программирования (947332), страница 34

Файл №947332 Основы программирования (Иванова Г.С. Основы программирования) 34 страницаОсновы программирования (947332) страница 342013-09-15СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 34)

Процедура MkDir(dir:string) - создает новый каталог. Строка dir оп­ределяет путь и новое имя.9. Процедура RmDir (dinstring) - удаляет каталог с указанным именем.Каталог должен быть пустым.63. Текстовые файлыТекстовый файл - это файл, компонентами которого являются символь­ные строки переменной длины, заканчивающиеся специальным маркеромконца строки (рис. 6.4).Указатель файлаСтрока 1PI Строка 2 | |Маркер конца файлаСтрока 3[Компонент 4Маркер конца строкиРис. 6.4. Структура текстового файла1966. Файловая система. ФайлыПримечание, Маркер конца строки - это последовательность из двух специальных сим­волов по таблице ASCII «#13, #10». Символ с кодом 13 интерпретируется в компьютере каккоманда установки курсора в начало строки, а символ с кодом 10 - как команда перехода наследующую строку.

Как уже упоминалось ранее, такая комбинация кодов вводится при нажа­тии клавиши ENTER.Текстовый файл можно открыть для записи, чтения и добавления запи­сей в конец (см. параграф 6.2). Файл, открытый для записи, не может исполь­зоваться для чтения и наоборот.

При открытии файла для добавления систе­ма проверяет, не был ли файл открыт для чтения или записи, и если такое от­крытие имело место, то производится сначала закрытие файла, а затем ужеоткрытие для добавления.Текстовые файлы используют для хранения и обработки текстовой ин­формации: символов, строк, символьных массивов. Логические и числовыеданные при записи в текстовые файлы должны преобразовываться в сим­вольные строки.Следует иметь в виду, что при необходимости текстовый файл можетбыть создан или прочитан любым текстовым редактором, в том числе и тек­стовым редактором, входящим в состав среды Borland Pascal.Для работы с текстовыми файлами используют специальные процедурыи функции.1.

Функция EOLn( [Var J]): boolean - возвращает TRUE, если во вход­ном текстовом файле достигнут маркер конца строки; при отсутствии файло­вой переменной проверяется стандартный файл INPUT, который обычно свя­зан с клавиатурой.Примечание, Функция EOLn, как и EOF, по-разному работает с дисковыми файлами илогическими устройствами. Для логического устройства невозможно предвидеть, каким будетрезультат чтения очередного символа. Поэтому при работе с логическим устройством функ­ция EOLN возвращает TRUE, если последним считанным символом был символ #13. При ра­боте с диском функция EOLN возвращает TRUE, если следующим считанным символом бу­дет символ #13.2.

Процедура Read( [Var f:text;] vl, v2,... vn) - обеспечивает ввод сим­волов, строк и чисел. Список ввода представляет собой последовательностьиз одной или более переменных типа CHAR, STRFNG, а также любого цело­го и вещественного типа. При отсутствии файловой переменной ввод осуще­ствляется из стандартного файла INPUT.При вводе значений переменных типа CHAR выполняется чтение одно­го символа из файла, считанное значение присваивается очередной перемен­ной из списка ввода.

Как уже упоминалось в параграфе 2.6, символы вводят­ся подряд, а не через пробел, как числа. Если перед выполнением чтения ука­затель файла достиг конца очередной строки, то результатом чтения будетсимвол #13, а если был достигнут конец файла, то - символ #26.197Часть L Основы алгоритмизации и процедурное программированиеПри вводе переменных типа STRING количество считанных процедуройи помещенных в строку символов равно максимальной длине строки, еслираньше не встретились маркеры конца строки или конца файла, которые встроку не включаются. Символы, выходящие за размер максимальной длиныстроки, отбрасываются. Новое обращение к процедуре Read вернет пустуюстроку (см.

также параграф 2.6). Следовательно, процедура Read не в состо­янии читать последовательность строк, так как первая строка будет прочита­на правильно, а все последующие окажутся пустыми.При вводе числовых данных процедура Read пропускает все пробелы,знаки табуляции и маркеры до первого значащего символа и читает строку допробела, знака табуляции или маркера.

Полученная подстрока преобразуетсяиз символьного во внутреннее представление в соответствии с типом значе­ния и присваивается следующей переменной из списка. Если нарушен фор­мат, то фиксируется ошибка ввода-вывода. Если достигнут маркер концафайла, то переменной присваивается значение О, причем никаких сообщенийв этом случае не выдается.Ввод логических констант процедурами Read и ReadLn не предусмот­рен.Чтение с клавиатуры осуществляется через буфер, который передаетсяпроцедуре при нажатии клавиши ENTER и имеет размер 127 байт, поэтомуввести с клавиатуры строку большего размера нельзя.3. Процедура ReadLn( [Var f;] vl,v2, ,..,vn ) - также обеспечивает вводсимволов, строк и чисел. Процедура использует те же правила ввода, что ипроцедура Read, но после чтения последней переменной оставшаяся частьстроки до маркера конца строки пропускается, так что следующее обраще­ние к ReadLn или Read начнется с первого символа новой строки.

Процеду­ра может быть вызвана без указания списка ввода, что приведет к пропускувсех символов текущей строки до маркера конца строки.Процедуры Read и ReadLn могут использоваться без указания файловойпеременной. Тогда операция чтения осуществляется из стандартного файлаINPUT. Использование процедуры ReadLn без параметров после процедурыRead приведет к очистке буфера ввода. Применение этой же процедуры безпредшествующей ей процедуры Read переводит программу в состояние вво­да, т.е.

выполнение программы приостанавливается до нажатия клавишиENTER, что может использоваться для организации паузы на время просмо­тра содержимого экрана.4. Процедура Write( [Var /•] v7,v2, ...,vn ) - обеспечивает вывод данныхв текстовый файл или передачу их на логическое устройство. Список выво­да - последовательность из одного или более выражений типа CHAR,STRING, BOOLEAN, а также целого или вещественного типов. При выводечисловых значений последние преобразуются в символьное представление.При отсутствии файловой переменной вывод осуществляется в стандартныйфайл OUTPUT, который обычно назначен на экран.1986.

Файловая система. ФайлыЛюбой параметр из списка вывода может иметь формат:<параметр> [: <целое1> [: < целое2> ]],где <целое1> и <целое2> интерпретируются в соответствии с правилами,описанными в параграфе 2.6.5. Процедура WriteLn( [Var /;] vl,v2, ...,vn ) ~ обеспечивает вывод ин­формации в текстовый файл или ее передачу на логическое устройство выво­да. При отсутствии файловой переменной вывод осуществляется в стандарт­ный файл OUTPUT, который обычно связан с дисплеем.Процедура полностью идентична процедуре Write, за исключением то­го, что выводимая строка символов завершается символами #13 и #10. Привызове WriteLn допускается опускать список вывода, в этом случае в файлпередается маркер конца строки (при выводе на экран это приведет к перево­ду курсора в начало следующей строки).6.

Функция SeekEOLn( [Var /] ):boolean - пропускает все пробелы изнаки табуляции до маркера конца строки или до первого значащего симво­ла и возвращает TRUE при обнаружении маркера. Если файловая перемен­ная не указана, то функция проверяет стандартный файл INPUT.7. Функция SeekEOF( [Var /]):boolean - пропускает все пробелы, зна­ки табуляции и маркеры конца строки до маркера конца файла или до перво­го значащего символа и возвращает TRUE при обнаружении маркера. Еслифайловая переменная отсутствует, то функция проверяет стандартный файлINPUTРассмотрим несколько примеров.Пример 6.1.

Разработать программу, которая формирует текстовыйфайл из 26 строк, содержащих случайное количество соответствующих про­писных букв латинского алфавита, например:АААААВВВВВСDDDDDDDDDDDDDDDDDDDDDЕЕЕЕЕЕЕЕЕЕЕЕЕЕ и т.д.Program formjextjile;Varfitext;{файловая переменная для текстового файла}а:char; n,i:integer; fname,st:string[30];BeginWriteLnCВведите имя файла'); ReadLn(fiiame);Assign(f/name);{инициализируем файловую переменную}ReWrite(f);{открываем файл для записи}Randomize;{инициализируем датчик случайных чисел}199Часть 1. Основы алгоритмизации и процедурное программированиеfor а:='А' to 'Z' dobegin{формируем строки}n:=Random(30)+l:for i:=l to n do st:=st+a:WriteLn(fySt); {записываем строку в текстовый файл}WriteLn{st);{для контроля - выводим ее на экран}end;Close(f); {закрываем файл}End,Поскольку компоненты текстового файла могут иметь различную длину,возможна только последовательная их обработка (запись, чтение и поиск).Любой вид модификации файла, кроме добавления записей в конец, выпол­няется с перезаписью информации в другой файл.

Так, для того чтобы ис­ключить некоторую запись, необходимо переписать все строки, кроме подле­жащей исключению, в другой текстовый файл. При этом обычно старыйфайл удаляют, новый - переименовывают, присваивая ему имя исходногофайла, и файловую переменную связывают с измененным файлом.Пример 6.2. Разработать программу, которая удаляет из текстового фай­ла «пустые» строки: строки, не содержащие символов, и строки, содержащиетолько пробелы и знаки табуляции.Поскольку в результате обработки часть строк текстового файла будетудалена, нам потребуется создать специальный файл, куда будут помещенынепустые строки файла.Program ex;VarflJ2:text;{файловые переменные текстовых файлов}st.name: string;BeginWriteLnCВведите имя файла:'); ReadLn(name);Assign(fl,name); {инициализируем файловую переменную}{$!'}{проверяем существование файла}Reset(fl);{$ЩifIOResult=0 then {если файл с заданным именем существует}beginAssign(f2/temp.dat');{инициализируем новый файл}Rewrite(f2);{открываем новый файл для записи}while not EOF(fl) do {пока не достигнут конец файла}beginif SeekEOLn(fl) then ReadLn(flySt) {если строка пустая,то пропускаем ее}2006.

Файловая система. ФайлыelsebeginReadLn(fl,st);{читаем строку}WriteLn(f2,st); {записываем ее в новый файл}end;end;Close(fl);{закрываем старый файл}Close(f2); {закрываем новый файл}Erase(fl);{удаляем старый файл}ReName(f2,name); {переименовываем новый файл}endelse WnteLn('0au/i с таким именем не найден.*);EndЗадания для самопроверкиЗадание 1. Дан текстовый файл, состоящий из символьных строк, представля­ющих собой совокупность слов, разделенных пробелами. Разработайте программу,которая переформирует файл, заменяя в каждой строке сочетание «это» на сочетание«то», и удаляя слова, начинающиеся с символа #.

Вывести на экран скорректирован­ный файл.Задание 2. Разработайте программу, которая осуществляет поиск в текстовомфайле заданных слов. Слова последовательно вводятся с клавиатуры. Для каждогослова должно определяться количество вхождений и номера строк текста. Если ука­занные слова в файле отсутствуют, то программа должна выводить соответствующеесообщение.6.4. Типизированные файлыТипизированный файл - это файл, все компоненты которого одного типа,заданного при объявлении файловой переменной (рис.

Характеристики

Тип файла
PDF-файл
Размер
13,06 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее