Отваряне на обекти от текстов поток

Тази книга ще ви помогне да овладеете VBA IDE и да научите как да програмирате във VBA, като използвате обекти, техните свойства, методи и събития. Обсъжданите техники за програмиране са илюстрирани с примери, които можете веднага да изпробвате на практика. Можете да приложите придобитите знания както за персонализиране и подобряване на популярни офис приложения, включително приложения на Office XP, така и за създаване на свои собствени приложения.
Книгата е предназначена за тези, които бързо и без усилие ще се научат да програмират за Windows с помощта на VBA.
Книга: VBA за манекени
Отваряне на обекти от текстов поток
Отваряне на обекти от текстов поток
* Отворете съществуващ файлов обект в режим на текстов поток.
* Създайте нов файл и го отворете едновременно като текстов поток.
* Отворете съществуващ файл на диска като текстов поток.
Следният пример за процедура отваря три отделни обекта на текстов поток по тези три начина в посочения ред, след което записва данни в един от тези обекти и затваря обектите:
Затъмнете objFileSystem като FileSystemObject
Dim objFile като файл
Dim objTextStream като TextStream
Dim objTextStream2 като TextStream
Dim objTextStream3 като TextStream
Задайте ObjFileSystem = _
' Създайте обект File и го използвайте, за да създадете обект на текстов поток
Задайте ObjFile = _
Задайте objTextStreaml = _
' Създайте файл и го отворете като обект _
Задайте objTextStream2 = _
' Отворете съществуващ файл като _
Задайте objTextStream3 = _
' Напишете два реда текст в един от потоците
„Издигайте се като огньове, сини нощи!“
objTextStream2.WriteLine "Ние -пионери, деца на работници“.
' Затворете и трите текстови потока
Наличните режими за всеки конкретен обект Text Stream зависят от това как е създаден текстовият поток, а в случай на метода OpenAsText Stream на File обекта, от режима, определен за него. Ето съответното резюме.
Налични I/O режими за конкретен обект на текстов поток
Създаване на текстов файл (обект FileSystemObject)
Четене и писане
Отваряне на текстов файл (обект ileSystemObject)
Четене и добавяне
Отваряне като текстов поток (файлов обект)
Четене, писане или добавяне (само един от режимите)
Когато обект Text Stream е създаден от обект File, I/O режимът се посочва като аргумент на метода OpenAsText Stream, като се използват три подходящо именувани константи: For Reading (за четене), For Writing (за запис) и ForAppending (за добавяне). Например, ако искате да добавите текст към края на съществуващ файл, отворете текстовия поток със следния оператор:
Задайте objTS = objFile.OpenAsTextStreamfForAppending)
Като отворите обект Text Stream в съответния режим на достъп, можете да започнете да работите със съдържанието на файла. Има няколко прости метода на ваше разположение за това.
' прочете следващия ред от файла в променлива
strSomeText = Текстов поток.ReadLine
За четене са предоставени следните методи.
Метод (на обекта Text Stream)
Прочетете определен брой знаци, започвайки от текущата позиция във файла
Прочетете всички знаци от текущата позиция във файла до следващия знак за нов ред
Четене на целия файл
Пропускане на определения брой знаци при четене на файл. Следващото четене трябва да започне с първия от следващите знаципропуснато
Пропуснете следващия ред във файла. Следващото четене трябва да започне от първия от знаците след липсващия ред
За да запишете данни в текстов поток, укажете текста, който да бъде написан като низ като аргумент на метода Write или WriteLine, както в следния пример:
objTextStream.Write "Hello Central!"
' запишете стойността на променливата, последвана от знак
' нова линия
Метод (на обекта TextStream)
Запишете посочения низ в текстовия поток
Запишете в текстовия поток посочения ред, последван от знак за нов ред
Запишете в текстовия поток определения брой знаци за нов ред
Когато приключите с четенето на текстов поток или записването в текстов поток, винаги затваряйте обекта Текстов поток, за да освободите системни ресурси и памет, така че други програми и потребители да имат достъп до свързания файл. Методът Close е необходим тук:
Текстовите потоци са добри за четене и писане на относително малки части от данни. Основният проблем е, че не можете да се движите свободно в текстовия поток. Методите на четеца започват да четат данни от самото начало на файла и да го прочетат до края. Докато четенето може да използва методите Skip и Ski pLine за прескачане на определен брой знаци или редове, вие не можете да прескачате назад - изпълнявайки оператор от тип objText Stream. Skip (-10) генерира грешка. За съжаление обектите на Text Stream нямат методи или свойства, които ви позволяват директно да зададете началната позиция за следващото четене. Същото нещо обаче може да се направи по различен начин. Първо трябва да затворите и отворите отново текстовия поток и след това да използвате метода Skip, за да пропуснете една позиция по-малко от числотожелана позиция. Например, ако искате да прочетете 25 знака, започвайки от 5-ия знак във файла, следните оператори ще изпълнят съответната задача:
Задайте objTextStream = bjFile.OpenAsTextStream(ForWriting)
Когато пишете данни в текстови потоци, вие сте още по-ограничени, отколкото когато четете данни, тъй като пропуските във файла изобщо не са разрешени. Всяка следваща операция за запис започва там, където е приключила предишната, и всеки текст, който може да се появи на съответните позиции във файла, се презаписва.
Така че, ако трябва да направите някои промени някъде във файл, без да засягате останалата част от текста, прочетете цялото съдържание на файла в низ, променете го съответно и след това заменете всичко във файла с новите данни.