Вход

Работа с файлами в Visual Basic

Курсовая работа* по программированию
Дата добавления: 08 июня 2005
Язык курсовой: Русский
Word, rtf, 2.6 Мб (архив zip, 266 кб)
Курсовую можно скачать бесплатно
Скачать
Данная работа не подходит - план Б:
Создаете заказ
Выбираете исполнителя
Готовый результат
Исполнители предлагают свои условия
Автор работает
Заказать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу
* Данная работа не является научным трудом, не является выпускной квалификационной работой и представляет собой результат обработки, структурирования и форматирования собранной информации, предназначенной для использования в качестве источника материала при самостоятельной подготовки учебных работ.
Очень похожие работы

48






Оглавление


Стр.

Введение …………………………………………………………………….

3

§1. Работа с файлами в Visual Basic…………………………………….

5


1.1 Типизированные файлы ……………………………………

6


1.2 Текстовые файлы ……………………………………………

12


1.3 Нетипизированные файлы …………………………………

14

§ 2. Файловые элементы управления Visual Basic …………………..

16


2.1 DriveListBox .....................................................................

17


2.2 DirListBox …………………………………………………….

17


2.3 FileListBox ……………………………………………………

19

§ 3. Модель FSO ……………………………………………………………

24


3.1 FileSystemObject ……………………………………………..

25


3.2 Drive ……………………………………………………………

26


3.3 Folder/ File …………………………………………………….

27


3.4 Text Stream …………………………………………………...

29

Заключение ………………………………………………………………….

32

Литература ..........................................................................................

33

Приложение 1

Обработка двух

типизированных файлов …………………………….

34

Приложение 2

Обработка двух

текстовых файлов ……………………………………

34

Приложение 3

Обработка двух

нетипизированных файлов …………………………

37

Приложение 4

Приложение «Поиск» ………………………………..

39

Приложение 5

Приложение «Свойство дисков» …………………..

44

Приложение 6

Приложение «Свойство дисков» …………………..

46

Приложение 7

Работа с объектами Folder, File и

TextStream ……………………………………………

49



Введение


Среда разработки приложений Visual Basic, является мощным программным средством, позволяющим реализовать широкий спектр практических задач. Основное её достоинство состоит в оптимальном сочетании простоты использования, доступности и большого набора разнообразных возможностей, позволяющих охватить все основные направления деятельности разработчика прикладных программ. Одним из таких направлений является управление файлами.

Управление файлами – это одна из интереснейших задач для программиста в любой системе программирования. При проектировании приложений достаточно часто возникает необходимость работать непосредственно с файлами. Это требуется, например, для добавления, удаления файлов и каталогов, записи данных в файлы или чтение из них как программно, так и в интерактивном режиме. Необходимость работы с файлами возникает также при создании программы инсталляции разработанного приложения на пользовательские компьютеры, чтение данных из файлов при инициализации приложения с использованием файлов настройки, организации вывода файлов на печать. Поэтому данная тема очень актуальна как для начинающих программистов, так и для профессионалов. Visual Basic предоставляет различные операторы, функции и методы для выполнения общих задач управления файлами.

Основной целью данной курсовой работы является изучение операторов, методов и функций Visual Basic для работы с файлами, их основных свойств и событий, а также их применения на практике. Немаловажным являются вопросы использования элементов управления и системы файловых объектов Visual Basic.

Основная задача, которая ставилась при выполнении данной курсовой работы, состоит в том, чтобы понять и изучить принципы и способы сохранения данных в среде программирования Visual Basic. Для выполнения данной задачи изучалась различная литература: Ананьев А.И., Фёдоров А.Ф. Самоучитель Visual Basic 6.0., Глушаков С.В., Сурядный А.С. Программирование на Visual Basic 6.0.

Все примеры приложений выполнены в среде программирования Visual Basic 6.0.

Курсовая работа состоит из введения, трёх параграфов заключения и семи приложений.

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

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

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

Приложения содержат программные коды приложений, приведённых в качестве примеров в данной курсовой работе.
















  • 1. Работа с файлами


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

Управление файлами (file management) – термин, используемый для описания действий, которые выполняются с файлами, сохранёнными на дисковых драйверах. Управление файлами включает в себя действия, такие как копирование файлов, удаление неиспользуемых файлов для освобождения области дисковой памяти, перемещение файлов с одного диска (или папки) на другие и создание или удаление каталогов диска. Управление файлами включает также такие виды обработки как просмотр списка файлов в папке для определения размера файла или даты и времени, когда этот файл был модифицирован последний раз.

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

  • типизированные (двоичные файлы);

  • текстовые;

  • нетипизированные (файлы записей).

Подобное деление файлов на типы достаточно условно и определяется особенностями организации файлов и доступа к данным в них. Например, текстовый файл можно открыть и в режиме двоичного доступа. Если этот файл имеет разделители, то для работы с ним придётся написать специальную процедуру обработки разделителей и разбора данных, так как двоичный доступ обеспечивает побайтовую запись \ чтение из файла. Очевидно, что это неудобно. Именно поэтому введено условное деление файлов на типы в зависимости от формата файла и доступа к данным. Соответственно сгруппированы и функции Visual Basic для записи \ чтения данных.

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

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


1.1. Типизированные файлы.


Содержание типизированных файлов рассматривается как последовательность произвольных данных, которые представлены в двоичном виде. К достоинствам этого типа относится экономичность при хранении информации.

С понятием типизированного файла тесно связано понятие указателя на текущий элемент файла. Другими словами, при работе с двоичным файлом в любой момент времени один из элементов файла является "активным", т.е. с ним могут производится какие-либо действия.

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





В типизированных файлах может содержаться любая информация, однако всякий хранящийся элемент занимает определённое количество байт. Поэтому при его извлечении следует использовать переменные соответствующего типа, чтобы данные были корректно обработаны. Например, если извлекать число 257 (тип Integer) в переменную типа Byte, диапазон значений которой [0; 255], то результатом будет число 1 (см. рис. 2).












Следует точно знать элементы каких типов и в каком порядке хранятся в двоичном файле, т.е. где расположен каждый элемент и сколько он занимает байт. Иначе, если указатель будет перемещён не на первый байт очередного элемента, то, по аналогии с предыдущим примером, обработка информации будет выполнена некорректно и приведёт к ошибочным результатам. Например, если первым элементом двоичного файла было записано 2 – байтовое число 257 и после этого во второй байт было занесено число 0, то в этом случае вместо числа 257 будет снова получено число 1, т.к. его 8-ой бит, принадлежащий второму байту, был обнулён (см. рис. 2).

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

