Функции trunc, round в Pascal.

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

Умножение, деление, сложение, вычитание вещественных чисел в Pascal.

С вещественными числами можно производить операции умножения, сложения, вычитания, а также операцию деления. Причем операция деления отличается от операции Div. Деление вещественных чисел - это обычное математическое деление, в результате которого ...

Функции Sqr, Abs, Sqrt, Sin, Cos, Arctan, Ln, Exp, Pi в Pascal.

Мы уже знаем, какие существуют функции для целых переменных. Это – нахождение модуля числа (Функция Abc), а также возведение числа в квадрат (Функция Sqr). В этом уроке мы рассмотрим функции, применяемые к дробным числам. Это функции Sqr - квадрат ...

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

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

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

...

Программирование данных.

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

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


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