Как я могу открыть файл HTML в виде текстового файла для чтения кода с помощью VBScript? - PullRequest
1 голос
/ 18 ноября 2009

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

Как открыть файл HTML, прочитать код, который составляет страницу, найти и заменить текст в нем? Я знаю, как открыть, прочитать, найти / заменить, написать, закрыть текстовый файл, но есть ли способ сделать это с файлами HTML?

Ответы [ 2 ]

5 голосов
/ 18 ноября 2009

HTML-файлы - это текстовые файлы, просто откройте их, как любой другой текстовый файл.

так вместо:

Dim fileReader As New System.IO.StreamReader("c:\file.txt")

просто сделай

Dim fileReader As New System.IO.StreamReader("c:\file.html")

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

[править]

woops, извините, я думаю, я перепутал vbscript с обычным Visual Basic в комментарии.

В vbscript обычным подходом будет использование FileSystemObject, как предложила Хелен.

3 голосов
/ 18 ноября 2009

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

Теперь, как мой сценарий может открыть все файлы .html в указанной папке, не зная их имен?

Вы можете перечислить коллекцию Folder.Files и проверить расширение файла, например:

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0

Dim oFSO, oFolder, oFile, oTextStream, strText

Set oFSO = CreateObject("Scripting.FileSystemObject")
Set oFolder = oFSO.GetFolder("C:\MyFolder")

For Each oFile In oFolder.Files
  If LCase(oFSO.GetExtensionName(oFile.Name)) = "html" Then

    Set oTextStream = oFile.OpenAsTextStream(ForReading, TristateUseDefault)
    strText = oTextStream.ReadAll
    oTextStream.Close

    ' Do something with strText '

    Set oTextStream = oFile.OpenAsTextStream(ForWriting, TristateUseDefault)
    oTextStream.Write strText
    oTextStream.Close

  End If
Next
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...