HTML Quelltext 'anzeigen'

Moin,
Ich habe gelesen das es für VB ein Internet-Protokoll gibt.
Damit sollte es doch Möglich sein den Quelltext einer Seite anzeigen zu lassen, oder ?
hat evtl. jemand ein BSP ?

Danke MFg joe

Hallo joe,

zum Anzeigen des Quelltextes hat man einen Browser!

Ne, Scherz beiseite. Den Quelltext kannst du idR direkt aus dem Browser anzeigen lassen (IE: rechte Maustaste, Quelltext anzeigen). Das klappt solange, wie der Quelltext „einfaches HTML“ ist und etwaiges Script direkt drin steht. Bei Seiten die aus PHP, ASPx etc gemacht sind, sieht man das Ergebnis der „Sprache“ als HTML, also nicht wirklich den Quelltext. Außerdem kann man auch quasi externe Elemente (css, Ajax, …) einbinden. Die sieht man, oder auch nicht … Von Flash etc will ich mal ganz schweigen, hab da auch keine Ahnung, was man sehen könnte.

Kannst du daher deine Frage etwas präzisieren? Was willst du erreichen? Kann es sein, dass du per VB bestehnden Quelltext ändern möchtest?

mfg

Dirk.Pegasus

Hi Joe,

sieh mal weiter unten …

http://www.wer-weiss-was.de/cgi-bin/forum/showarchiv…

Gruß, Rainer

nabend,
Soweit so gut. Doch habe ich wieder das Problem das ich die Ausgabe nicht sehe…
was habe ich vergessen ?

Private Sub Winsock1\_DataArrival(ByVal bytesTotal As Long)
Dim Data$
Dim Teil() As String
Dim Ausgabe As String
Dim I As Integer

Winsock1.GetData Data, vbString