1. Открытие файла. Любой файл создаётся или открывается при помощи оператора Open, синтаксис которого зависит от его разновидности. Для двоичных файлов общий вид данного оператора выглядит следующим образом:

Open Путь For Binary As номер

Здесь

Open – служебное слово, используемое при открытии или создании файла;

Путь – строка или переменная типа String, содержание которой является полный путь к требуемому файлу;

For – ключевое слово для определения типа файла;

Binary – служебное слово, используемое при создании или открытии двоичного файла;

As – ключевое слово для определения переменной, содержащей файловый номер, посредством которого будет в дальнейшем осуществляется обработка файла;

Номер – имя переменной, содержащей номер файла.

В дополнении к сказанному следует заметить, что в качестве параметра Путь может быть указано только имя файла. В этом случае работа с файлами будет происходить в том каталоге, который по умолчанию является рабочим в среде Visual Basic. Для работы с каталогами и дискетами существует несколько функций и операторов (см. табл. 1).


Таблица 1. Функции и операторы для работы с каталогами и дисками

Название

Описание

ChDir (путь)

Оператор, устанавливающий новый рабочий каталог на текущем диске

ChDrive (диск)

Оператор для определения нового рабочего диска

CurDir

Функция, возвращающая путь к рабочему каталогу

MkDir (путь)

Оператор, создающий новый каталог

RmDir (путь)

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

2. Закрытие файла. По окончании работы с любым файлом его необходимо закрыть при помощи оператора Close, синтаксис которого одинаков для всех типов файлов:

Close номер

3. Удаление файла. В случае необходимости удаления файла с диска используется оператор Kill, формат которого аналогичен оператору Close. Не стоит забывать, что перед удалением файла его необходимо обязательно закрыть.

4. Определение файлового номера. Если в программе открыто несколько файлов, то для каждого из них определён свой файловый номер. Для того, чтобы определить значение первого свободного номера для очередного открытого файла, следует использовать функцию FreeFile, результат выполнения которой присваивается переменной-номеру:

Переменная-номер = FreeFile

5. Переименование файла. В том случае, когда необходимо дать файлу новое имя, следует вначале его закрыть, а затем воспользоваться оператором Name, синтаксис которого следующий:

Name Путь1 As Путь2,

где Путь1 – строка или переменная типа String, которого содержит путь к исходному файлу;

Путь2 - строка или строковая переменная, содержимым которой является новый путь к файлу.

Следует заметить, что если на диске уже существует файл с таким же полным названием, т.е. Путь2, то при выполнении оператора Name возникает ошибка.

6. Копирование файла. При необходимости создания копии какого-либо файла применяется оператор FileCopy, перед выполнением которого копируемый файл должен быть закрыт.

FileCopy Путь 1, Путь 2,

где Путь 1 – путь к исходному файлу;

Путь 2 – путь к новому файлу.

При работе с открытым файлом возможно выполнение двух операций: занесение данных и считывание информации.

7. Запись в файл. Для того, чтобы записать в двоичный файл какую-либо информацию, следует воспользоваться оператором Put.

Put номер, Позиция, Переменная

Здесь Номер – переменная, которая содержит файловый номер;

Позиция – порядковый номер байта, начиная с которого будет заноситься информация;

Переменная – название переменной, содержимое которой записывается в файл.

8. Извлечение из файла. Для извлечения информации из файла применяется оператор Get, формат которого совпадает с оператором Put.

Get Номер, Позиция, Переменная.

При выполнении оператора Get в Переменную заносится информация из файла с указанным Номером, расположенная в нём по адресу Позиция.

В дополнение к описанию операторов Put и Get следует заметить, что перед номером файла можно указывать знак #.

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

Seek (Номер).

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

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


Пример 1. Требуется на диске С: создать каталог TEXT и назначить его рабочим, затем в нём в свою очередь, создать файлы a1.bin и a2.bin. После этого необходимо заполнить файл a1.bin значениями массива arrA, состоящего из 10 элементов типа Integer, которые четвёртые степени целых чисел от 1 до 10. Затем требуется извлечь содержимое файла a1.bin в массив arrB, в котором после этого необходимо вычислить квадратные корни всех элементов. Последней операцией должно быть занесение содержимого массива arrB в файл a2.bin. После выполнения всех действий оба файла необходимо закрыть и удалить. Затем назначить рабочим тот каталог C:\Program Files, после чего удалить TEXT (см. рис. 3).








Решение данной задачи продемонстрировано в Приложении 1.

1.2. Текстовые файлы


Содержимым текстовых файлов является последовательность строк произвольной длинны, которые были созданы при помощи кого-либо текстового редактора. При этом в конце каждой строки находится особое сочетание символов, которое означает её окончание и состоит из "возврата каретки" (код в таблице символов = 13) и "перевода строки" (код 10). В дополнение к сказанному следует заметить, что любой файл, независимо от типа, всегда завершается специальным символом "конец строки" (код = 26).

Хранение числовых данных в текстовых файлах не является эффективным, т.к. каждый элемент будет представлен в виде последовательности символов. Следовательно, если необходимо хранить в файле, например, восьмизначные числа (тип Long), которые занимают в памяти 4 байта, то для каждого из них в текстовом файле будет отведено 8 байт – по 1 байту на один символ.

Операции с текстом должны выполняться построчно, при этом после обработки очередной строки указатель автоматически перемещается на следующую строку. Если в ходе выполнения программы необходимо проверить условие достижения конца файла, то следует применять функцию Eof (номер), результатом которой является логическое значение (True или False).

1. Открытие файла. Для того, чтобы открыть текстовый файл, используется оператор Open следующего формата

Open путь For назначение As номер

Здесь, в отличие от формата, применяемого при работе с двоичными файлами, после служебного слова For в качестве назначения для открываемого файла используются:

Input – файл открывается для считывания из него информации;

Output – файл открывается для редактирования его содержания;

Append – файл открывается для добавления в него новых строк.

При использовании в операторе Open ключевого слова Input открываемый файл должен существовать, в противном случае возникает ошибка. С другой стороны, служебные слова Output и Append можно применять как для открытия, так и для создания текстовых файлов. При этом, если файл уже открыт, например, для извлечения данных, то для добавления строк его необходимо вначале закрыть (Close), а затем открыть с указанием соответствующего назначения.

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

Print # номер, переменная

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

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

3. Извлечение информации из файла. В языке Visual Basic существуют несколько возможных вариантов извлечения информации из текстового файла.

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

