Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VB_6.doc
Скачиваний:
134
Добавлен:
01.12.2018
Размер:
3.77 Mб
Скачать

9.4. Операции с файлами в vb.

С файлами в VB можно совершать следующие операции:

  1. Создание нового каталога:

MkDir <путь>

<путь> это выражение типа String, например: MrDir “H:\cor”.

  1. Получение списка файлов в данном каталоге:

<переменная>=Dir$ (<путь>)

<переменная> это строковая переменная, в которую функция Dir возвращает имя файла в каталоге, указанном в аргументе <путь>. В аргументе <путь> можно указывать шаблон. Если требуемых файлов по указанному пути не существует, то функция Dir возвращает пустую строку:

Пример: st = Dir$(“H:\Pictures\*.jpg”).

В результате в st будет содержаться имя первого файла с расширением jpg по указанному пути. Чтобы получить все файлы, содержащиеся в папке Pictures, все следующие обращения к Dir записываются без аргумента: st = Dir$. Такие обращения можно осуществлять в цикле и имя каждого очередного файла добавлять в список:

Do While st <> “”

List1.AddItem st

st = Dir$

Loop

3. Изменение текущего дисковода:

ChDrive <дисковод>

Пример: ChDrive “А”. Диск “А” становится текущим.

4. Изменение текущего каталога на текущем дисководе:

ChDir <путь>

Пример: ChDir “A:\Kurs”- переход в каталог Kurs.

5. Определение текущего пути:

CurDir$.

Функция CurDir$ возвращает строковое представление текущего пути. Эту функцию удобно использовать в операторах открытия, переименования и уничтожения файлов, так как обеспечивается независимость приложения от дисковода, на котором Вы работаете. Для обеспечения этого открываемый файл должен находиться в папке Вашего проекта.

Пример: Open CurDir$ & “\pred.dat” For Random As #1 Len=Len(pr).

6. Переименование файла:

Name <старое имя> As < новое имя >

Пример: Name “H:\Krs\Kurs\a.jpg” As “A:\Kurs\face.jpg”.

В результате файл a.jpg будет переименовать в face.jpg и перемещён с диска Н на дискету.

7. Копирование файлов:

File Copy <имя копируемого файла>,<имя файла-копии>

Пример: File Copy “H:\Krs\Kurs\a.jpg”, “A:\Kurs\face.jpg”.

Файл a.jpg будет не перемещён, а скопирован на дискету с изменённым именем.

8. Удаление файлов:

Kill <имя файла>

Пример: Kill “A:\Kurs\*.jpg”.

Из папки “Kurs” на дискете будут удалены все файлы с расширением jpg.

9.5. Файловые операторы и функции обработки данных.

К операциям обработки данных относятся:

1. EOF (<номер файла>)

Функция возвращает значение True после достижения конца файла, иначе она возвращает значение False. Она обычно используется в цикле Do While Not EOF(1).

Если после открытия и заполнения информацией файл не был закрыт, то указатель будет установлен на метку конца файла и цикл Do While Not EOF(1) игнорируется, так как EOF при этом возвращает значение True. Поэтому для обработки файла с первой записи необходимо установить указатель на начало файла, а уже потом организовывать цикл обработки. Перемещение указателя на начало файла происходит в результате выполнения оператора Open. Но если файл не был закрыт, то повторно открывать его нельзя. Для программного перемещения указателя в открытом файле используется оператор Seek.

2. Seek [#] <номер файла>, <позиция>

Оператор Seek устанавливает позицию для следующей операции чтения/записи в открытом файле. В файле произвольного доступа параметр <позиция> - это номер записи в файле, с которой будет производиться очередная операция чтения или записи.

3. LOF (<номер файла>)

Функция LOF возвращает размер открытого файла в байтах. С её помощью можно определить количество записей в файле: kolzap = LOF(1) \ Len(pr).

4. FileLen <путь>

Функция FileLen возвращает длину неоткрытого файла в байтах. Аргумент <путь> должен содержать имя файла и путь к нему.

5. FreeFile

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

Пример. Чтение записей, начиная с конца файла:

Объявляем пользовательский тип данных (запись):

Private Type Rec

a As Integer

b As String*10

End Type

Объявляем необходимые переменные:

Dim c As Rec, kolzap As Long, i As Long

Dim nf As Integer, st As String*20

Определяем номер свободного канала ввода / вывода (т.е. незанятый еще номер файла) и формируем строку с полным именем файла:

nf = FreeFile: st = ”A:\Kurs\d.dat”

Открываем файл и определяем количество записей в нем:

Open st For Random As #nf Len = Len(c)

kolzap = LOF(nf)\Len(c)

В цикле по записям считываем данные из файла в переменную “c”, обрабатываем их и, завершив обработку, закрываем файл.

For i = kolzap To 1 Step -1

Seek #nf, i

Get #nf, , c

. . . . . .

Next i

. . . . . .

Close #nf

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]