Fruitsekta.ru

Мир ПК
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Запись в текстовый файл паскаль

Запись в текстовый файл паскаль

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

Файловый тип данных или файл определяет упорядоченную совокупность произвольного числа однотипных компонент.

Понятие файла достаточно широко. Это может быть обычный файл на диске, коммуникационный порт ЭВМ, устройство печати, клавиатура или другие устройства.

При работе с файлами выполняются операции ввода — вывода. Операция ввода означает перепись данных с внешнего устройства (из входного файла) в основную память ЭВМ, операция вывода — это пересылка данных из основной памяти на внешнее устройство (в выходной файл).

Файлы на внешних устройствах часто называют физическими файлами. Их имена определяются операционной системой. В программах на языке Паскаль имена файлов задаются с помощью строк. Например, имя файла на диске может иметь вид:

Типы файлов Турбо Паскаль

Турбо Паскаль поддерживает три файловых типа:

  • текстовые файлы;
  • типизированные файлы;
  • нетипизированные файлы.

Доступ к файлу в программе происходит с помощью переменных файлового типа. Переменную файлового типа описывают одним из трех способов:

file of тип — типизированный файл (указан тип компоненты);
text — текстовый файл;
file — нетипизированный файл.

Примеры описания файловых переменных:

Стандартные процедуры и функции

Любые дисковые файлы становятся доступными программе после связывания их с файловой переменной, объявленной в программе. Все операции в программе производятся только с помощью связанной с ним файловой переменной.

связывает файловую переменную f с физическим файлом, полное имя которого задано в строке FileName. Установленная связь будет действовать до конца работы программы, или до тех пор, пока не будет сделано переназначение.

После связи файловой переменной с дисковым именем файла в программе нужно указать направление передачи данных (открыть файл). В зависимости от этого направления говорят о чтении из файла или записи в файл.

открывает для чтения файл, с которым связана файловая переменная f. После успешного выполнения процедуры Reset файл готов к чтению из него первого элемента. Процедура завершается с сообщением об ошибке, если указанный файл не найден.

Если f — типизированный файл, то процедурой reset он открывается для чтения и записи одновременно.

открывает для записи файл, с которым связана файловая переменная f. После успешного выполнения этой процедуры файл готов к записи в него первого элемента. Если указанный файл уже существовал, то все данные из него уничтожаются.

закрывает открытый до этого файл с файловой переменной f. Вызов процедуры Close необходим при завершении работы с файлом. Если по какой-то причине процедура Close не будет выполнена, файл все-же будет создан на внешнем устройстве, но содержимое последнего буфера в него не будет перенесено.

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

позволяет переименовать физический файл на диске, связанный с файловой переменной f. Переименование возможно после закрытия файла.

уничтожает физический файл на диске, который был связан с файловой переменной f. Файл к моменту вызова процедуры Erase должен быть закрыт.

возвращает целое число, соответствующее коду последней ошибки ввода — вывода. При нормальном завершении операции функция вернет значение 0. Значение функции IOResult необходимо присваивать какой-либо переменной, так как при каждом вызове функция обнуляет свое значение. Функция IOResult работает только при выключенном режиме проверок ошибок ввода — вывода или с ключом компиляции <$I->.

Работа с типизированными файлами

Типизированный файл — это последовательность компонент любого заданного типа (кроме типа «файл»). Доступ к компонентам файла осуществляется по их порядковым номерам. Компоненты нумеруются, начиная с 0. После открытия файла указатель (номер текущей компоненты) стоит в его начале на нулевом компоненте. После каждого чтения или записи указатель сдвигается к следующему компоненту.

Процедура записывает в файл f всю информацию из списка переменных.

Чтение из файла:

Процедура читает из файла f компоненты в указанные переменные. Тип файловых компонент и переменных должны совпадать. Если будет сделана попытка чтения несуществующих компонент, то произойдет ошибочное завершение программы. Необходимо либо точно рассчитывать количество компонент, либо перед каждым чтением данных делать проверку их существования (функция eof, см. выше)

