# infos aus html datei auslesen



## Whizzly (29. November 2002)

hallo alle,

also ich schreibe grad ein programm, dass auf eine mitarbeiterdatenbank zugreift, z.b gibt man den namen des mitarb. ein und dann öffnet sich ein internet explorer, in dem alle infos zu seiner person erscheinen...nun zu dem problem:
diese informationen muss ich aus der html-datei auslesen, und in eine listbox eintragen lassen, und (mal abgesehen vom lokalen speichern) ist mein einziges problem, dass mir vb halt stupid die gesamte html datei in die listbox einträgt, was ja auch logisch is!
nun suche ich eine möglichkeit, wie ich nur die benötigten infos auslese, ohne den ganzen <head>, <body> und tagschmarrn...
in der html siehts ca so aus:
<br>
vorname  nbsp´s eine zeile lang
thomas
<br>
nachname nbsp´s(leerzeichen halt) eine zeile lang
mustermann   (gg)
<br>
usw.
usw.

ich will diesen ganzen breakscheiss und die nbsps rauslassen, dass nur "vorname" und "thomas"  oder nur "nachname" und "mustermann"
in der listbox steht...
wie mach ich dat???? kann ich die zeile "vorname", "nachname" nich als tag für vb benutzen, sozusagen : "schreib ab dem "string" vorname"?, und wie krieg ich die formatierungen raus(breaks und nbsp´s)?


danke schonmal 
whizzly


----------



## Dario Linsky (29. November 2002)

Du könntest einfach mit den üblichen Funktionen zur Stringverarbeitung alle HTML-Tags rausfischen und nur das filtern, was Du brauchst. Allerdings würde das wahrscheinlich relativ komplex werden.
Diese Funktionen sind unter anderem InStr, Left, Mid, Right, Len, ...

Eine andere Möglichkeit wäre es, dass Du mit ASP oder PHP nur die Daten in die Ausgabe schreibst, ohne den ganzen HTML-Code.


----------



## Whizzly (29. November 2002)

mhhhm,
danke für deine antwort, aber wie du schon sagtest, die erste möglichkeit wird halt doch etwas krass zu schreiben, und mit php hab ich keinerlei checkung, da setzts bei mir aus, aber mein php-genie-kollege is am montag wieder da, dann hau ich ihn an wegen der methode...


wenn noch wer ideen hat, wie man das innerhalb von vb realisieren könnte wär ich auch dankbar...

schönen tag noch
whizzly


----------



## Dario Linsky (29. November 2002)

Müssen die Daten denn unbedingt in einer HTML-Datei liegen oder reicht auch eine normale Textdatei - die kann ja auch problemlos im Browser angezeigt werden, nur halt nicht formatiert.
Ansonsten könntest Du auch einfach zwei Dateien erstellen - einmal HTML und einmal Plain-Text.


----------



## Whizzly (29. November 2002)

hmmm,

die Informationen werden mir von der Datenbank in eine html datei geschrieben.... 
aber selbst wenn ich die htmldatei in eine textdatei umwandel, hab ich doch immernoch den ganzen formatierungsscheiss drinstehn, nur dasser keine bedeutung mehr hat (weil nich interpretiert) oder täusch ich mich??


----------



## Dario Linsky (29. November 2002)

Du liest doch mit PHP oder ASP die Daten aus der Datenbank aus, und schreibst diese dann in die Ausgabe. Dabei kannst Du doch auch den ganzen HTML-Code einfach weglassen.
HTML-Dateien sind ja auch nur Textdateien, aber haben nun mal die ganzen Formatierungs-Tags mit drin. Wenn Du die HTML-Tags einfach weglässt, dann hast Du eine Datei, die nur Text enthält.

Also einfach nur die Daten auslesen und mit *echo* bzw. *Response.Write* in die Ausgabe schreiben - OHNE HTML-Code.


----------



## Whizzly (29. November 2002)

hallo nochmal,

ich glaub du missverstehst mich...

ich hab keinen direkten zugriff auf die datenbank, ich übergeb die suchvariablen in der url, woraufhin mir dann eine html seite ausgespuckt wird, in der nunmal html-code steht...
du meinst einen direkten zugriff auf die datenbank, wo ich unabhängig von php die infos dann einzeln aus den zellen les oder(so in der art)?

