2017-03-01 1 views
0

Ich bin an VBA gewöhnt, aber ich habe VB .NET nie ausprobiert, und ich muss den Text von 2 Webseiten in eine Textdatei bringen. Dies ist der Code, den ich benutze, aber ich habe Probleme! Welche Änderungen muss ich tun, damit es funktioniert?Inhalt der Webseite in Textdatei schreiben

Public mIE As Object 
Public arrText(1) As String 
Public Const myFile As String = "C:\myTextFile.txt" 

Public Sub Main() 
    Dim arrURL(1) As String 
    Dim i As Byte 

    On Error Resume Next 
    Kill (myFile) 

    ' Define URL 
    arrURL(0) = "http://URL1" 
    arrURL(1) = "http://URL2" 

    For i = 0 To 1 
     'Spawn Internet Explorer 
     mIE = CreateObject("InternetExplorer.Application") 

     arrText(i) = openWebPage(arrURL(i)) 

     mIE.Quit() 
     mIE.Close() 
     mIE = Nothing 
    Next 

    Call saveToTextFile 
End Sub 

Public Function openWebPage(myURL As String) As String 
    With mIE 
     .Top = 0 
     .Left = 0 
     .Height = 800 
     .Height = 600 
     .AddressBar = 0 
     .StatusBar = 0 
     .Toolbar = 0 
     .Visible = True 
     .navigate (myURL) 
    End With 

    openWebPage = mIE.document.body.innerText 
End Function 

Public Sub saveToTextFile() 
    Dim oWriter As New System.IO.StreamWriter(myFile) 
    Dim i As Byte 

    For i = 0 To UBound(arrText) 
     oWriter.WriteLine (arrText(i)) 
    Next 

    oWriter.Close() 
End Sub 

Grüße, Elio Fernandes

+0

Was sind die Probleme, die Sie haben? –

+0

Das Problem, das ich habe, ist in der for-Schleife des Hauptverfahrens. Wenn i = 1, gibt arrText (i) = openWebPage (arrURL (i)) 'Nothing' zurück. Es sollte den Inhalt der 2. URL-Seite zurückgeben. –

Antwort

0

Ich glaube, Sie Argumente haben, die nicht gefunden werden, wie 'fichSGA'. Sie können in Code sein, den Sie nicht angegeben haben. Sie können 'Haltepunkte' in Visual Studio hinzufügen und dann über sie hinweggehen, indem Sie F10 auf einer Standardtastatur drücken. Dann können Sie den Mauszeiger über eine Variable oder ein Element bewegen und es zeigt dessen Wert an. Wenn es nicht da ist, könnte das ein Teil des Problems sein. Hier ist eine super einfache Konsolen App in Vb.NET zum Ausdrucken einer Datei mit einem StreamWriter. In diesem Beispiel wird kein Fehler festgestellt. Stellen Sie daher sicher, dass der Ordner C: \ Test vorhanden ist.

Imports System.IO 

Public Sub WriteTextToFile(text As String, location As String) 
    Using sw = New StreamWriter(location) 
     sw.Write(text) 
    End Using 
    End Sub 

    Sub Main() 
    Dim someText = "I am just some text" 
    Dim someMoreText = "I am more text" 

    Dim combined = someText + Environment.NewLine + someMoreText 

    WriteTextToFile(combined, "C:\Test\Test.txt") 
    End Sub