![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 363; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.183.104 (0.011 с.) |