ich komm nur leider nicht sooo an die datenbank ran,sprich mit der interpretation von php hab ich nichts zu tun, des muss ich mit der url machen, deshalb gibts wahrscheinlich auch keine möglichkeit, das format der ausgabe zu beeinflussen.....


----------



## Dario Linsky (29. November 2002)

Dann wirst Du wohl oder übel in den sauren Apfel beissen müssen und den HTML-Code durchwühlen. Was allerdings meiner Meinung nach eine ziemlich fehleranfällige Lösung ist.
Kannst Du nicht den PHP-Programmierer fragen, ob es möglich ist, eine zweite Ausgabe zu machen, in der nur der Text ohne HTML ausgegeben wird? Das sollte eigentlich kein besonders grosser Aufwand sein und wäre deutlich effektiver.

Oder Du greifst aus dem Programm heraus direkt auf die Datenbank zu, was ja auch eigentlich kein besonders grosses Problem darstellen sollte (zumindest nicht, wenn man die Zugangsdaten hat).


----------



## Whizzly (29. November 2002)

k dann hab ich dich richtig verstanden gg!

ja mit den zugangsdaten schauts recht madig aus, aber dann wärs halt himmlisch einfach... naja, dann zerbeiss ich halt den html-code, aber dazu nochmal die frage: kann ich vb sagen, es soll in dieser html datei nach einem string "nachname" oder "vorname" suchen, und alles was dahinter steht ausgeben?(oder fantasier ich mir mal wieder wat zusammen???) diese nachname, vorname dinger stehen halt immer dabei, deshalb würd ich die gern nutzen...

p.s. das ist ma ein mod!  da sollten sich andere eine scheibe abschneiden...danke für deine hilfe


----------



## Dario Linsky (29. November 2002)

Klar geht das, dazu gibt es die InStr()-Funktion. Die gibt Dir die Stelle im String zurück, wo der gesuchte String steht. Dann schneidest Du einfach mit Mid() den Suchbegriff aus - et voilà. 
Genaueres zu den beiden Funktionen steht in der Onlinehilfe, sollte aber auch hier im Board zu finden sein.



> da sollten sich andere eine scheibe abschneiden


Nix da! Ich bleib ganz, ich bin auch so schon klein genug.


----------



## Whizzly (29. November 2002)

*lol*

k

ich danke dir echt von ganzem herzen *gg*

und vielleicht ist "als vorbild nehmen" die weniger gewalttätige formulierung...nich dass mich da noch wer beim wort nimmt h3h3


----------



## schleeper (17. Dezember 2002)

*hui*

hi
frage zu html dateien bearbeiten ect...
ich hab von meinem webspaceprovider ein webinterface zum sms verschicken. so nu will ich an VB programm schreiben, das mich automatisch einloggt und die nachricht verschickt....
frage: wie kann ich die html formulare mit vb bearbeiten???


----------



## Dario Linsky (17. Dezember 2002)

Am einfachsten wäre das wohl mit einem WebBrowser-Steuerelement, bei dem Du einfach die Formulare ausfüllst und die Daten übermittelst. Alternative dazu ist, dass Du Dir einfach den HTML-Code auseinanderrupfst und die Daten direkt über das HTTP-Protokoll hinschickst.
Allerdings fällt das schon irgendwie unter die Kategorie "Wie bescheiss ich einen SMS-Anbieter?". Die meisten dieser Anbieter haben in ihren AGB's stehen, dass man keine automatisierten Programme über deren Service laufen lassen darf. 
Theoretisch ist das jedenfalls machbar aber in den meisten Fällen illegal - soweit ich weiss jedenfalls.


----------



## schleeper (17. Dezember 2002)

naja...ich zahl ja schließlich für die sms....nur das ganze einloggen is mir immer zu stressig....


----------



## Dario Linsky (17. Dezember 2002)

Naja, als erstes musst Du halt den HTML-Code unter die Lupe nehmen und rausfinden, welche Input-Tags wofür da sind. Dann schnappst Du Dir ein WebBrowser-Control und lädst die Seite da rein.
Wenn die Seite geladen ist, kannst Du einfach wie mit normalem JavaScript auf die einzelnen Seitenelemente (in Deinem Fall die Felder in dem Formular) zugreifen und diese mit Daten füllen. Zum Schluss noch abschicken, und schon bist du eingeloggt und hast die Seite gleich mit angezeigt.

