Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Организация работы с текстовыми файламиСодержание книги Поиск на нашем сайте
Текстовый файл можно рассматривать как последовательный файл, но этот тип файлов из-за своих особенностей выделен в отдельный тип. Этот файл состоит из символов, среди которых могут встречаться специальные символы, называемые конец строки. Признак конец строки по разному хранится на разных внешних устройствах. Так на экране дисплея – это перевод курсора в начало следующей строки экрана, на клавиатуре – нажатие клавиши ENTER, на принтере – перевод печатающей головки в крайнее левое положение и прогон бумаги на одну строку вверх, на магнитном диске – это один или два машинных кода (в зависимости от операционной системы). Таким образом, компонентами любого текстового файла могут быть: символы, признаки конец строки и признак конец файла. В Турбо Паскале для текстовых файлов определен стандартный тип TEXT. Этот тип автоматически определяется следующим образом type text=file of char; Для удобства текстовый файл можно рассматривать как последовательность позиций, в каждой из которых могут находиться любой из символов, признак конец строки и в последней позиции - признак конец файла. Для дальнейшего объяснения введем понятие текущая позиция текстового файла - позиция, с которой связан буфер файла. Буфер текстового файла, в отличие от других видов файлов, определяется при генерации операционной системы и имеет размер 128 или 255 байтов (Турбо Паскаль позволяет устанавливать размер буфера текстового файла с помощью процедуры SetTextBuf). При работе с текстовым файлом можно пользоваться следующими процедурами и функциями: procedure reset(var <имя логического файла (в дальнейшем илф)>:text); procedure rewrite(var <илф>:text); procedure append(var <илф>:text); procedure write(var <илф>:text;<записываемое в файл значение>:<имя типа для записи>); procedure writeln(var <илф>:text); procedure read(var <илф>:text;var <имя переменной>:<имя типа для чтения>); procedure readln(var <илф>:text); procedure flush(var <илф>:text); function eof(var <илф>:text):boolean; function eoln(var <илф>:text):boolean; function seekeoln(var <илф>:text):boolean; function seekeof(var <илф>:text):boolean; Примечания: тип для операции записи – это любой целый, любой вещественный, логический boolean, литерный char, любой строковый тип; Процедура записи в текстовый файл WRITE Запись в текстовый файл значения в символьном виде осуществляется с помощью обращения к стандартной процедуре write(<имя файловой переменной типа text>,<объект вывода>) ,где объект вывода определяется <выражение>[:<минимальное количество позиций в символьном файле под значение выражения> Из определения объекта вывода видно, что второй параметр процедуры write через двоеточие может сопровождаться дополнительной информацией – целым числом без знака типа byte. Это число определяет количество позиций в текстовом файле, отводимых под значение выражения, которое записывается в файл. Результат выражения в объекте вывода может быть: - любого из числовых типов; - символьного типа char; - любого из строковых типов string; - логического типа boolean. Правила выполнения обращения к процедуре write Процедура write может быть выполнена только в том случае, если до выполнения процедуры буфер файла установлен на конец файла (для текстовых файлов это выполняется автоматически). При выполнении процедуры write выполняются следующие действия: 1) - вычисляется значение выражения; 2) - осуществляется преобразования полученного значения в последовательность символов (не путать со строкой символов). Это не выполняется только для выражения типа CHAR; 3) - определяется количество позиций в символьном представлении значения; 4) - если при обращении к процедуре write второй параметр – выводимое выражение сопровождается через двоеточие дополнительной информацией -целым числом без знака, то возможно преобразование полученной последовательности символов. Это преобразование зависит от типа выражения, являющимся вторым параметром (правила преобразования указаны ниже); 5) - полученная последовательность символов заносится в буфер файла; 6) - как только буфер заполняется полностью, информация из буфера записывается в файл, начиная с позиции признака конец файла, с которым обязательно связан буфер до выполнения процедуры write. После последнего записанного в файл символа записывается признак конец файла. Буфер освобождается и связывается с позицией, в которой расположен этот признак. Так может повторяться до тех пор, пока вся полученная последовательность символов не занесется в буфер. Если буфер не заполнился полностью, то символы пока остаются в буфере. Правила преобразования последовательности символов при записи в файл Эти правила используются только в том случае, когда второй параметр при обращении к процедуре write сопровождается дополнительной информацией, и зависят от типа второго параметра. Вариант 1: второй параметр любого целого типа Если количество символов, полученных при преобразовании целочисленного значения в последовательность символов, меньше, чем число, указанн6ое в дополнительной информации, то слева к символам добавляются пробелы, так, чтобы количество полученных символов равнялось числу в дополнительной информации. Вариант 2: второй параметр любого вещественного типа Вещественное значение представляется в показательной форме с нормализованной мантиссой: <знак числа><значащая цифра>. <цифры дробной части мантиссы> Если математический сопроцессор не подключен, то дробная часть мантиссы содержит 10 цифр, целочисленный порядок – 2 цифры; при подключенном математическом сопроцессоре – соответственно 14 и 4 цифры. В этом варианте результат преобразования последовательности символов зависит от настройки среды программирования (подключен или нет математический сопроцессор) и количества параметров в дополнительной информации (нет дополнительной информации, одно число в дополнительной информации или два числа): a) если дополнительная информация отсутствует, то последовательность символов соответствует показательному (научному) формату числа, указанному в начале варианта (вместо знака числа плюс записывается пробел). b) Если дополнительная информация состоит из одного числа, то это число может оказать влияние на количество позиций, отводимых в текстовом файле под символьное представление вещественного числа. Если сопроцессор отсутствует и число в дополнительной информации меньше или равно 8, то последовательность символов преобразуется к следующему виду: Zx. xEzxx , где Z – знак числа (символ пробел, если знак плюс, символ -, если знак минус); x – символ любой арабской цифры (первая цифра мантиссы всегда не 0); z – знак порядка (символ + или символ -). Если сопроцессор подключен и число в дополнительной информации меньше или равно 10, то последовательность символов преобразуется к следующему виду: Zx.xEzxxxx Если сопроцессор отсутствует и число в дополнительной информации,больше 17, то слева к символам числа добавляются пробелы, так чтобы количество полученных символов равнялось дополнительной информации. В случае подключенного сопроцессора такие действия выполняются, когда число в дополнительной информации больше 23. При всех других значениях числа в дополнительной информации отбрасываются лишние цифры в дробной части мантиссы (для числа 10 без сопроцессора последовательность символов не изменяется, это же выполняется при наличии сопроцессора, когда число в дополнительной информации 23). c) если дополнительная информация состоит из двух чисел (второе число всегда меньше первого), последовательность символов преобразуется к представлению числа с фиксированной точкой, общепринятому в арифметике. Здесь второе число в дополнительной информации определяет количество позиций в дробной части записываемого в файл числа. А первое число задает общее количество позиций в записываемом числе, включая знак числа и десятичную точку. Если определяемое первым числом количество позиций не позволяет представить выводимое число, то это первое число не оказывает влияния на выделяемое в файле количество позиций под символьное представление записываемого числа. Если первое число в дополнительной информации позволяет представить в символьном виде записываемое число, то слева к символьному представлению могут добавляться пробелы, так чтобы количество позиций в последовательности символов равнялась первому числу в дополнительной информации. Вариант 3: второй параметр типа CHAR В этом случае к символу слева могут быть приписаны пробелы, так чтобы длина образованной последовательности символов равнялась числу в дополнительной информации. Вариант 4: второй параметр любого строкового типа Здесь число в дополнительной информации определяет минимальное количество позиций под символьное значение. Последовательность записываемых символов преобразуется по следующему правилу – если количество символов меньше, чем заданное число в дополнительной информации, то слева приписываются пробелы, так чтобы длина образованной последовательности символов равнялась числу в дополнительной информации. Вариант 5: второй параметр типа boolean В результате преобразования логического значения получается либо последовательность из четырех символов TRUE, либо последовательность из 5 символов FALSE. Дальнейшее преобразование этих последовательностей символов производится так же, как и в предыдущем варианте 4.
|
||||
Последнее изменение этой страницы: 2016-06-26; просмотров: 353; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.143.45 (0.009 с.) |