Textcolor, Window, Textbackground в Pascal.

Текст, который мы выводим на экран с помощью процедуры Writeln или с помощью оператора Write можно изменять. Процедура Textcolor используется для изменения цвета выводимого текста. Процедура Textbackground изменяет цвет фона, на котором выводится ...

Функции Pred, Succ в Pascal.

В данном уроке мы рассмотрим функции, применяемые к типу CHAR. Функция Pred возвращает в качестве значения предшествующий символ, а функция Succ возвращает последующий символ.

Применение логических операций с оператором IF.

В данном уроке мы рассмотрим применение логической операции And с условным оператором If.

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

Отображение на экране значений двумерного массива.

Если в результате работы вашей программы необходимо значения каждого элемента двумерного массива отобразить на экране монитора, то можно воспользоваться любым из двух способов, описанных ниже.

Рекурсивные вычислительные процессы.

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

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


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