Im Prinzip ist das eigentlich ganz einfach. Gemacht hab ich das zwar noch nie, aber eigentlich sollte das so funktionieren.


----------



## schleeper (17. Dezember 2002)

hmm also von javascript hjab ich null peilung...geht das nich irgendwie mit vb???


----------



## Dario Linsky (17. Dezember 2002)

http://www.activevb-archiv.de/vb/VBtips/VBtip0330.shtml
Das musst Du natürlich noch an die Struktur der Seite anpassen.


----------



## schleeper (17. Dezember 2002)

tja...das ding hab ich auch schon, da bekomm ich aba immer fehlermeldungen


----------



## Dario Linsky (17. Dezember 2002)

1. Debuggen!
2. An welcher Stelle treten die Fehler auf?
3. Welche Fehler treten auf?


----------



## schleeper (17. Dezember 2002)

ähm
bei:
With wbrWebBrowser
    .Document.Forms(0).username.Value = "schleeper"
    .Document.Forms(0).password.Value = "xxxxxx"   
  End With

kommt:Laufzeitfehler 91
Objektvariable oder with-blockvariable nicht festgelegt


----------



## Dario Linsky (17. Dezember 2002)

Blubb... pack ein WebBrowser-Steuerelement auf das Formular und nenn es "wbrWebBrowser"! Schnell!!


----------



## schleeper (17. Dezember 2002)

ähm...das hab ich drauf..allerdings wrbMain genannt

With wbrMain
    .Document.Forms(0).username.Value = strUsername
    .Document.Forms(0).Password.Value = strPassword

  End With
so gehts aba au net 
achja...davor hab ich natürlich die url geladen


----------



## Dario Linsky (17. Dezember 2002)

Naja dann... 
Bei welcher Zeile denn genau? Bist Du auch sicher, dass die Formular-Felder genau so heissen, wie Du sie da benennst? Und der Index des Formulars muss auch stimmen, sonst wird des Feld logischerweise auch nicht im Formular gefunden.


----------



## schleeper (17. Dezember 2002)

also bei den felder namen bin ich mir sehr sicher, da ich mich recht gut in html auskenne...
hier ein auszug aus dem quellcode:

<form action=login.php method=post>
<table>
<tr>
<td><font size=-1>Username:</td>
<td><input type=text name=username size=10 maxsize=50></td>
</tr>
<tr>
<td><font size=-1>Passwort:</td>
<td><input type=password name=password size=10 maxsize=50</td>
</tr>
<tr>

und welchen index vom formular meinst du????


----------



## Dario Linsky (17. Dezember 2002)

Komisch, das sollte meiner Meinung nach eigentlich funktionieren. 
Mit Index meinte ich den Index der Forms-Eigenschaft: Forms(0) hat Index 0 - und so weiter. Wenn vorher in dem Code noch ein anderes Formular kommt, dann musst Du den Index natürlich weiter nach hinten verschieben.


----------



## schleeper (17. Dezember 2002)

könnte es daran liegen, dass die index seite der homepage mit frames aufgebaut ist??dann müßt ich irgendwie den "Main" frame auswählen oder so....habs scho versucht des irgendwie ztu machen aber gefuntzt hats au net
Nachtrag:
wenn ich nur den mainframe lade klappts...aber ich möchtr gern die komplette index laden....


----------



## Dario Linsky (17. Dezember 2002)

Was genaues dazu hab ich nicht gefunden, aber versuch mal folgendes:

```
Webbrowser1.Frames(FrameIndex).Document.Forms(0).username.Value = "....."
```

... oder irgendwie so. Probier einfach mal ein bisschen damit rum, im Zweifelsfall hilft das manchmal weiter.


----------



## schleeper (17. Dezember 2002)

also automatischer login funtzt nu....aber bekomm dennoch ne fehlermeldung...die gleiche wie zuvor, allerdings bei:
"wbrMain.Document.Forms(0).submit.Click"
naja mal schaun...bekomm grad beispielprogramme von nem kumpel der schon solche sachen gecodet hat...also wirds denk ich funtzen ...
thx für deine hilfe


----------