Line Input # номер, переменная

Функция Input - применяется для извлечения в строковую переменную заданного количества символов из файла и имеет следующий формат:

Input (число, номер)

Результатом вызова данной функции является указанное число символов, скопированных из файла с определённым номером.

Пример 2. Требуется создать на диске С каталог Text, в котором необходимо создать текстовый файл a.txt и занести в него информацию, состоящую из нескольких строк.


После этого файл следует закрыть и затем открыть его в режиме чтения, одновременно с этим нужно создать новый файл b.txt и скопировать в него все строки из a.txt. Затем требуется добавить в b.txt ещё одну строку и определить размер обоих файлов. После всех выполненных действий необходимо закрыть оба файла, удалить их, а также удалить каталог Text (см. рис. 4).









Решение данной задачи продемонстрировано в Приложении 2.


1.3. Нетипизированные файлы


Информация в нетипизированных файлах хранится в виде набора одинаковых записей определённой структуры. Размер одной записи является значением суммы размеров всех её полей.

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

Open путь [For Random] As номер Len=размер

В этом случае в операторе Open указывать тип с использованием служебного слова [For Random] необязательно, так как данный режим используется по умолчанию. Размер используемых записей задаётся при помощи ключевого слова Len. При этом, если запись, добавляемая в файл будет больше указанного размера, то в результате выполнения операции возникает ошибка.

2. Занесение в файл и извлечение из файла. Для занесения содержимого записи в файл используется оператор Put, как при работе с двоичными файлами:

Put номер, позиция, переменная

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

Аналогичным образом, для извлечения определённой записи из файла в переменную соответствующего типа применяется оператор Get:

Get номер, позиция, переменная

В этом операторе также, как и в операторе Put, позицией является порядковый номер записей в файле.

Пример 3. Необходимо описать в программе следующую структуру для записей, которую следует назвать Session:

Name As String*30

Number As Long

Phisics As Byte

Math As Byte

Progr As Byte

And Type


После этого требуется создать на диске С: каталог Record, в котором необходимо создать файл записей a.dat и записать в него 2 одинаковые записи типа Session при помощи переменной Rec1. Затем нужно извлечь вторую запись из файла в переменную Rec2, после чего изменит в ней значения полей Name, Number, Progr. Отредактированную запись следует вновь поместить в файл a.dat с порядковым номером 2. После всех выполненных действий следует закрыть a.dat, удалить его, а также удалить каталог Record (см. рис. 5).


Решение данной задачи продемонстрировано в Приложении 3.



§ 2. Файловые элементы управления


В языке Visual Basic у разработчика имеются широкие возможности работы с файловой системой, которые представляют изученный ранее диалоги Common Dialog, набор файловых операторов и функций, рассмотренных в п1, а также файловые элементы управления и модель объекта файловой системы.

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

Существует три файловых элемента управления:

  1. DriveListBox (Список дисков)

  2. DirListBox (Список каталогов)

  3. FileListBox (Список файлов)


2.1. DriveListBox (Список дисков)


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

Имеется возможность задать программным образом диск, который будет использоваться по умолчанию, т.е. который будет являться текущим при запуске приложения. Для этого следует воспользоваться свойством Drive (Устройство), присвоив ему соответствующее значение в процедуре загрузки главной формы Form_Load, например:

Private Sub Form_Load()

DrvSearch.drive=”C:”

End Sub.

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

chDrive drvSearch.Drive


2.2. DirListBox (Список каталогов)


Этот элемент управления представляет собой древовидную структуру, отображающую каталоги того диска, который на данный момент является текущим. Первым элементом списка является текущий диск, под которым расположены находящиеся в нём каталоги, смещённые на одну позицию вправо (корневой каталог). Если пользователь открывает один из них при помощи двойного щелчка мыши, то в этом случае список изменяется таким образом, что в нём после названия текущего каталога отображаются только название его подкаталогов, смещённые ещё на одну позицию вправо (каталог первого уровня) и т.д. (см. рис. 6). Иными словами, информация в данном случае выводится в том же виде, что и в левой части Проводника Windows.


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

Так же, как и при работе с дисками, можно установить каталог, который будет являться текущим, используя свойство Path (Путь) для элемента DirListBox, например:

Private Sub Form_Load()

DirSearch.Path=”C:\Мои документы”

End Sub

Аналогично работе с дисками для установления в операционной системе нового текущего каталога изменение свойства Path будет недостаточно. С этой целью необходимо воспользоваться оператором ChDir, указав в качестве параметра требуемый каталог:

ChDir dirSearch.Path

Так как элемент управления DirListBox представляет собой список, то для него так же, как и для обычных списков, имеется возможность доступа к элементам и их обработки с помощью свойств List (Список), ListIndex (Текущий элемент списка), ListCount (Количество элементов в списке). Однако имеется глобальное различие в системе, используемой для обработки значения свойства ListIndex.

Для каталога, путь к которому совпадает со значением свойства Path элемента управления DirListBox, свойство ListIndex всегда равно -1, независимо от того, на каком уровне он расположен. Каталог, расположенный на один уровень выше текущего, имеет свойство ListIndex, равное -2, и т.д. Завершением этой последовательности является корневой каталог текущего диска.

Соответственно, первый по порядку подкаталог текущего каталога, имеет свойство ListIndex, равное 0. Для второго по счёту каталога ListIndex=1 и т.д.

В данном случае для изображения каталогов значения свойства ListIndex приведены в таблице 2.

Таблица 2. Значение свойства ListIndex для дерева каталогов

Название каталога

Значение ListIndex

C:\

-3

Program Files

-2

VB98

-1

Date&Time

0

First

1

Setup

2

Template

3

Wizards

4


Значением свойства ListCount для выбранного каталога является количество его подкаталогов.


2.3. FileListBox (Список файлов)


Данный элемент управления представляет собой список, отображающий файлы, которые располагаются в каталоге, указанном в свойстве Path. Как правило, этот объект используется вместе со списком каталогов (DirListBox), поэтому, когда пользователь в приложении выбирает нужный ему каталог, то в программе при этом должен выполняться следующий оператор присваивания:

FileSearch.Path=dirSearch.path

В данном случае для выбранного пользователем каталога будет автоматически отображаться список содержащихся в нём файлов.

Для того, чтобы ограничить количество выводимых файлов каким-то именем, расширением и т.д. (т.е. шаблоном), необходимо воспользоваться свойством Pattern, которое позволяет задать один или несколько шаблонов. При этом следует заметить, что в последнем случае в качестве разделителя используется точка с запятой, например:

