Функции Copy, Pos, процедуры Delete, Insert.

Функция Copy позволяет копировать из строки часть символов. Функция имеет 3 параметра. Copy (st, index, count). St-строка из которой копируют, Index-номер символа, с которого начинается копирование, Count-количество символов, которое будет ...

Abs, Sqr в Pascal.

Abs - функция языка Паскаль, которая вычисляет модуль числа.
Sqr - функция языка Паcкаль, которая возводит число в квадрат.

Константы в Pascal.

Иногда, бывает так, что у нас в программе встречаются величины, которые не меняются в процессе выполнения программы (т.е. фактически они противоположность переменных). Такие величины называются константами. Константы указываются в специальном ...

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

Табулирование функций.

Задача табулирования функции предполагает получение таблицы значений функции при изменении аргумента с фиксированным шагом. В качестве исходной информации должны быть заданы: Х0, Хn – начало и конец ...

Итерационные циклы.

Если число повторений заранее не известно и решение о завершении цикла принимается на основе анализа некоторого условия, то такой повторяющийся вычислительный процесс называется итерационным циклом.

...

В одной программе можно открыть несколько текстовых файлов, и работать с ними одновременно. Например, напишем программу, которая открывает сразу 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 в текстовых файлах.


Добавить комментарий

Защитный код
Обновить

   ГлавнаяПаскальФайлы в ПаскальТипизированные файлы в Паскаль.