Программирование на языке Object Pascal
Методическое пособие - Компьютеры, программирование
Другие методички по предмету Компьютеры, программирование
быть прочитаны или записаны за одно обращение к диску;
- возвращает при выходе из процедуры количество фактически обработанных записей.
Buff: array [1..1024] of byte;: (f,buff,2,x);[x=1]
За одно обращение к процедуре BlokRead / BlokWrite может быть передано n*(длинна записи) байт. Передача идет начиная с первого файла к переменной Buff. Программист должен заботиться о том, что бы длинна внутреннего представления переменной Buff была достаточной для размещения всех n*(длинна записи) байт. Если длинна буфера будет недостаточной или место на диске закончится то выведется: ОШИБКА!
Потоки.
Stream - поток данных.
Thread - отдельно выполняющаяся программа (отдельный процесс); программный поток.
TSream - объект потока данных. Является базовым для потоков данных разного типа. В нем реализованы все необходимые свойства и методы, используемые для чтения и записи данных на различные типы носителей (память, диск, сеть …). Благодаря ему, доступ к различным типам носителей становится унифицированным (единым, одинаковым …). У объектов TSream существует несколько потомков одного уровня позволяющих работать с различными носителями информации.
Потомки TSream:
TFileStream - применяется для получения доступа к файлам.
TMemoryStream - применяется для получения доступа к памяти.
TStringStream - применяется для получения доступа к строкам, хранящимся в динамической памяти.
TWinSocketStream - применяется для получения доступа к данным из сети.
TOleStream - применяется для получения доступа к COM-интерфейсу (component object model).
Для всех этих объектов действуют основные методы и свойства родительского объекта TSream.
Основные свойства объекта TSream:
Position - указывает на текущую позицию курсора в потоке (начиная с нее будет происходить чтение файла).
Size - размер данных в потоке.
Методы объекта TSream:
CopyFrom - метод предназначен для копирования из другого потока:
1.указатель на поток, из которого надо копировать;
2.размер данных (байт) подлежащих копированию.
Read - позволяет прочитать данные из потока, начиная с текущей позиции курсора:
1.буфер, в который будет происходить чтение;
2.количество читаемых байтов.
Write - позволяет записывать данные в буфер (по параметрам аналогичен read);
Seek - позволяет переместиться в новую позицию в потоке:
1.число, указывающее на сколько байт нужно передвинуться;
2.от куда надо двигаться (не обязательные параметр). Может принимать 3-и значения:
soFromBegining - от начала;
soFromCurrent - с текущей позиции (по умолчанию);
soFromEnd - с конца.
SetSize - устанавливает размер потока (один параметр - число указывающее новый размер потока (байт)).
Пример Работа с объектом TFileStream - чтение информации:
…: TFileStream;: array [1..1024] of byte;OpenDialog1.Exwcute then :=TFileStream.Create (OpenDialog1.FoleName, fmOpenRead);.Read(buf,1024);.Free;;
end;
fmOpenRead - режим работы с файлом.
Режимы работы с файлом для объектов TFileStream:
fmCreate - создает новый файл (если файл уже существует, то он открывает его в режиме записи);
fmOpenRead - открывает файл только для чтения;
fmOpenWrite - открывает файл только для записи (вся предыдущая информация стирается);
fmOpenReadWrite - добавляет информация в файл не удаляя предыдущую;
fmShareExclusive - при работе с файлами в таком режиме не одно приложение, кроме вашего не сможет его открыть;
fmDenyWrite - при работе с файлами в таком режиме другие приложения не могут писать в файл, но могут его читать;
fmDenyRead - при работе с файлами в таком режиме другие приложения могут только писать, но не открывать приложения..Строки.
Строки используются для обработки текста:
Var
Имя: string;
Этот тип похож на одномерный массив символов, но в отличие от него количество элементов в строке может меняться в ходе выполнения программы.
Максимальное количество символов в строке 255.
Пример:
: string; [0-255]: string [10]; [0-10]
В OPascal строка выглядит как цепочка символов, к каждому символу можно обратиться как к элементу одномерного массива указав его индекс:
s: это_строка;
s1:=s6; [т]
Строка хранится в памяти компьютера следующим образом - самый первый элемент строки имеет индекс 0 и содержит значение текущей длинны строки:
( это_строка )-для человека
A (ASCII код символов)- для компьютера
Над длинной строки можно производить необходимые действия оперируя с нулевым байтом строки.
Над строками допустимы следующие операции:
). Сравнение (результат - истина, если строки идентичны).
2). Сложение.
:= ab;:= 12:=s1+s2;[ab12]
При записи строки допустимо использовать ASCII коды символов:
S:= abs;
S:= #65#66#67;
S:= a#66 c
Если, при сцепление строк, длинна строки более 255 символов, то лишние символы отсекаются.
Правила сравнения строк:
выдают истина или ложь.
s1:= abcde; [65 66 67 68 69]:= abcae;[65 66 67 65 69]>S2:= abc;[65 66 67]:= abcde;[65 66 67 68 69]>S1
Процедуры и функции для работы со строками:
Concat (s1, s2 … sn): string; - сцепление строк в списке параметра, возвращает результат функция string;
Copy (st, index, count): string; - возвращает из st count символов:
:= конкатспация;:= copy (s1, 4, 3); [кат]
Delete (st, index, count): string; - удаляет из строки st с позиции index count символов:
:= процедура;:= delete (s1, 1, 5); [дура]
nsert (s1, st, index); - возвращает в строку s1 строку st начиная с позиции index:
s:= дверь;:= е;:=insert (s, s2, 2); [деверь]
(s): byte - возвраща