Смещение указателя файла:

Процедура смещает указатель файла f на n-ную позицию. Нумерация в файле начинается с 0.

Определение количества компонент:

Функция возвращает количество компонент в файле f.

Определение позиции указателя:

Функция возвращает порядковый номер текущего компонента файла f.

Отсечение последних компонент файла:

Процедура отсекает конец файла, начиная с текущей позиции включительно.

Работа с текстовыми файлами

Текстовый файл — это совокупность строк, разделенных метками конца строки. Сам файл заканчивается меткой конца файла. Доступ к каждой строке возможен лишь последовательно, начиная с первой. Одновременная запись и чтение запрещены.

Чтение из текстового файла:

Процедуры читают информацию из файла f в переменные. Способ чтения зависит от типа переменных, стоящих в списке. В переменную char помещаются символы из файла. В числовую переменную: пропускаются символы-разделители, начальные пробелы и считывается значение числа до появления следующего разделителя. В переменную типа string помещается количество символов, равное длине строки, но только в том случае, если раньше не встретились символы конца строки или конца файла. Отличие ReadLn от Read в том, что в нем после прочтения данных пропускаются все оставшиеся символы в данной строке, включая метку конца строки. Если список переменных отсутствует, то процедура ReadLn(f) пропускает строку при чтении текстового файла.

Читать еще:  Способы и средства обеспечения электробезопасности

Запись в текстовый файл:

Процедуры записывают информацию в текстовый файл. Способ записи зависит от типа переменных в списке (как и при выводе на экран). Учитывается формат вывода. WriteLn от Write отличается тем, что после записи всех значений из переменных записывает еще и метку конца строки (формируется законченная строка файла).

Добавление информации к концу файла:

Процедура открывает текстовый файл для добавления информации к его концу. Используйте эту процедуру вместо Rewrite.

Работа с нетипизированными файлами

Нетипизированные файлы — это последовательность компонент произвольного типа.

Открытие нетипизированного файла:

Параметр BufSize задает число байтов, считываемых из файла или записываемых в него за одно обращение. Минимальное значение BufSize — 1 байт, максимальное — 64 К байт. Если BufSize не указан, то по умолчанию он принимается равным 128.

Чтение данных из нетипизированного файла:

Эта процедура осуществляет за одно обращение чтение в переменную X количества блоков, заданное параметром Count, при этом длина блока равна длине буфера. Значение Count не может быть меньше 1. За одно обращение нельзя прочесть больше, чем 64 К байтов.

Необязательный параметр QuantBlock возвращает число блоков, прочитанных текущей операцией BlockRead. В случае успешного завершения операции чтения QuantBlock = Count, в случае аварийной ситуации параметр QuantBlock будет содержать число удачно прочитанных блоков. Отсюда следует, что с помощью параметра QuantBlock можно контролировать правильность выполнения операции чтения.

Запись данных в нетипизированный файл:

Эта процедура осуществляет за одно обращение запись из переменной X количества блоков, заданное параметром Count, при этом длина блока равна длине буфера.

Необязательный параметр QuantBlock возвращает число блоков, записанных успешно текущей операцией BlockWrite.

Для нетипизированных файлов можно использовать процедуры Seek, FIlePos и FileSize, аналогично соответствующим процедурам типизированных файлов.

Волгоградский государственный педагогический университет
Кафедра алгебры, геометрии и информатики

Запись в текстовый файл

29.03.2013, 20:07

Дан текстовый файл. Вывести в другой текстовый файл количество слов одинаковой длины
1. Дан текстовый файл. Вывести в другой текстовый файл количество слов одинаковой длины.Пример.

Дан текстовый файл f и две строки s1 и s2. Получить текстовый файл g заменой ввода в файл f строки s1 на s2
Дан текстовый файл f и две строки s1 и s2. Получить текстовый файл g заменой ввода в файл f строки.

Чтение и запись в текстовый файл
Вася ездил отдыхать на море. С моря он привез два одинаковых сувенира. Вася решил подарить сувениры.