FileSearch.Pattern=”*.txt; *.exe”

Любому файлу в каталоге может быть задан один из следующих атрибутов (или свойств) или сразу несколько из них:

  • ReadOnly – только чтение

  • Archive - архивный

  • Normal - нормальный

  • Hidden - скрытый

  • System - системный

При отображении файлов, имеющих в текущем каталоге, помимо ограничения в виде одного или шаблонов (свойство Pattern), можно также фильтровать список выводимых файлов на предмет наличия какого-либо атрибута или их сочетания. Для этого следует присваивать в программе соответствующим свойствам элемента FileListBox значения True или False, в зависимости от того, какие именно атрибуты должны быть заданы для отображаемых файлов.

Следует отметить тот факт, что свойства Archive, ReadOnly и Normal по умолчанию принимают значение True, в то время как свойства

Hidden и System равны значению False. Другими словами, в списке будут по умолчанию отображаться все файлы, кроме скрытых и системных.

Если свойство Normal элемента FileListBox имеет значение True, то в этом случае отображаются файлы без атрибутов, а также с атрибутами ReadOnly и\или Archive. С другой стороны, если свойство Normal имеет значение False, то в списке могут быть отображены файлы с любыми атрибутами, в том числе Readonly и Archive, если присвоить соответствующим свойствам значения True, например:

With FileSearch

Normal=False

ReadOnly=True

Archive=True

End with

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

SetAttr (путь, атрибут)

Здесь в качестве параметра Путь используется путь к требуемому файлу, а значение параметра Атрибут выбирается в соответствии с таблицей 3. Но при этом для последнего могут быть использованы только следующие константы (или их числовые значения): VbNormal, VbReadOnly, VbHidden, VbSystem, VbArchive.

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

Переменная = GetAttr (путь)

Параметр Путь, используемый как в процедуре SetAttr, так и в процедуре GetAttr, представляет собой путь к каталогу, в котором находится указанный файл, в сочетании с его названием. Например путь к файлу a.txt расположенному в каталоге Text диска С, будет выглядеть следующим образом: C:\ text \ a.txt.


При этом Переменной будет присвоено значение в соответствии с таблицей 3.

Таблица 3. Описание констант при работе с атрибутами.

Константа

Значение

Описание

VbNormal

0

Нормальный

VbReadOlly

1

Только чтение

VbHidden

2

Скрытый

VbSystem

4

Системный

VbVolume

8

Метка тома

VbDirectory

16

Каталог

VbArchive

32

Архивный

VbAlias

64

Алиас (псевдоним)


Для того, чтобы получить в программе доступ к оп­ределенному файлу, необходимо воспользоваться свойством FileName элемента FileListBox, установив перед этим выбран­ный пользователем каталог в качестве текущего на уровне систе­мы (оператор ChDir). Другая возможность заключается в совме­стном использовании значений: следующих свойств: Path и FileName. Например, требуется установить атрибуты ReadOnly и Hidden файлу a.txt, расположенному в каталоге С:\ТЕХТ.

Ниже приведены два примера программного кода для выпол­нения данной задачи, используя обе описанные возможности. При этом предполагается, что пользователь выбрал в списке ка­талогов название TEXT, а в списке файлов - название a.txt

1. Установка текущего каталога.

ChDir dirSearch.Path

strPath = fil.Search.Filename

strAttr = vbReadOnly + vbHidden

SetAttr strPath, strAttr

2. Использование свойств Path и Filename.

strPath = filSearch.Path + "\" + _ filSearch.FileName

strAttr = vbReadOnly + vbHidden

SetAttr strPath, strAttr

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

1- None (можно выделить только один файл);

2 - Simple (при каждом щелчке в группу добавляется вы­деленный файл или удаляется из нее, если он ужё был в группе);

3 - Extended (выделение файлов осуществляется так же, как и в программе Проводник - с использованием клавиш Shift и Ctrl).

Если в списке выделены несколько файлов, то доступ к их на­званиям можно получить, проверяя значение свойства Selected для каждого элемента списка, аналогично работе с ListBox и СоmbоВох.



Пример 4.

Для иллюстрации возможностей работы с фай­ловыми элементами управления будет рассмотрено приложение "Поиск", которое отображает файлы текущего каталога в зависи­мости от указанного пользователем шаблона, а также от задан­ных атрибутов (см. рис. 7).

Решение данной задачи продемонстрировано в Приложении 4.



§3. Модель FSO


Для работы c дисками, каталогами (папками) и файлами в Visual Basic помимо стандартного набора операторов, процедур и функций, имеется также новая модель, которая носит название FSO (File System Object – объект файловой системы). Данная модель даёт возможность разработчику использовать синтаксис, применяемый при работе с объектами, и содержит множество методов, свойств и событий в дополнение к известным операторам.

Основой модели FSO являются объекты, описание которой приведено в таблице 4.

Таблица 4. Описание объектов, используемых в модели FSO.

Название

Описание

FileSystemObject

Позволяет работать с любыми элементами файловой системы: дисками, папками, файлами.

Drive

Даёт возможность получения информации о дисках. Это касается не только чистого диска, но также дисководов, устройств чтения компакт дисков или виртуальных дисков.

Folder

Позволяет выполнять любые действия с папками: копировать, перемещать, удалять и т.д.

File

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

Text Stream

Позволяет обрабатывать текстовые файлы, т.е. считывать и заносить информацию.

Для того чтобы получить возможность обработки файловой системы с помощью модели FSO, необходимо вначале проверить, установлена ли в среде разработки её поддержка. Для проверки (или установки) библиотеки Scripting, содержащей модель FSO, необходимо выполнить следующую последовательность действий:

  1. Открыть меню Project;

  2. Выполнить команду Referernces;

  3. В появившемся диалоговом окне следует установить ссылку Microsoft Scripting Runtime и нажать Ok.

Новые методы системы FSO расширяют и дополняют традиционные возможности Visual Basic при работе с файлами. Использование системы FSO состоит из трёх этапов:

  1. Создание объекта системы FSO.

  2. Настройка требуемых методов объекта FSO.

  3. Настройка доступных свойств объекта FSO.

Создать объект системы FSO можно объявлением переменной типа FSO:

Dim NewFSO As New FileSystemObject

Для создания объекта можно также использовать следующий оператор:

Set NewFSO=CreateObject (“Scripting.FileSystemObject”)

В данном случае Scripting.FileSystemObject – это требуемый объект с указанием библиотеки

