FRNET.NAROD.RU » Статьи » Чтение информации из текстового файла
  » Навигация
- - - - - - - - - - - - - - - -
  » Наша кнопка
- - - - - - - - - - - - - - - -
   » Чтение информации из текстового файла
 
Автор: Алексей Голубев

Сайт: http://www.frnet.narod.ru/

Одной из своих первых статей (по адресу http://www.frnet.narod.ru/article/0001.html) я описывал процесс создания текстового файла. Мне пришло письмо от одного из подписчиков с просьбой написать о копировании, перемещении, чтении файлов. На тот момент я не располагал данной информацией, однако сейчас, найдя ее, расскажу о чтении информации из текстового файла.

Для того, чтобы прочитать текст из файла используются методы объекта TextStream: Read, ReadLine или ReadAll (не зависит от языка: JavaScript или VBScript). Если необходимо при чтении пропустить что-то используются методы Skip, SkipLine В следующей таблице описывается какой метод, для какой цели используется.

Задача Метод
Чтение отдельного ряда символов из файла. Read
Чтение целой строки. ReadLine
Чтение всего текста, содержащегося в файле. ReadAll
Пропуск нескольких символов. Skip
Пропуск строки текста. SkipLine

1. Read и Skip.

Синтаксис методов:

object.Read(количество читаемых символов)
object.Skip(количество пропускаемых символов)
Object – объект TextStream.

Пример использования этих двух методов на JavaScript, заодно повторим создание файлов:

function reab_n_skip() {
var fso, f, txt;
var ForReading = 1, ForWriting = 2; \ определяем константы 1 – для чтения, 2 – для записи
fso = new ActiveXObject("Scripting.FileSystemObject");// создание экземпляра объекта FileSytemObject
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);// открытие файла c:\\testfile.txt для записи
f.Write("1234567890987654321"); // вставка в файл строки
f.Close(); // закрытие файла
f = fso.OpenTextFile("c:\\testfile.txt", ForReading); // открытие файла c:\\testfile.txt для чтения
txt = f.Read(7); // читаем 7 символов
f.Skip(5); // пропускаем 5 символов
txt += “ “ + f.Read(7)
return(txt); // возвращаем значение переменной txt как итог выполнения функции }
Данная функция будет возвращать следующее значение: «1234567 7654321».

Тоже будет выполнять функция на VBScript:

Function ReadTextFileTest
Const ForReading = 1, ForWriting = 2
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)
f.Write "1234567890987654321"
Set f = fso.OpenTextFile("c:\testfile.txt", ForReading)
ReadTextFileTest = f.Read(7)
f.Skip(5)
ReadTextFileTest = ReadTextFileTest + f.Read(7)
End Function
2. ReadLine и SkipLine.

Синтаксис методов:

object.ReadLine( )
object.SkipLine( )
Опять рассмотрим все на примере (JavaScript):

function read_n_skip_lines() {
var fso, f, r;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
f.WriteLine("Hello world!");
f.WriteLine("JavaScript is fun!");
f.WriteLine("Again I!");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
document.write(f.ReadLine());
f.SkipLine();
document.write(f.ReadLine()); }
После выполнения функции в окне браузера вы увидите только следующие строки:

Hello world!
Again I!

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

3. ReadAll.

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

Как всегда в этой статье — пример на JavaScript:

function GetEverything() {
var fso, f;
var ForReading = 1, ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile("c:\\testfile.txt", ForWriting, true);
f.Write("Header");
f.Write("1234567890987654321");
f.Close();
f = fso.OpenTextFile("c:\\testfile.txt", ForReading);
return(f.ReadAll());//возвращаемое значение - все строки из файла }
Эта же функция на VBScript:

Function ReadAllTextFile
Const ForReading = 1, ForWriting = 2
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)
f.Write "Header"
f.Write "1234567890987654321"
Set f = fso.OpenTextFile("c:\testfile.txt", ForReading)
ReadAllTextFile = f.ReadAll
End Function
По считыванию файлов все. Прошу прощения за то, что от статьи в принципе остались одни скрипты, однако мне кажется, что все должно быть понятно. А людям, знающим английский тем более.

P.S. Вы можете скачать пример, разобранный в статье.

 

  » Друзья сайта
- - - - - - - - - - - - - - - -
  » Разное
- - - - - - - - - - - - - - - -
  » Счетчики
- - - - - - - - - - - - - - - -
  Дизайнер и ведущий проекта: Голубев Алексей
Copyright Alexei Golubev © 2004
Hosted by uCoz