Lire Fichier HTML Local en Chaîne Avec VBA

Cela se sent comme il doit être simple. J'ai un .HTML fichier stocké sur mon ordinateur, et j'aimerais lire l'intégralité du fichier en une chaîne de caractères. Quand j'ai essayer la super simple

Dim FileAsString as string 

Open "C:\Myfile.HTML" for input as #1
Input #1, FileAsString
Close #1

debug.print FileAsString

Je n'ai pas le fichier en entier. Je ne reçois que les premières lignes (je sais immédiate de la fenêtre de coupe, mais ce n'est pas la question. Je ne suis certainement pas l'obtention de l'intégralité du fichier en ma chaîne). J'ai aussi essayé d'utiliser une méthode alternative à l'aide de l'objet système de fichiers, et obtenu des résultats similaires, mais cette fois avec beaucoup de caractères bizarres et des points d'interrogation jeté dans. Cela me fait penser que c'est probablement une sorte de problème de codage. (Bien que franchement, je ne comprends pas tout ce que cela signifie. Je sais qu'il existe différents formats d'encodage et que cela peut provoquer des problèmes avec le traitement de chaîne, mais c'est tout.)

Donc, plus généralement, voici ce que j'aimerais vraiment savoir: Comment puis-je utiliser vba pour ouvrir un fichier de n'importe quelle extension (qui peut être affiché dans un éditeur de texte) et la longueur (qui ne dépasse pas VBA de la chaîne de la limite), et assurez-vous que quel que soit les personnages, je voudrais voir dans un éditeur de texte de base sont ce qui est lu dans une chaîne de caractères? (Si ça peut pas être (facilement) fait, je serais certainement apprécier d'être orientés vers une méthode qui est susceptible de travailler avec .les fichiers html) Merci beaucoup pour votre aide

EDIT:
Voici un exemple de ce qui se passe lorsque j'utilise la méthode suggérée. Plus précisément

    Dim oFSO As Object
    Dim oFS As Object, sText As String

    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFS = oFSO.OpenTextFile(Path)

    Do Until oFS.AtEndOfStream
        sText = oFS.ReadAll()
    Loop
    FileToString = sText

    Set oFSO = Nothing
    Set oFS = Nothing

End Function

Je vais vous montrer à la fois le début (par l'intermédiaire d'une boîte de message) et la fin (par la fenêtre) parce que les deux sont bizarre de différentes manières. Dans les deux cas, je vais le comparer à une capture d'écran de la source html affiché dans google chrome:

Début:
Lire Fichier HTML Local en Chaîne Avec VBA

Lire Fichier HTML Local en Chaîne Avec VBA

Fin:
Lire Fichier HTML Local en Chaîne Avec VBA

Lire Fichier HTML Local en Chaîne Avec VBA

  • Pouvez-vous fournir un exemple de l'encodage du texte?
  • Une recherche rapide sur ici a montré d'autres questions similaires. Peut-être que cela pourrait aider: stackoverflow.com/questions/1376756/...
  • Les points d'interrogation sont généralement indicatif de double-byte unicode des caractères qui ne sont pas représentés dans toutes les polices ou les systèmes d'exploitation... vous pouvez essayer d'utiliser un ADODB flux de lire le contenu, mais je soupçonne qu'il ya un problème avec votre document HTML.
  • J'ai ajouté les captures d'écran du fichier d'origine, ainsi que les résultats que j'obtiens lors de la tentative de lecture dans une chaîne à l'aide de la upvoted méthode ci-dessous. (J'apprécie vraiment votre aide)
  • Comment êtes vous économisez de l'html? Si j'enregistre une page de ce site manuellement et utiliser mon code ci-dessous tout fonctionne comme prévu avec pas de double interligne. Il pourrait être votre méthode de récupérer les données plutôt que de les importer html/fichiers texte qui est la question.
  • le contenu de ce fichier est la .responseText d'un objet XMLHTTP. Pourrait être le problème est quelque peu arbitraire ".html" que j'ai ajouté à la fin o le nom de fichier?
  • en passant, j'ai essayé simplement de changer l'extension, (lorsque le fichier est créé) et il n'a pas de résoudre le problème.

InformationsquelleAutor ebrts | 2013-08-17