После этого можно работать со свойствами и методами объекта NewFSO как со всеми другими объектами приложения.

Далее будут рассмотрены все объекты модели FSO с описанием их свойств и методов. Для того, чтобы получить более подробное описание, можно воспользоваться окном Object Browser.



    1. Объект FileSystemObject


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


При использовании данного объекта разработчик может оперировать одним из методов, приведённых в таблице 5.


Таблица 5. Перечень основных методов объекта FileSystemObject


Название

Описание

CopyFile

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

CopyFolder

Копирование папки

CreateFolder

Создание папки

CreateTextFile

Создание текстового файла

DeleteFile

Удаление файла

DeleteFolder

Удаление папки

DriveExists

Проверка существования диска

FileExists

Проверка существования файла

FolderExists

Проверка существования папки

GetDrive

Получение доступа к диску

GetDriveName

Получение имени диска

GetFile

Получение доступа к файлу

GetFileName

Получение имени файла

GetFolder

Получение доступа к папке

MoveFile

Перемещение файла

MoveFolder

Перемещение папки

OpenTextFile

Открытие текстового файла




3.2. Объект Drive


Этот объект используется для работы с дисками. Свойства, используемые в этом случае, приведены в таблице 6.

Таблица 6. Перечень свойств объекта Drive

Название

Описание

AvailableSpase

Объём доступного места на диске в байтах

DriveLetter

Обозначение диска

DriveType

Тип диска

FileSystem

Тип файловой системы диска

FreeSpace

Объём свободного места на диске в байтах

IsReady

Доступность диска

Path

Путь к диску

RootFolder

Корневой каталог диска

SerialNumber

Серийный номер диска

ShareName

Разделяемое имя диска

TotalSize

Полный размер диска в байтах

VolumeName

Метка тома или диска


Пример 5. В качестве иллюстрации возможности работы с дисками при помощи объекта Drive будет рассмотрено приложение «Свойства дисков», отображающее на форме некоторые свойства выбранного диска (см. рис. 8).

Решение данной задачи продемонстрировано в Приложении 5.


    1. Объекты Folder и File


Объект Folder применяется при обработке каталогов. Используемые с этой целью свойства и методы приведены в таблицах 7 и 8.

Объект File используется для обработки файлов, причём практически все свойства и методы в этом случае совпадают для объекта Folder, за исключением тех, которые не имеет смысла использовать при обработке файлов, например, свойство SubFolders и IsRootFolder.

Таблица 7. Свойство объектов Folder \ File

Название

Описание

Attributes

Атрибуты папки \файла

DateCreated

Дата создания папки \файла

DateLastAccessed

Дата последнего использования папки \файла

Drive

Получение диска, содержащего папку \файл

Folder.Files

Набор файлов папки

Folder.IsRootFolder

True, если каталог является корневым

Name

Имя папки \файла

ParentFolder

Имя родительской папки

Path

Путь к папке \файлу

Shortname

Краткое имя папки \файла

Shortpath

Краткий путь к папке \файлу

Size

Полный размер папки \файла

Folder.SubFolders

Набор подкаталогов папки

Type

Тип папки \файла


Таблица 8. Перечень методов объектов Folder/File

Название

Описание

Copy

Копирование папки \файла

Folder.CreateTextFile

Создание в папке текстового файла

Delete

Удаление папки \файла

Move

Переименование папки \файла

File.OpenAsTextStream

Открытие файла как текстового потока



Пример 6. Для того чтобы показать возможности обработ­ки каталогов и файлов при помощи объектов Folder и File, будет рассмотрено приложение "Свойства папок и файлов", которое отображает на форме свойства выбранного каталога и файла, (см. рис. 9).

Решение данной задачи продемонстрировано в Приложении 6.



3.4. Объект TextStream


Данный объект применяется для работы с текстовыми файла­ми. Используемые в этом случае свойства и методы приведены в табл. 9 и 10. Следует заметить, что последовательный тек­стовьай файл также носит название "текстового потока".


Таблица 9. Перечень свойств объекта TextStream

Название

Описание

AtEndOfLine

Является ли текущая позиция концом

строки

AtEndOfStream

Является ли текущая позиция концом

текстового потока

Соlumn

Номер позиции в текущей строке

Line

Номер текущей строки



Табпица 10. Перечень методов объекта TextStream

Название

Описание

Close

Закрывает текстовый поток

Read

Читает из файла в строковую пере­

менную указанное количество

символов

Read all

Читает в строковую переменную весь

текстовый файл

ReadLine

Читает из файла в строковую пере­менную указанную строку

Skip

Пропускает указанное количество

символов в текстовом файле

SkipLine

Пропускает текущую строку

Write

Записывает в файл содержимое стро­ковой переменной

WriteBlankLines

Записывает в файл указанное количе­ство пустых строк

WriteLine

Записывает в файл содержимое стро­

ковой переменной, а также символ

конца строки


Пример 7. Для иллюстрации работы с текстовым файлом при помощи объекта TextStream будет рассмотрена следующая задача. Пусть в корневом каталоге требуетея создать каталоги Dir1 и Diг2. После этого непбходимо в каталогах Dir1 создать тек­стовый файл a.txt и записать в негo информацию произвольного содержания. Затем нужно переместить данный файл в каталог Dir2, после этого скопировать его снова в каталог Dir1. Завер­шающим действием должно быть удаление созданных каталогов (см. рис. 10).



Решение данной задачи продемонстрировано в Приложении 7.



















Заключение


В данной курсовой работе были рассмотрены стандартные операторы, функции и методы Visual Basic для работы с файлами различных типов, файловые элементы управления и объекты файловой системы, а также показаны примеры их применения на практике.

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

Данная работа может быть использована студентами для изучения операторов, функция и методов Visual Basic, которые позволяют выполнять различные задачи управления файлами.

















Литература


1.

Microsoft Visual Basic 6.0 для профессионалов. Шаг за шагом.

2.

Азбука Технологий Программирования - сервер о технологиях программирования Visual Basic, VB, VBScript, ASP, Базы Данных, СУБД, VBA, C++, Утилиты, Справочники. - http://www.azbukavb.narod.ru/vb.html

3.

Ананьев А.И., Фёдоров А.Ф. Самоучитель Visual Basic 6.0. – СПб.: БХВ - Петербург, 2002. – 624 с.: ил.

4.

Глушаков С.В., Сурядный А.С. Программирование на Visual Basic 6.0. – М.: «Фолио», 2002. – 497с.

5.

