Смекни!
smekni.com

FSO – тяжелая артиллерия VB6 (стр. 2 из 2)

Dim fso As New FileSystemObject, fil As File

Set fil = fso.CreateTextFile("c:testfile.txt", True)

Обратите внимание, что модель объекта FSO еще не поддерживает создание произвольных (random) или двоичных (binary) файлов.

Другой путь состоит в том, чтобы использовать метод OpenTextFile объекта FileSystemObject с установкой флага ForWriting:

Dim fso As New FileSystemObject, ts As New TextStream

Set ts = fso.OpenTextFile("c:test.txt", ForWriting)

Или Вы можете использовать метод OpenAsTextStream с установкой флага ForWriting:

Dim fso As New FileSystemObject, fil As File, ts As TextStream

Set fso = CreateObject("Scripting.FileSystemObject")

fso.CreateTextFile ("test1.txt")

Set fil = fso.GetFile("test1.txt")

Set ts = fil.OpenAsTextStream(ForWriting)

Добавление данных к файлу

Как только текстовый файл создан, Вы можете добавлять данные. Для этого необходимо:

Открыть текстовый файл для записи данных.

Записать данные.

Закрыть файл.

Чтобы открыть файл, Вы можете использовать любой из двух методов: метод OpenAsTextStream объекта File или метод OpenTextFile объекта FileSystemObject.

Чтобы записать данные в открытый текстовый файл, используйте методы Write или WriteLine объекта TextStream. Единственое различие между Write и WriteLine - то, что WriteLine добавляет символы newline к концу строки. Если Вы хотите добавлять newline к текстовому файлу, используйте метод WriteBlankLines.

Чтобы закрыть открытый файл, используйте метод Close объекта TextStream.

Sub Create_File()

Dim fso, txtfile

Set fso = CreateObject("Scripting.FileSystemObject")

Set txtfile = fso.CreateTextFile("c:testfile.txt", True)

'Записьлинии

txtfile.Write ("This is a test. ")

'Запись линии с символом newline

txtfile.WriteLine("Testing 1, 2, 3.")

'Запись трех символов newline в файл

txtfile.WriteBlankLines(3)

txtfile.Close

End Sub

Чтениефайлов File System Objects

Чтобы читать данные из текстового файла, используйте методы Read, ReadLine или ReadAll объекта TextStream:

Чтение определенного числа символов из файла - Read

Чтение всей линии (но не, включая, символ newline) - ReadLine

Чтение всего содержания текстового файла - ReadAll

Если Вы используете метод Read или ReadLine, и Вы хотите перейти к специфической части данных, Вы можете использовать метод Skip или SkipLine. Полученный в результате использования этих методов текст может быть сохранен в символьной переменной и анализироваться Left, Right и Mid. Обратите внимание, что константа vbNewLine содержит символ или символы (в зависимости от операционной системы) чтобы продвинуть курсор к началу следующей линии (возврат каретки). Знайте, что концы некоторых символьных переменных могут иметь такие непечатаемые символы.

Sub Read_Files()

Dim fso As New FileSystemObject, txtfile

Dim fil1 As File, ts As TextStream

Set txtfile = fso.CreateTextFile("c:testfile.txt", True)

MsgBox "Writing file"

' Записьлинии

Set fil1 = fso.GetFile("c:testfile.txt")

Set ts = fil1.OpenAsTextStream(ForWriting)

ts.Write "Hello World"

ts.Close

' Чтение содержания файла

Set ts = fil1.OpenAsTextStream(ForReading)

s = ts.ReadLine

MsgBox s

ts.Close

End Sub

Перемещение, копирование и удаление файлов

Модель объекта FSO имеет два метода для перемещения, копирования и удаления файлов:

Переместитефайл - File.Move or FileSystemObject.MoveFile

Копируйтефайл - File.Copy or FileSystemObject.CopyFile

Удалитефайл - File.Delete or FileSystemObject.DeleteFile

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

Sub Manip_Files()

Dim fso As New FileSystemObject, txtfile, fil1, fil2

Set txtfile = fso.CreateTextFile("c:testfile.txt", True)

MsgBox "Writing file"

txtfile.Write ("This is a test.")

txtfile.Close

MsgBox "Moving file to c:tmp"

' Код обработки файла в корне C:

Set fil1 = fso.GetFile("c:testfile.txt")

' Перемещаем файл в директорию tmp

fil1.Move ("c:tmptestfile.txt")

MsgBox " Копируем файл в c:temp"

' Копируем файл в temp

fil1.Copy ("c:temptestfile.txt")

MsgBox "Удаляемфайлы"

' Код получения текущих дерикторий файлов

Set fil1 = fso.GetFile("c:tmptestfile.txt")

Set fil2 = fso.GetFile("c:temptestfile.txt")

' Удаляемдайлы

fil1.Delete

fil2.Delete

MsgBox "Все!"

End Sub