Использование program, begin…end, write, readln, Uses Crt, Clrscr.

В этом уроке мы напишем самую простую программу, состоящую всего из пяти строк. Эта программа будет выводить сообщение на экран. Для написания программы нам необходимо знать как работают операторы Write, Readln, а также понять для чего нужны ...

Тип данных Char. Функции Ord, Chr.

Мы с Вами уже рассмотрели типы данных, которые позволяют хранить и обрабатывать целые числа (integer) и дробные числа (real). Теперь рассмотрим тип данных, позволяющий хранить и обрабатывать различные символы. Символы – это все буквы и значки, ...

Использование Var, Integer, Readln.

Процедура Readln используется не только для задержки экрана. Ее основная задача - ввод данных с клавиатуры. В этой статье мы научимся вводить числа с клавиатуры, и потом выводить их на экран. Для этого нам будет необходимо познакомиться с разделом ...

Циклы и массивы

Сортировка двумерного массива.

Пример 36. Задан двумерный массив X из 6 строк и 4 столбцов. Упорядочить массив X по возрастанию элементов дробной части столбца с номером N. Отсортированный массив X вывести на экран монитора.

Манипулирование строками STRING.

В языке Паскаль при работе с текстами чаще всего используются короткие строки типа STRING. Стандартные процедуры READLN(St), WRITE(St) и WRITELN(St) поддерживают ввод и вывод строк переменной длины ...

В одной программе можно открыть несколько текстовых файлов, и работать с ними одновременно. Например, напишем программу, которая открывает сразу 2 текстовых файла. Один для чтения, другой для записи.

С одного файла она считывает какое-нибудь слово и записывает это слово с увеличением на одну букву в другой файл. Например, если в первом файле записано слово «ABCDIF», то в другом файле будет записано «BCDIFG». Тот файл, который мы будем открывать для чтения, необходимо предварительно создать. Поэтому в директории «C:\FPC\2.2.2\bin\i386-win32\Programs» создаем файл «oldname.dat» и записываем в него какое-нибудь слово, например, «pascal».

Открытие 2-х текстовых файлов в одной программе.


 program file9;
uses crt;
var oldf,
newf:text;      
newn:string;      
line:string;   
    c:integer;
begin clrscr;
writeln('Введите имя для второго файла');
readln(newn);
assign(oldf, 'programs\oldname.dat');
assign(newf,newn);
reset(oldf); rewrite(newf);
while not eof(oldf) do begin readln(oldf,line);
for c:=1 to length(line) do line[c]:=succ(line[c]);
writeln(newf,line);
writeln(line);
end;
close(newf);
readln
end. 


Строка №3. Создаем файловые переменные для 2-х файлов. Переменная «oldf» будет связана с файлом, который уже существует («oldname.dat»). Переменная «newf» будет связана с файлом, который мы создадим в процессе выполнения программы.

Строка №4. Создаем переменную для хранения имени нового файла.

Строка №5. Переменную «line» будем использовать в качестве буферной переменной для хранения слова, записанного в файле.

Строка №6. Переменную «с» будем использовать в качестве счетчика цикла.

Строка №10. Вводим с клавиатуры имя для нового файла. Например, назовем наш новый файл «newname.dat». Если нам необходимо чтобы этот файл был расположен в папке «Programs», то в качестве имени файла необходимо указать «programs\newname.dat». Это название будет записано в переменную «newn».

Строка №11. Связываем файловую переменную «oldf» с файлом «oldname.dat», расположенным в папке «programs».

Строка №12. Связываем файловую переменную «newf» с переменной «newn», в которой храниться  название нового файла «newname.dat», который будет расположен в папке «programs». Таким образом, файловая переменная «newf» связывается с файлом, которого еще не существует.

Строка №13. Открываем существующий файл «oldname.dat» для чтения.

Строка №14. Открываем файл «newname.dat» для записи. Так как этот файл не существует, он будет создан автоматически. Здесь следует сказать несколько слов об открытии файла с помощью процедур Reset и Rewrite. C помощью процедуры Rewrite мы можем открыть несуществующий файл. Он будет создан автоматически с именем, указанным в параметрах процедуры Assign. Поэтому для файла, открываемого с помощью процедуры Rewrite, мы можем указать имя в процессе выполнения самой программы (строка №10) и затем связать это имя с файловой переменной (строка №12).Если же мы открываем файл с помощью процедуры Reset (т.е. для чтения), то предполагается, что файл уже существует на диске. То есть процедура Reset не может создавать новый файл, она может открывать только существующий файл.

Строка №15. Записываем цикл с признаком конца файла.

Строка №17. Считываем из старого файла информацию и записываем ее в переменную «line» (в старом файле у нас записано слово «pascal»).

Строка №18. Записываем цикл. Функция length возвращает целочисленное значение, равное количеству символов в переменной, указанной в круглых скобках после слова length. У нас после слова length стоит переменная «line», в которой хранится слово «pascal». В этом слове 6 символов, поэтому length(line) будет равно 6. Поэтому цикл в строке №18 будет повторяться от 6 раз.

Строка №19. Line[c] означает один символ в слове, которое содержится в переменной «line». У нас в переменной «line» записано слово «pascal», тогда line[1] будет равно «p», line[2] будет равно «a», line[3] будет равно «s» и т.д. Функция Succ возвращает в качестве значения следующий символ. Т.е. если line[1] равно «p», то succ(line[1]) будет равно «q» (следующий символ по кодовой таблице ASCII). Таким образом, благодаря циклу, все 6 символов, содержащихся в переменной «line», будут заменены следующими символами.

Строка №20. Записываем в новый файл содержимое переменной «line» и (строка №21) выводим это содержимое на экран.

rabota s dvumya tekstovihmi fayjlami

rabota s dvumya tekstovihmi fayjlami.


Предыдущая статья: Дописывание в текстовый файл.
Оглавление: Уроки Паскаль.Файлы.
Следующая статья: Использование типа Record в текстовых файлах.


   ГлавнаяПаскальФайлы в ПаскальРабота с двумя текстовыми файлами.