Teil = Split(Data, "


> <small>[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]</small>

Hi Joe,

Soweit so gut. Doch habe ich wieder das Problem das ich die
Ausgabe nicht sehe…
was habe ich vergessen ?

hmmm, ich seh’s nicht. :frowning: Mail doch mal den Link, dann kann ich testen, sehe im Debugger, was nicht geht.

Hast Du mit dem Debugger geprüft, ob die Prozedur durchlaufen wird? Winsock liegt auf der Form?

Gruß, Rainer

Konnte mein Problem schon eingrenzen.

Ausgabe = Left(Teil(I), InStr(Teil(I), „ok“))
List1.AddItem Teil(I)
'List1.AddItem Ausgabe

Die List1.AddItem Teil(i) Funktioniert aber mit List1.Additem Ausgabe Listet er nur Leere Zeilen.

Ich Poste malden ganzen Code:

> im modul

Public Cmd$, URL$



> Form

Option Explicit

Private Sub Command1\_Click()
URL = "http://www.xdclan.de/test.html"
Command1.Enabled = False
MousePointer = vbHourglass
DoEvents
Winsock1.RemoteHost = "xdclan.de"
Winsock1.RemotePort = 80
Winsock1.Connect
End Sub

Private Sub Command2\_Click()
End
End Sub

Private Sub Winsock1\_Close()
Command1.Enabled = True
MousePointer = vbDefault
End Sub

Private Sub Winsock1\_Connect()

Cmd = "GET " & URL & " HTTP/1.0" & vbCrLf & "Accept: \*/\*" & \_
vbCrLf & "Accept: text/html" & vbCrLf & vbCrLf

Winsock1.SendData Cmd
End Sub

Private Sub Winsock1\_DataArrival(ByVal bytesTotal As Long)
Dim Data$
Dim Teil() As String
Dim Ausgabe As String
Dim I As Integer

Winsock1.GetData Data, vbString

Teil = Split(Data, "

Hi Joe,

ich habe Deinen Code getestet … Du suchst nach ‚ok‘, wo ‚OK‘ steht. :smile:

Funktioniert! Du hast den Tipp, bein Suchen Ucase zu verwenden nicht beachtet … *fg*

Ausgabe = Left(Teil(I), InStr(UCase(Teil(I)), "OK"))

das findet ‚ok‘ und ‚OK‘ und ‚Ok‘ … und verändert die Ausgabe nicht.

Noch ein Tipp, beende Winsock ordentlich, bevor Du das Programm abschießt.

Private Sub Command2\_Click()
 Winsock1.Close
 End
End Sub

Gruß, Rainer

Hi Rainer,
Schuldig im SInne der Anklage …
Auf der Arbeit hat alles noch Wunderbar Funktioniert und da war ich mit dem Laptop über ein UMTS Handy ins Internet.
Nun bin ich zu hause und mein Programm schreibt max noch HTML in die erste Zeile. KP Warum.
Ich kann die Seite im Explorer öffnen … (Ja es ist nur ein halber HTML Code. aber das ging vorher ja auch )

hast du ne Lösung?

HMPF. nun geht es erstma … Warum auch immer … hat wohl „Angst“ bekommen…

melde mich wieder / THX

Hi Joe,

HMPF. nun geht es erstma … Warum auch immer … hat wohl
„Angst“ bekommen…

*gg* bei mir lief der Code bestens, seit ich Ucase() eingebaut hatte, die Liste wurde mit ca. 20 Zeilen gefüllt.

Bis dann,

Gruß, Rainer

Wie gesagt bei mir auch , heute Mittag.
Nun hat es erst 1 von 20 mal funktioniert.
Würdest du es nochmal testen ?
Ping zum Server 20ms …da ist alles bestens.
Aber ich bekomme nur HTTP/1.1 200 O angezeigt…und EierUhr.
(Warum wird das O vom OK angeizeigt ? aber aber nebensächlich.
und wie kann ich mit Ausgabe = Replace(Ausgabe, „:“, " ")
Anführungszeichen entfernen) ?
Aber erstmal muss der **** laufen.
Wer mich auch nochmal im debuggen probieren.

mfg joe

Hi Joe,

noch mal der ganze Code mit der letzten Änderung.

Gerade gestartet, läuft perfekt.

Option Explicit

Private Sub Command1\_Click()
URL = "http://www.xdclan.de/test.html"
Command1.Enabled = False
MousePointer = vbHourglass
DoEvents
Winsock1.RemoteHost = "xdclan.de"
Winsock1.RemotePort = 80
Winsock1.Connect
End Sub

Private Sub Command2\_Click()
End
End Sub

Private Sub Winsock1\_Close()
Command1.Enabled = True
MousePointer = vbDefault
End Sub

Private Sub Winsock1\_Connect()

Cmd = "GET " & URL & " HTTP/1.0" & vbCrLf & "Accept: \*/\*" & \_
vbCrLf & "Accept: text/html" & vbCrLf & vbCrLf

Winsock1.SendData Cmd
End Sub

Private Sub Winsock1\_DataArrival(ByVal bytesTotal As Long)
Dim Data$
Dim Teil() As String
Dim Ausgabe As String
Dim I As Integer

Winsock1.GetData Data, vbString

Teil = Split(Data, "

Daran liegt's nicht, denke ich.

(Korrektur, 43 Zeilen in der Liste.)

Gruß, Rainer

Evtl Läst sich das Problem durch einen Neustart des Programms oder des Betriebssystems beheben :stuck_out_tongue: JA !!

Warum wird hier das O am Ende trotzdem mit ausgegeben ?
Ausgabe = Left(Teil(I), InStr(UCase(Teil(I)), „OK“))
„101310011/WPAJ/1“>WPAJ:1:J4045000312:101310011/WPAJ/1:open_mouth:

Wie kann ich den Text zwischen den Anführungszeichen entfernen inkl. Anführungszeichen?

mfg jonny & Danke

Hi Joe,

Evtl Läst sich das Problem durch einen Neustart des Programms
oder des Betriebssystems beheben :stuck_out_tongue: JA !!

*gg*

Warum wird hier das O am Ende trotzdem mit ausgegeben ?
Ausgabe = Left(Teil(I), InStr(UCase(Teil(I)), „OK“))
„101310011/WPAJ/1“>WPAJ:1:J4045000312:101310011/WPAJ/1:open_mouth:

Weil wir falsch zählen. :smile: Beispiel:

„12345“ suchen wir nach „5“ bekommen wir ‚5‘, das fünfte Zeichen. Nun schneiden wir ‚5‘ Zeichen von links ab, „12345“. die 5 ist mit drin. Es fehlt also ein ‚-1‘.

Ausgabe = Left(Teil(I), InStr(UCase(Teil(I)), „OK“)-1)

Das führt aber zu einem Fehler, wenn kein ‚OK‘ gefunden wird. Das muß also abgefangen werden.

Das Modul habe ich hier auch endlich mal weggeworfen … :smile:

Wie kann ich den Text zwischen den Anführungszeichen entfernen
inkl. Anführungszeichen?

Du willst das so:

Option Explicit

Dim Cmd$, URL$

Private Sub Command1\_Click()
URL = "http://www.xdclan.de/test.html"
Command1.Enabled = False
MousePointer = vbHourglass
DoEvents
Winsock1.RemoteHost = "xdclan.de"
Winsock1.RemotePort = 80
Winsock1.Connect
End Sub

Private Sub Command2\_Click()
End
End Sub

Private Sub Winsock1\_Close()
Command1.Enabled = True
MousePointer = vbDefault
End Sub

Private Sub Winsock1\_Connect()

Cmd = "GET " & URL & " HTTP/1.0" & vbCrLf & "Accept: \*/\*" & \_
vbCrLf & "Accept: text/html" & vbCrLf & vbCrLf

Winsock1.SendData Cmd
End Sub

Private Sub Winsock1\_DataArrival(ByVal bytesTotal As Long)
Dim Data$
Dim Teil() As String
Dim Ausgabe As String
Dim I As Integer
Dim po1 As Integer
Dim po2 As Integer
Dim t1 As String
Dim t2 As String

Winsock1.GetData Data, vbString

Teil = Split(Data, " 0 Then
 Ausgabe = Left(Teil(I), InStr(UCase(Teil(I)), "OK") - 2)
 po1 = InStr(Ausgabe, """")
 po2 = InStr(po1 + 1, Ausgabe, """")
 Ausgabe = Right(Ausgabe, Len(Ausgabe) - po2 - 1)
Else
 Ausgabe = ""
End If
List1.AddItem Ausgabe
Next

End Sub

Stimmt’s? Dann geht’s auch ohne Replace. :smile:

Gruß, Rainer

Hi Rainer,
Stimmt, so geht es auch ohne Replace und Funktioniert!
Ich frage mich noch warum in der letzten Zeile der Anfang abgeschnitten wird. Da Fehlt das WTRA:1 aber warum :confused: und wo kommt die leerzeile darüber her ? auch wenn diese erstma nicht schlimm ist.

mfg jonny

(Danke)

Hi Joe,

Stimmt, so geht es auch ohne Replace und Funktioniert!

Mit Replace hätten wir den Text nicht weg bekommen, weil Replace kein ‚Like‘ kennt. Du hast aber die vier " im Instr() gesehen? Das war deine eigentliche Frage …

Ich frage mich noch warum in der letzten Zeile der Anfang
abgeschnitten wird. Da Fehlt das WTRA:1

??? bei mir nicht. Hast Du Lan-Probleme?

aber warum :confused: und wo
kommt die leerzeile darüber her ? auch wenn diese erstma nicht
schlimm ist.

Die Leerzeichen sind klar, da ist kein OK. Du kannst ja im Strang ‚Else‘ mal

Ausgabe = „“

durch

Ausgabe = Teil(I)

ersetzen, dann bekommst Du die ganze Zeile und siehst, warum da kein OK ist. Dei leere Zeile wird durch die Zuweisung von nichts erzeugt. :smile:

Gruß, Rainer

Moin Rainer.
Wenn ich das so laufen lasse bekomme ich als Ausgabe:
Wobei die Vorletzte Zeile das ELSE Teil(i) ist …aber warum wird da erst beim :getrennt , hmpf

WSPA:1:L1031733373:101310011/WSPA/1
WSPA:2:4H035067586:101310011/WSPA/2
WSPC:1:1M062644411:101310011/WSPC/1
WSPC:3:1M062716089:101310011/WSPC/3
WSPC:2:4H050460082:101310011/WSPC/2
WTRA:3:L1031840237:101310011/WTRA/3
WTRA:2:L1031840872:101310011/WTRA/2
"101310011/WTRA/1"\>WTRA:


> L1031841609:101310011/WTRA/1

mfgjoe

Hi Joe,

Wenn ich das so laufen lasse bekomme ich als Ausgabe:
Wobei die Vorletzte Zeile das ELSE Teil(i) ist …aber warum
wird da erst beim :getrennt , hmpf

WSPA:1:L1031733373:101310011/WSPA/1
WSPA:2:4H035067586:101310011/WSPA/2
WSPC:1:1M062644411:101310011/WSPC/1
WSPC:3:1M062716089:101310011/WSPC/3
WSPC:2:4H050460082:101310011/WSPC/2
WTRA:3:L1031840237:101310011/WTRA/3
WTRA:2:L1031840872:101310011/WTRA/2
„101310011/WTRA/1“>WTRA:

L1031841609:101310011/WTRA/1

hmmm, das hat bei mir gestern nicht so ausgesehen … hier kann ich das nicht testen, ich komme nicht mit einem VB-Programm in’s Internet.

Gruß, Rainer

Moin,
bin wieder auf Replace zurückgefallen :confused: aber so geht es.

Nochma ne frage zu dem Code unter dem Text.
Das Mit List1.Additem Unit(1) … (5) geht nicht immer weil sobald BSP
Unit(5) Leer ist bekomme ich nen error. Richtig ?
Wenn ich jetzt prüfe

IF Unit(5) 0 then
list1.Additem Unit(5)
End IF
Müsste es doch gehen oder nicht ?

Private Sub ViewUnit()
Dim Unit() As String
Dim I As Integer
Unit = Split(Ausgabe, " ")
For I = LBound(Unit) To UBound(Unit)
List1.AddItem Unit(1)
List1.AddItem Unit(2)
List1.AddItem Unit(3)
List1.AddItem Unit(4)
List1.AddItem Unit(5)
Next
End Sub

Hi Joe,

Nochma ne frage zu dem Code unter dem Text.
Das Mit List1.Additem Unit(1) … (5) geht nicht immer weil
sobald BSP
Unit(5) Leer ist bekomme ich nen error. Richtig ?

Nein, Du kannst in die Liste auch eine leere zeile einfügen. Mit

Ausgabe = „“
List1.Additem(Ausgabe)

Mache ich das ja.

Wenn ich jetzt prüfe

IF Unit(5) 0 then

Unit ist als String definiert, die Null ist numerisch, die Prüfung ergibt immer falsch, weil ein String nie gleich 0 ist. Auch nicht, wenn da „0“ steht.

list1.Additem Unit(5)
End IF
Müsste es doch gehen oder nicht ?

Nicht. oder nur vertippt und Du meinst:
If Len(Unit(i)) 0 Then

Das geht, das entfernt die leeren Zeilen, wenn Dich die stören.

 Private Sub ViewUnit()
 Dim Unit() As String
 Dim I As Integer

 Unit = Split(Ausgabe, " ")

 For I = LBound(Unit) To UBound(Unit)
 List1.AddItem Unit(I)
 Next
 End Sub


> 

Du hast doch ein Array und die Zählschleife ist auch schon richtig. Dann mußt Du die Zählvariable auch verwenden, sonst werden die Zeilen mehrfach ausgegeben.

Splitten bei jedem Leerzeichen? Ist das so gemeint? Wenn der Text Zeilenweise kommt, ist eventuell …

Split(Ausgabe, VbCrLf)

… das was Du suchst. Das zerlegt den Text in die Zeilen, in denen er im Quellcode steht.

Gruß, Rainer