Кузьменко В.Г. Visual Basic 6. Самоучитель. Второе издание. - М Бином, 2003. – 432с.: ил.

6.

Лукин С.Н. Visual Basic 6.0: Самоучитель для начинающих

7.

Симонович С.В. , Евсеев Г.А. Занимательное программирование: Visual Basic. – М.: АСТ-Пресс Книга: Информком-Пресс, 2001. – 320с.















Приложение 1

Обработка двух типизированных файлов


Формулировка задачи. Требуется на диске С: создать каталог TEXT и назначить его рабочим, затем в нём в свою очередь, создать файлы a1.bin и a2.bin. После этого необходимо заполнить файл a1.bin значениями массива arrA, состоящего из 10 элементов типа Integer, которые четвёртые степени целых чисел от 1 до 10. Затем требуется извлечь содержимое файла a1.bin в массив arrB, в котором после этого необходимо вычислить квадратные корни всех элементов. Последней операцией должно быть занесение содержимого массива arrB в файл a2.bin (см. рис. 11).


После выполнения всех действий оба файла необходимо закрыть и удалить. Затем назначить рабочим каталог C:\Program Files, после чего удалить TEXT .









Программный код. Обработка двух типизированных файлов

Option Explicit

Dim FPath1 As String

Dim FPath2 As String

Dim DPath As String


Private Sub Form_Load()

Dim FNum1 As Integer

Dim Fnum2 As Integer

Dim arrA(1 To 10) As Integer

Dim arrB(1 To 10) As Integer

Dim i As Byte

' Создание каталога C:\TEXT

DPath = "C:\text"

MkDir DPath

'Назначение каталога C:\TEXT рабочим

ChDir DPath

FPath1 = "a1.bin"

FPath2 = "a2.bin"

' Определение свободного файлового номера

FNum1 = FreeFile

'Открытие файла a1.bin

Open FPath1 For Binary As FNum1

'Определение свободного файлового номера

Fnum2 = FreeFile

'Открытие файла a2.bin

Open FPath2 For Binary As Fnum2

For i = 1 To 10

'Заполнение массива arr A

arrA(i) = i ^ 4

'Заполнение файла a1.bin

Put FNum1, i * 2 - 1, arrA(i)

Next

For i = 1 To 10

'Извлечение из файла a1.bin в массив arrB

Get FNum1, i * 2 - 1, arrB(i)

'Вычисление квадратного корня

arrB(i) = Sqr(arrB(i))

'Заполнение файла a2.bin

Put Fnum2, i * 2 - 1, arrB(i)

Next

'Закрытие файлов

Close FNum1

Close Fnum2

Dir1.Path = "C:\text"

End Sub


Private Sub Command1_Click()

'Удаление файлов с диска

Kill (FPath1)

Kill (FPath2)

'Назначение рабочего каталога

