9 Июнь 2008

Вопрос 3 Написать макрос, формирующий таблицу Пифагора в Excel для чисел от 1 до 10.

sub pifagor()
dim i,j as integer
for i=1 to 10
for j=1 to 10
workscheets(’
Лист1′) cells(i,j)
value=i*j
next
exit
end sub

Вопрос 2 Написать макрос, подсчитывающий кол-во вхождений слова, заданного пользователем.

sub podchet()
dim i,j as integer
dim temp as string
j=0
temp=inputBox(”
введите слово“) for i=1 to ActiveDocument._words.count
if ActiveDocument._words(i)._text=temp then j=j+1
end if
msgBox(j)
end sub

Вопрос 1 Написать макрос, изменяющий начертание первого слова в каждом абзаце на курсивное.

sub Cursiv()
dim i as integer
for i=1 to ActiveDocument._Paragraphs.count
ActiveDocument.Paragraphs(i)._range.words(1).italic=true
next i
end sub

12. Бинарные и текстовые файлы

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

Как и файл с произвольным доступом все бинарные файлы соответствующие им указатели. Однако в бинарном файле указатель указывает байтовую позицию.

При первом открытии файла указатель находится в позиции 1. После любой операции чтения или записи указатель помещается сразу или после прочитанных или записанных данных. Значение файлового указателя можно определить или изменить с помощью оператора Seek и Loc. Можно использовать функцию Eof для определения достижения конца файла.

Для записи данных в бинарный файл используется оператор Put, для чтения оператор get.

Put # fn, pos, var

Get # fn, pos, var

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

Var-объявляем переменную.

Эти операторы автоматически читают и записывают количество байтов, содержащихся в переменной. Если Var – сторона переменной длины, то количество переданных байтов равно количеству символов.

Гибкость с бинарным файлом требует дополнительной работы для отслеживания и сохранения данных. Сдвиг файлового указателя на 1 байт может привести к чтению бессмысленных данных.

Некоторые важные аспекты при работе с бинарными файлами:

  1. чтобы добавить новые данные в конец существующего бинарного файла выполняется оператор Seek # fn, Lot (fn)+1 для перемещения указателя в конец файла. Если записать данные в существующий бинарный файл в позицию перед концом файла новые данные будут записаны поверх существующего.
  2. При записи данных в позицию указателей находящегося за пределами файла они будут расширены до новой длины. Однако часть файла между первоначальным концом файла и новыми данными снижает (снимает) неопределенные значения.
  3. При чтении данных в позицию указателя выход за рамки файла не выдается сообщение об ошибке, но полученные в результате данные будут бессмысленными.

11. Файлы с последовательным и произвольным доступом.

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

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

Использование файлов с последовательным доступом:

Для записи данных в последовательный файл используется оператор Write # filenum list

Если аргумент list не задан, то в файл записывается пустая строка. Оператор Write автоматически вставляет обязательные разделители между полями, запятые и кавычки. Для чтения данных из последовательного файла используется оператор Input # filenum, Varlist-список переменных. Input-читает данные из файла последовательно.

Если читаются данные переменного типа строки, то конец поля отмечается одним из последовательных файлов: Запятая, если поле не начинается с двойных кавычек, символ возврата каретки CR/LF. Если оператор Input читает данные в числовую переменную конец поля отмечается запятой одним или большим количеством пробелов или символов CR/LF (конец строки).

Использование файлов с произвольным доступом:

Состоит из записей:

Отличие состоит в том, что они состоят (записи одинаковой длины и программа отличает одну запись от другой по ее положению в файле). Записи последовательно пронумерованы, начиная с единицы, а максимальное количество записей 2147483647.

Структура файла с произвольным доступом определяется при его создании. Обычно это делается при помощи ссылки на определенный пользователем тип:

User defined type - UDT, представляет собой структуру, содержащую 2 или более элемента.

Для записи данных с произвольным доступом используется оператор Put # fn recnum Item.

Recnum-необязательный элемент, определяющий номер записи в файле, которые должны быть сохранены.

Put # fn,

Our employees (2)

Для записи данных существующих файлов без перезаписи содержимого следует записи добавлять в конец файла. Для этого используется оператор Lot, тогда:

NumRecords= Lot (fn)/Len (Item)

Put # fn, NumRecords+1, Item

Для чтения данных из файла с произвольным доступом используются операторы Get # fn, recnum, item.

Некоторые способы работы с файловыми указателями:

Seek (fn)-возвращает текущую позицию файлового указателя

Seek fn, position-устанавливает указатель на указанную позицию

Loc (fn)-возвращает номер последней записи прочитанной или записанной. Если файл только что открыт, возвращает 0.

Новые записи »

© Проект «Студенты-Программеры»., 2008. Все права защищены.
Перепечатка материалов только при наличии активной ссылки на источник.
Powered by WordPress