Запись результатов поиска в текстовый файл
Здравствуйте! У меня такая задача: нужно ввести данные о машине (марка, цвет, состояние машины.

29.03.2013, 21:132
Pascal
29.03.2013, 21:343

Вообщем не могу выдать нормальную структуру в файле file1, получается всё сдвинутым а для того что бы Mathcad прочитал файл с этого файла надо что б всё было ровно в несколько столбцов. То есть сейчас в file1 так:

i | xi | yi |
0 0.000 0.000 0 27.44933 -36463.13950 1 17893.92421 -23263669.00857 2 11398994.12827 -14818700261.42470 3 7261016365.99329 -9439324818154.14400 4 4625175658649.36896 -6012730610702397.44000 5 2946178439478830.08000 -3.830033407381392E18 6 1.87667843079908576E18 -2.43968287479018656E21 7 1.1954204420997432E21 -1.55404715741473088E24 8 7.6146771334792128E23 -9.89908398515320064E26 9 4.85045309625826368E26 -6.30559138939728512E29 10 3.08967732007459776E29 -4.0165820221016992E32 11 1.96808540413418432E32 -2.55851198468041312E35 12 1.2536455288711168E35 -1.62973979859823328E38 13 7.98556357746042624E37 -1.0381236543110352E41 14 5.08670307364199616E40 -6.61271647515171584E43 15 3.2401655698329024E43 -4.21221682014014208E46 16 2.06394451729097984E46 -2.68312887850895712E49 17 1.3147065724407344E49 -1.7091191850017856E52 18 8.37451470782527616E51 -1.088687320217152E55 19 5.3344600279423456E54 -6.93480063650660736E57 20 3.39798361845666176E57 -4.41738036027644928E60 21 2.1644726196877248E60 -2.8138154606252464E63 22 1.37874170314738224E63 -1.79236488613314016E66 23 8.78241039737429376E65 -1.14171377974062768E69 24 5.59428442701302144E68 -7.27257248194497024E71 25 3.56348847688523904E71 -4.63253675690580992E74 26 2.26989712278072608E74 -2.95086736603332736E77 27 1.44589577921459616E77 -1.87966521775350176E80 28 9.21017337468355456E79 -1.19732298764132784E83 29 5.86676403729510784E82 -7.62679610812670976E85 30 3.73705454491314368E85 -4.85817272994358144E88 31 2.38045651450724928E88 -3.09459462916788928E91 32 1.51632071444429568E91 -1.97121766787941216E94 33 9.65877131147172096E93 -1.25564074128984704E97 34 6.1525152534435264E96 -7.99827282840367488E99 35 3.91907445814528448E99 -5.0947987058675264E102 36 2.496400898785312E102 -3.24532238524426752E105 37 1.59017582187133024E105 -2.06722934353383136E108 38 1.0129219011636088E108 -1.31679896524229744E111 39 6.45218449271529728E110 -8.3878429855250752E113 40 4.1099599762046688E113 -5.34294997238825792E116 41 2.61799256129076608E116 -3.40339160576891072E119 42 1.66762817415632992E119 -2.1679174392570144E122 43 1.06225807069094544E122 -1.38093600967581696E125 44 6.76644965727395584E124 -8.79638785263393792E127 45 4.31014291420182976E127 -5.60318788935995072E130 46 2.74550656279154336E130 -3.56915986987420672E133 47 1.74885298153212512E133 -2.27350972843704224E136 48 1.11399724643310784E136 -1.44819696335990944E139 49 7.09602166771815552E138 -9.22483162685503488E141 50 4.520076119573168E141 -5.876101158670656E144

(вместо звёзд пробелы)

Pascal
29.03.2013, 21:34
29.03.2013, 21:34

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Запись строк в текстовый файл в цикле при некотором условии
Проблема состоит в том что программа должна записывать данные( к-тую строку) с файла 1 в 3 но.

Текстовый файл содержит список фамилий и должность сотрудников. Сформировать текстовый файл, содержащий фамил
Текстовый файл содержит список фамилий и должность сотрудников. Сформировать текстовый файл.

дан текстовый файл.перенести в текстовый файл все строки, содержащие заданное слово
помогите пожалуйста решить задачу. условие:дан текстовый файл.перенести в текстовый файл все.

ПУСТЬ это текстовый файл, который содержит НЕСКОЛЬКО ЦЕЛЫХ ЧИСЕЛ. ОТКРЫТЬ этот текстовый файл и КАЖДЫЙ С ЧИСЕЛ вознести В КУБ.
ПУСТЬ это текстовый файл, который содержит НЕСКОЛЬКО ЦЕЛЫХ ЧИСЕЛ. ОТКРЫТЬ этот текстовый файл и.

Файлы в Паскале. Общие сведения. Текстовые файлы

В язык Паскаль выделяются данные файлового типа, которые служат для работы с информацией, расположенной на внешних устройствах. Эта информация формируется во внешней памяти компьютера, образуя некоторую область, называемую файлом. Файлы имеют имя и представляют собой совокупность однотипных элементов. Обычно они применяются, в случаях большого объема данных, долгосрочного хранения, либо необходимости предоставления доступа нескольким приложениям к одной и той же информации.

Файлы принято разделять на физические и логические. Физические файлы имеют имя, и располагаются на съемном носителе, а логические это те переменные файлового типа, которые их представляют в программе.

В Паскале различают следующие три вида файлов (в скобках описаны ключевые слова для инициализации файловой переменной):

текстовые файлы (text);

типизированные (file of );

Немного позже мы разберемся с каждым из них. А сейчас рассмотрим основные операции для работы с файлами.

Создание файла

Процедура Assign связывает переменную файлового типа с физическим файлом. Например, установить соответствие между переменной Fil и текстовым файлом lot, расположенном на диске D, можно так:

Режим чтения

Процедура Reset открывает файл в режиме чтения, после чего оператором Read( , ) можно осуществить последовательное считывание элементов в программу.

Конец файла

Количество элементов в файле заранее не определяется, но часто необходимо знать о моменте достижения конца файла. Для этого в Паскале существует логическая функция EOF, которая проверяет достигнут ли конец, и если это так, то принимает значение True, иначе – False. Осуществляется проверка, как правило, в цикле, в качестве условного выражения выступает функция EOF.

Режим записи

Открыв файл в режиме записи, можно поэлементно записать в него информацию, воспользовавшись процедурой Write( , ).

Закрытие файла

Процедура Close закрывает открытый файл, а также освобождает файловую переменную, указанную в качестве параметра.

Удаление файла

При помощи процедуры Erase, можно удалить с внешнего носителя, заранее закрытый файл.

Изменение имени файла

Rеnаmе переименовывает физический файл, который перед этим следует закрыть процедурой Close.

Смещение указателя файла

Процедура Sееk устанавливает позицию указателя в файле на необходимый элемент (нумерация элементов начинается с нуля).

Определение положения указателя

Функция FilePos принимает значение порядкового номера элемента, над которым в момент вызова находиться указатель.

Определение количества элементов

Функция FileSize определяет количество всех имеющихся в файле элементов.

Текстовые файлы

Текстовые файлы могут состоять из элементов символьного (char) и строкового (string) типа данных. Ключевое слово Text указывает, что файловая переменная создается для работы именно с текстовым файлом:

Структура текстового файла представляет собой последовательность строк, которые в свою очередь состоят из символов. Любая строка оканчивается признаком «конца строки», а сам файл признаком «конца файла». Для определения конца файла в Паскаль есть функция EOF, а для конца строки – EOLn:

В случае достижения конца строки она (функция EOLn) принимает значение True, в противном случае False.

Рассмотрим работу с текстовым файлом, на примере программы.

Место создания файла «file.txt» не было указано, поэтому он создаться в папке по умолчанию для вашей среды программирования.

Для текстовых файлов в Паскале определены следующие процедуры и функции:

Процедура Append открывает существующий файл в режиме дозаписи. После чего в его конец можно добавить какую либо информацию.

Если до конца строки остались пробелы/знаки табуляции, то функция SeekEOLn возвращает значение True, иначе False.

Если до конца файла остались лишь строки с пробелами/знаками табуляции, то функция SeekEOF возвращает значение True, иначе False.

лабы по информатике, егэ

лабораторные работы и задачи по программированию и информатике, егэ по информатике

Pascal: Занятие № 12 Часть1. Работа с файлами в паскале (текстовые файлы)

Работа с файлами в паскале

Виды файлов в зависимости от их описания и режимом работы

  1. текстовые (тип text) файлы со строками неопределенной длины;
  2. файлы с типом записей (двоичные или типизированные (file of) );
  3. файлы без типа для передачи данных блоками записей нетипизированные (file).

Описание файловых переменных:

Для связи файла в коде программы и действительного файла на внешнем носителе используется процедура ASSIGN :

где myfile — имя переменной (объявленной ранее в области var ), ассоциированной с файлом
c:text.txt — путь к реальному файлу
Первый аргумент процедуры assign в паскаль — переменная, второй – путь к файлу на диске.

Текстовые файлы в паскале: процедуры работы

Текстовый файл в Паскале — это совокупность строк произвольной длины, которые разделены между собой метками конца строки, а весь файл заканчивается меткой конца файла.

Возможные расширения файлов:
*.txt, *.log,
*.htm, *.html

Метод работы с текстовым файлом в Паскале предусматривает лишь последовательный доступ к каждой строке файла. Это означает, что начинать всегда возможно только с первой строки, затем проходя по каждой строке, дойти постепенно до необходимой. Т.е. можно сказать, что чтение (или запись) из файла (в файл) ведутся байт за байтом от начала к концу.

Предусмотрены два режима работы: режим для записи в файл информации и для чтения ее из файла. Одновременная запись и чтение запрещены.

Открытие файла

Допустим, мы в программе описали переменную для работы с текстовым файлом:

Рассмотрим дальнейшую последовательность работы с ним, и рассмотрим процедуры, необходимые для работы с текстовым файлом в Паскале:

процедура открытия существующего файла для чтения при последовательном доступе:

процедура открытия создаваемого файла для записи в него информации; если файл с таким именем уже существует, то информация в нем стирается:

процедура добавления в конец:

  • При открытии курсор устанавливается в начало файла.

Чтение из файла

Read (f, список переменных); ReadLn (f, список переменных);

Отличие ReadLn от Read в том, что при использовании readln после прочтения данных пропускаются все оставшиеся символы в данной строке, включая метку конца строки.

  • чтение осуществляется с той позиции, где в данный момент стоит курсор;
  • после чтения курсор сдвигается к первому непрочитанному символу.

Для возврата в начало файла:

close ( f ); reset ( f );

Запись в текстовый файл

Write (f, список переменных); WriteLn (f, список переменных);

где f — файловая переменная, а второй параметр – выводимые из программы и вводимые в файл данные (в виде значений переменных или просто данные)

Процедуры работы с файлом и закрытие файла

Нахождение конца файла:

Логическая функция, возвращающая True, если достигнут конец файла.

Нахождение конца строки:

Логическая функция, возвращающая True, если достигнут конец строки.

Удалить файл в Паскале

Переименование файла в Паскале

rename(переменная_файла,’новое имя файла’);

Закрытие:

Рассмотрим пример работы с файлами в паскале:

var filetext: text; a,b,c:string; begin assign(filetext,’c:text.txt’); reset(filetext); readln(filetext,a); readln(filetext,b); readln(filetext,c); close(filetext); writeln(a); writeln(c); end.

* Из задачника М. Э. Абрамян (Text4)

var F: Text; N,K:integer; Name:String; C:Char; begin Assign(F,’c:text.txt’); Reset(F); N:=0; K:=0; While not eof(F) do begin inc(N); While not eoln(f) do begin inc(K); Read(F,C); end; Readln(F); end; Close(F); Writeln(N,’ ‘,K); end.

var p, x: integer; f: text; begin assign(f, ‘input.txt’); reset(f); p := 1; while not eof(f) do begin readln(f, x); p := p * x; end; close(f); assign(f, ‘output.txt’); rewrite(f); writeln(f, ‘Произведение чисел ‘, p); close(f); end.

var filetext: text; a:string; i:integer; begin assign(filetext,’c:text.txt’); rewrite(filetext); for i:=1 to 10 do . reset(filetext); for i:=1 to 10 do begin . . end; close(filetext); end.

* Из задачника М. Э. Абрамян (Text1)

* Из задачника М. Э. Абрамян (Text5)

* Из задачника М. Э. Абрамян (Text7)

var F_in,F_out: Text; Name,S: String; begin Write(‘S: ‘); Readln(S); Assign(F_in,’c:text.txt’); Reset(F_in); Assign(F_out,’c:text1.txt’); Rewrite(F_out); Writeln(F_out,S); While not eof(F_in) do begin Readln(F_in,S); Writeln(F_out,S); end; Close(F_in); Close(F_out); Erase(F_in); Rename(F_out,’c:text.txt’); end.

* Из задачника М. Э. Абрамян (Text9)

* Из задачника М. Э. Абрамян (Text15)

var F_in,F_out: Text; Name,line: string; K,i:integer; begin Write(‘K: ‘); Readln(K); Assign(F_in,’c:text.txt’); Assign(F_out,’c:text1.txt’); Reset(F_in); Rewrite(F_out); i:=0; While not eof(F_in) do begin Readln(F_in,line); inc(i); if i<>K then Writeln(F_out,line); end; Close(F_in); Close(F_out); Erase(F_in); Rename(F_out,’c:text.txt’); end.

Работа с данными из файла как с массивом

  • для сортировки необходим массив, для того чтобы одновременно работать со всеми числами;
  • неизвестно общее количество чисел.
  • объявляем массив для 100 элементов;
  • открываем файл на чтение, просчитываем количество чисел, заполняя массив, сохраняем количество в N;
  • сортируем N элементов массива;
  • записываем результат в файл.

* Из задачника М. Э. Абрамян (Text16)

А теперь вернемся к олимпиадному заданию по Паскалю, частично решенному на одном из предыдущих заданиях:

p.inp.out
3
hello earth
khoor hduwk

* желательно создать файлы и записать данные в исходный файл «вручную»
* программа решена для k=3, выполните программу для любых k (не превышающих 20 по модулю)

var a:char; i,n,k:byte; s,s1:string; f_in,f_out:text; begin Assign(F_in,’z:p.in’); Assign(F_out,’z:p.out’); Reset(F_in); Rewrite(F_out); s1:=»; readln(f_in,k); readln(f_in,s); for i:=1 to length(s) do begin n:=ord(s[i]); if n<>32 then <32 - пробел>n:=n+3; if . then . ; if . then . ; if . then . ; a:=chr(. ); s1:=. ; end; writeln(s1); writeln(f_out,s1); close(f_in); close(f_out) end.

var a:char; i,n,k:byte; s,s1:string; f_in,f_out:text; begin Assign(F_in,’z:p.in’); Assign(F_out,’z:p.out’); Reset(F_in); Rewrite(F_out); s1:=»; readln(f_in,k); readln(f_in,s); for i:=1 to length(s) do begin n:=ord(. ); if n<>32 then <32 - пробел>n:=n+3; if n=123 then n:=97; <â ASCII 123 - x, 97 - a>if n=124 then n:=98; <â ASCII 124 - y, 98 - b>if n=125 then n:=99; <â ASCII 125 - z, 99 - c>a:=chr(n); s1:=s1+a; end; writeln(s1); writeln(f_out,s1); close(f_in); close(f_out) end.

Найти сумму всех чисел от 1 до n, имеющих ровно 5 делителей.
Единица и само число входят в число его делителей.
Входные данные
В единственной строке входного файла z3.in записано одно натуральное число n(1

Posted in

Зачем нужен c:char и name:string во втором примере?

Ссылка на основную публикацию
Adblock
detector