ChDir ("C:\")

'Удаление пустого каталога TEXT

RmDir ("C:\TEXT")

End Sub


Private Sub Dir1_Change()

File1.Path = Dir1.Path

End Sub


Необходимо обратить внимание на использованную в данном примере адресацию, т.е. вычисление выражений для того, чтобы получить порядковый номер байта для очередного элемента. В качестве использовано выражение i * 2 – 1, в котором переменная i принимала значения от 1 до 10. Таким образом, последовательность формируемых адресов была следующей: 1, 3, 5, . . . , 19. Эта адресация была использована в виду того, что каждая переменная типа Integer занимает в памяти 2 байта, а нумерация в двоичном файле начинается с 1


























Приложение 2

Обработка двух текстовых файлов


Формулировка задачи. Требуется создать на диске С каталог Text, в котором необходимо создать текстовый файл a.txt и занести в него информацию, состоящую из нескольких строк.

После этого файл следует закрыть и затем открыть его в режиме чтения, одновременно с этим нужно создать новый файл b.txt и скопировать в него все строки из a.txt. Затем требуется добавить в b.txt ещё одну строку и определить размер обоих файлов. После всех выполненных действий необходимо закрыть оба файла, удалить их, а также удалить каталог Text (см. рис. 12).


Программный код. Обработка двух текстовых файлов

Option Explicit

Dim FPath1 As String

Dim FPath2 As String


Private Sub Form_Load()

Dim FNum1 As Integer

Dim FNum2 As Integer

Dim i1 As Integer

Dim i2 As Integer

Dim strA As String


MkDir ("C:\text")

ChDir ("C:\text")


FPath1 = "a.txt"

FPath2 = "b.txt"

FNum1 = FreeFile

'Редактирование файла a.txt

Open FPath1 For Output As FNum1

strA = "Создан текстовый файл,"

Print #FNum1, strA

strA = "который состоит"

Print #FNum1, strA

strA = "из нескольких строк"

Print #FNum1, strA

Close FNum1

FNum1 = FreeFile

Open FPath1 For Input As FNum1

FNum2 = FreeFile

Open FPath2 For Append As FNum2

'Копирование a.txt и b.txt

Do Until EOF(FNum1)

Line Input #FNum1, strA

Print #FNum2, strA

Loop

'Добавление новой строки в b.txt

strA = "Добавлена новая строка"

Print #FNum2, strA

'Определение размеров a.txt и b.txt

i1 = LOF(FNum1) 'Результат: 63

i2 = LOF(FNum2) 'Результат: 88

Print #FNum2, Str(i1)

Print #FNum2, Str(i2)

Close FNum1

Close FNum2


Dir1.Path = "C:\text"

End Sub


Private Sub Command1_Click()

Kill (FPath1)

Kill (FPath2)

ChDir ("C:\")

RmDir ("C:\text")

End Sub


Private Sub Dir1_Change()

File1.Path = Dir1.Path

End Sub






Приложение 3

Обработка двух нетипизированных файлов


Формулировка задачи. Необходимо описать в программе следующую структуру для записей, которую следует назвать Session:

Name As String*30

Number As Long

Phisics As Byte

Math As Byte

Progr As Byte

And Type



После этого требуется создать на диске С: каталог Record, в котором необходимо создать файл записей a.dat и записать в него 2 одинаковые записи типа Session при помощи переменной Rec1. Затем нужно извлечь вторую запись из файла в переменную Rec2, после чего изменит в ней значения полей Name, Number, Progr. Отредактированную запись следует вновь поместить в файл a.dat с порядковым номером 2. После всех выполненных действий следует закрыть a.dat, удалить его, а также удалить каталог Record (см. рис. 13).

Программный код . Обработка двух нетипизированных файлов

'Объявление нового типа

Private Type Session

Name As String * 30

Number As Long

Phisics As Byte

Math As Byte

Progr As Byte

End Type

Option Explicit

Dim FPath As String


Private Sub Form_Load()

Dim rec1 As Session

Dim rec2 As Session

Dim FNum As Integer

Dim NRec As Integer


'Заполнение переменной rec1

With rec1

.Name = "Иванов Иван Иванович"

.Number = 123456

.Phisics = 4

.Math = 5

.Progr = 3

End With

MkDir ("C:\Record")

ChDir ("C:\Record")

FPath = "a.dat"

FNum = FreeFile

'Определение размера перменнной rec1

NRec = LenB(rec1)

'Открытие файла a.dat

Open FPath For Random As FNum Len = NRec

'Запись двух одинаковых записей

Put FNum, 1, rec1

Put FNum, 2, rec1

'Извлечение второй записи в переменную rec2

Get FNum, 2, rec2

'Редактирование rec2

With rec2

.Name = "Петров Пётр Петрович"

.Number = 111111

.Progr = 5

End With

'Занесение изменённой записи в файл

Put FNum, 2, rec2

Close FNum

Dir1.Path = "C:\Record"

End Sub


Private Sub Command1_Click()

Kill (FPath)

ChDir ("C:\Program Files")

RmDir ("C:\Record")

End Sub


Private Sub Dir1_Change()

File1.Path = Dir1.Path

End Sub

Приложение 4

Приложение «Поиск»


Формулировка задачи. Для иллюстрации возможностей работы с фай­ловыми элементами управления будет рассмотрено приложение "Поиск", которое отображает файлы текущего каталога в зависи­мости от указанного пользователем шаблона, а также от задан­ных атрибутов (см. рис.14).



















Решение.

Элементы управления, которые будут использованы в данной программе, а также значение их основных свойств при­ведены в таблице 11.

Таблица 11. Элементы управления в приложении "Поиск" и их свойства

Элемент

Свойство

Значение

Список дисков

(Name)

Drive1

Список каталогов

(Name)

Dir1

Список файлов

(Name)

File1

Pattern

*.*

Текстовое поле

для шаблона

(Name)

Text1

Text

*.*

Метка отображе-

ния количества

файлов

(Name)

lblValue

Кнопка для поиска

(Name)

Command1

Caption

Поиск

Кнопка

для выхода

(Name)

Command2

Caption

Выход


Программный код приложения "Поиск"

Option Explicit

Private Sub Command2_Click()

End

End Sub

Private Sub Command1_Click()

With File1

'Шаблон (ы)

.Pattern = Text1.Text

' Атрибут (ы)

.ReadOnly = (Check1.Value = vbChecked)

.Archive = (Check2.Value = vbChecked)

.Normal = (Check3.Value = vbChecked)

.Hidden = (Check4.Value = vbChecked)

.System = (Check5.Value = vbChecked)

'Количество отображаемых файлов

lblvalue.Caption = .ListCount

End With

End Sub

Private Sub Dir1_Change()

'Изменение текущего каталога

File1.Path = Dir1.Path

ChDir Dir1.Path

lblvalue.Caption = File1.ListCount

End Sub

Private Sub Dir1_KeyPress(KeyAscii As Integer)

'Нажата -ли клавиша Enter для выбора каталога

If KeyAscii = 13 Then

With Dir1

If .Path <> .List(.ListIndex) Then

.Path = .List(.ListIndex)

End If

End With

End If

End Sub


Private Sub Drive1_change()

' Изменение текущего диска

Dim vntMessage

On Error GoTo ErrorLabel

Dir1.Path = Drive1.Drive

ChDrive Drive1.Drive

Exit Sub

' Если устройство не готово, то выводится сообщение

ErrorLabel:

vntMessage = "Диск " + UCase(Drive1.Drive) + Chr(13) + Chr(10)


vntMessage = vntMessage + "отсутствует."

vntMessage = MsgBox(vntMessage, vbOKOnly + vbExclamation, "Ошибка")

Drive1.Drive = Dir1.Path

End Sub

Private Sub Form_Load()

' Установка текущего каталога

Drive1.Drive = "C:\"

' Количеатво отображаемых файлов

lblvalue.Caption = File1.ListCount

End Sub























Приложение 5

Приложение «Свойство дисков»


Формулировка задачи. В качестве иллюстрации возможности работы с дисками при помощи объекта Drive будет рассмотрено приложение «Свойства дисков», отображающее на форме некоторые свойства выбранного диска (см. рис. 15).











Решение. Для реализации данного приложения будут использованы следующие объекты:

DrvList – для отображения списка всех дисков;

LblInfo – для отображения свойств выбранного диска.

На стадии разработки свойство Caption элемента LblInfo будет равно пустой строке, а в дальнейшем будет заполняться в зависимости от того, какой диск был выбран пользователем.

Код приложения «Свойства дисков»

Private DrvName

Option Explicit

Private Sub drvList_Change()

Dim vntMessage

On Error GoTo ErrorLabel

'Отображение свойства выбранного диска

DriveInfo

DrvName = drvlist.Drive

Exit Sub

' Сообщение об отсутствии диска

ErrorLabel:

vntMessage = "Диск" + " " + UCase(drvlist.Drive) + " " + Chr(13) + Chr(10)

vntMessage = vntMessage + "отсутсвует."

vntMessage = MsgBox(vntMessage, vbOKOnly + " " + vbExclamation, "Ошибка")

drvlist.Drive = DrvName

End Sub


Private Sub Form_Load()

' Установка первого отображаемого диска

drvlist.Drive = "c:\"

DrvName = drvlist.Drive

Call DriveInfo

End Sub


Private Sub DriveInfo()

' Объявление переменной типа объект FileSystemObject

Dim fso As New FileSystemObject

'Объявление переменной для работы с дисками

Dim drv As Drive

Dim strInfo, drvType

' Получение доступа к выбранному диску

Set drv = fso.GetDrive(fso.GetDriveName(drvlist.Drive))

' Работа со свойствами объекта класса Drive

With drv

strInfo = "Метка тома:" & .VolumeName & vbCrLf & vbCrLf

strInfo = strInfo & "Серийный номер:" & .SerialNumber & vbCrLf & vbCrLf

drvType = .DriveType

' Определение типа диска

Select Case drvType

Case 0: drvType = "неизвестный"

Case 1: drvType = "сменный"

Case 2: drvType = "жёсткий"

Case 3: drvType = "сетевой"

Case 4: drvType = "CD-Rom"

Case 5: drvType = "Ram"

End Select

strInfo = strInfo & " Тип:" & drvType _

& vbCrLf & vbCrLf

strInfo = strInfo & "Файловая система:" _

& .FileSystem & vbCrLf & vbCrLf

strInfo = strInfo & "Свободно:" _

& .FreeSpace & "байт" & vbCrLf & vbCrLf

strInfo = strInfo & "Ёмкость: " _

& .TotalSize & "байт"

End With

' Отображение свойств выбранного диска

lblinfo.Caption = strInfo

End Sub







Приложение 6

Приложение «Свойства папок и файлов»


Формулировка задачи. Для того чтобы показать возможности обработ­ки каталогов и файлов при помощи объектов Folder и File, будет рассмотрено приложение "Свойства папок и файлов", которое отображает на форме свойства выбранного каталога и файла (см. рис. 16).
















Решение. Для реализации данной задачи будут использованы следующие объекты:

Dir1 - для отображения списка каталогов;

File1- для отображения списка файлов, находящихся в выбранном каталоге;

lblFile - значения свойств выбранного файла;

lblFolder - значения свойств выбранной папки.


Программный код. Приложение "Свойства папок и файлов"

Option Explicit

Private fldInfo

Private FiIInfo

Private Sub Dir1_click()

' Отображение свойств выбранной папки

Call DirInfo

File1.Path = Dir1.Path

ChDir Dir1.Path

End Sub


Private Sub DirInfo()

Dim fso As New FileSystemObject

Dim fld As Folder


On Error GoTo ErrorLabel

Set fld = fso.GetFolder(Dir1.Path)

With fld

If Not (.IsRootFolder) Then

fldInfo = "Название: " & .Name _

& vbCrLf & vbCrLf

fldInfo = fldInfo & "Тип: " & .Type _

& vbCrLf & vbCrLf

fldInfo = fldInfo & "Путь: " _

& .Path & vbCrLf & vbCrLf

fldInfo = fldInfo & "Размер: " _

& .Size & " байт" _

& vbCrLf & vbCrLf

fldInfo = fldInfo & "Содержит:" _

& vbCrLf

fldInfo = fldInfo & " файпов: " _

& .Files.Count & vbCrLf

fldInfo = fldInfo & " папок: " _

& .SubFolders.Count & vbCrLf _

& vbCrLf

fldInfo = fldInfo & "Изненен: " _

& .DateLastModified & vbCrLf _

& vbCrLf

lblfolder.Caption = fldInfo

Else

lblfolder.Caption = ""

End If

lblfile.Caption = ""

End With

Exit Sub

ErrorLabel:

MsgBox "Некоторые свойства недоступны"

End Sub

Private Sub FileInfo()

Dim fso As New FileSystemObject

Dim fil As File

Set fil = fso.GetFile(File1.FileName)

With fil

FiIInfo = "Название: " & .Name _

& vbCrLf & vbCrLf

FiIInfo = FiIInfo & "Тип: " & .Type _

& vbCrLf & vbCrLf

FiIInfo = FiIInfo & "Путь: " & .Path _

& vbCrLf & vbCrLf

FiIInfo = FiIInfo & "Размер: " & .Size _

& " байт" & vbCrLf & vbCrLf

lblfile.Caption = FiIInfo

End With

End Sub

Private Sub File1_Click()

' Отображенне свойств :выбранного файла

Call FileInfo

End Sub

Private Sub Form_Load()

Dir1.Path = "C:\"

End Sub



































Приложение 7

Работа с объектами Folder, File и TextStream

в приложении, реализующем действия с

файлами и папками



Формулировка задачи. Для иллюстрации работы с текстовым файлом при помощи объекта TextStream будет рассмотрена следующая задача. Пусть в корневом каталоге требуетея создать каталоги Dir1 и Diг2. После этого непбходимо в каталогах Dir1 создать тек­стовый файл a.txt и записать в негo информацию произвольного содержания. Затем нужно переместить данный файл в каталог Dir2, после этого скопировать его снова в каталог Dir1. Завер­шающим действием должно быть удаление созданных каталогов (см. рис. 17).

Решение. В программе понадобятся сле­дующие переменные:

fso As New FileSystemObject -объект модели FSO;

fld1, fld2 As Folder - переменные для работы с пап­ками;

fil1, fil2 As File - переменные для работы с файлами;

txt As TextStream - переменная для обработки тексто­вого потока;

strText As String - строковая переменная для передачи

информации из одного текстового файла в другой.

Программный код. Работа с объектами Folder, File и TextStream в приложении, реализующем действия с файлами и папками

Option Explicit


Dim fld1 As Folder

Dim fld2 As Folder


Private Sub Form_Load()

Dim fso As New FileSystemObject


Dim fil1 As File

Dim fil2 As File

Dim txt As TextStream

Dim strText As String

' Создание каталогов с:\dir1 и с:\dir2

Set fld1 = fso.CreateFolder("C:\dir1")

Set fld2 = fso.CreateFolder("C:\dir2")

'Создание файлов

'с:\dir1\a.txt и с:\dir2\b.txt

fso.CreateTextFile ("C:\dir1\a.txt")

fso.CreateTextFile ("C:\dir2\b.txt")

' Получение доступа к созданным файлам

Set fil1 = fso.GetFile("C:\dir1\a.txt")

Set fil2 = fso.GetFile("C:\dir2\b.txt")

'Открытие текстового потока для записи в файл c:\dir1\a.txt

Set txt = fil1.OpenAsTextStream(ForWriting)

txt.Write ("Информация произвольного типа")

txt.Close

'Открытие текстового потока для чтения из файла с:\dir1\a.txt

Set txt = fil1.OpenAsTextStream(ForReading)

strText = txt.ReadAll

txt.Close

'Открытие текстового потока для записи в файл с:\dir2\b.txt

Set txt = fil2.OpenAsTextStream(ForWriting)

txt.Write (strText)

txt.Close

'Копирование: с:\dir1\a.txt -> c:ldir2\a1.txt

fil1.Copy (fld2.Path & "\" & "а1.txt")

'Перемещение: с:\dir2\b.txt -> с:\dir2\b1.txt

fil2.Move (fld1.Path & "\" & "b1.txt")

End Sub


Private Sub Command1_Click()

'Удаление каталогов

fld1.Delete

fld2.Delete

End Sub


Private Sub Dir1_Change()

File1.Path = Dir1.Path

End Sub

© Рефератбанк, 2002 - 2024