# Bestimmte Stellen aus Quelltext auslesen



## Freddy84 (31. Oktober 2004)

Servus,

ich versuche ein Programm zu schreiben, das mir bestimmte Stellen aus einem Quelltext ausliest, den ich zuvor aus dem Internet geladen und in eine Textdatei die eine größe von 32KB hat gespeichert habe.

Allerdings befindet die sich auszulesenden Teilbereiche immer an unterschiedlich Stellen.

Ich hatte mir gedacht den gesamten Quelltext Zeilenweise einzulesen und dann jede eingelesen Zeile mit folgendem Quellcode einzulesen: 


```
Private Sub Command1_Click()
strarray = Split(Text1, Chr$(34))
If UBound(strarray) >= 2 Then
Text2 = strarray(3)
End If
End Sub
```
 
Mein Problem ist, das der das dann bei jeder Zeile machen möchte, ich will aber nur bestimmte Zeilen, die er noch rausfinden muss nach diesem Prinzip auflösen.

Hier ist mal ein kleines Beispiel aus dem Quelltext:



> <TR vAlign=top>
> 
> <TD align=left width="73%"><A href="Link">Titel</A> <BR><SPAN class=small>Angebotsnummer: nr</SPAN>
> 
> ...


Die grünen Sachen würde ich nun gerne auslesen. Nur hab ich absolut keine Ahnung wie ich das ganze anstellen soll.

Mein nächstes Problem ist, das ich nicht so geübt in Visual Basic bin, daher wäre es hilfreich wenn Ihr mir das ganze gut verständlich erklären könntet.

Gruß

Freddy


----------



## Freddy84 (3. November 2004)

Weiß denn wirklich keiner weiter?


----------



## gabrielgsell (3. November 2004)

Hallo
Schau dir doch mal diese Funktionen an:
InStr(), Left(), Right(), Mid()
Evtl. kannst du damit was anfangen.

Grüsse


----------



## MatMagic (8. November 2004)

Wenn du das noch nicht hinbekommen hast würde ich dir einen Code dafür schreiben.
Also nochma posten wenn du es nicht hinbekommst.


----------



## Freddy84 (9. November 2004)

Hi, danke für die Antwort.

Ich habe es leider immer noch nicht hinbekommen 

Keine Ahnung wie ich das anstellen soll.


----------



## MatMagic (12. November 2004)

Dein Quelltext:
_<TR vAlign=top>
<TD align=left width="73%"><A href="Link">Titel</A> <BR><SPAN class=small>Angebotsnummer: nr</SPAN> 
<P><A href=""><IMG height=16 src="" width=205 border=0></A> </P></TD>
<TD align=middle width="8%"><B><SPAN class=small>1</SPAN></B> </TD>
<TD align=middle width="10%"><SPAN class=small>EUR preis</SPAN> </TD></TR>
<TR>
<TD colSpan=3>
<HR noShade SIZE=1>
</TD></TR>_

Also ich würde es so machen das du im Quelltext nach einer bestimmten Zeichenfolge VOR dem Teil den du auslesen möchtest suchst. Nach dieser Zeichenfolge lässt du dein Programm suchen und dann nach dem Zeichen welches direkt hinter dem Text den du auslesen möchtest steht. Im Fall von "Link" auslesen musst du also 1. nach z.B. "href=" suchen.  2. Nach dem Zeichen danach suchen in diesem Fall ">"
In meinem Bsp. gehe ich davon aus das deine TXT Datei "quellcode.txt" heisst und du den Code in ein Textfeld namens "txteingelesen" einliest.

Der CODE:

```
Dim a As Long
Dim b As Long
Dim c As String
Dim d As Long
Dim e As String
Dim datei As String
Dim zeilen As String
Dim linkvar As String
Dim titelvar As String

'Textfeld "txteingelesen" erstellen
'Textfeld "txtergebnis1" erstellen
'Textfeld "txtergebnis2" erstellen
'txtDatei "quellcode.txt" nennen (ins gleiche Verzeichnis wie Prog)
'command button "cmdstart" erstellen

Private Sub cmdstart_click()
datei = "quellcode.txt"
Open datei For Input As 2
Do Until EOF(2) = True
Line Input #2, zeilen
txteingelesen.Text = txteingelesen.Text & zeilen & vbCrLf
Loop
Close 2
'
'****** Erstes Textstück suchen
a = Len(txteingelesen)
b = InStr(txteingelesen, "href=") 'den vorderen Teil suchen
b = b + 6 'höhe kommt auf den Suchstring an
c = Mid(txteingelesen, b, a - b)
d = InStr(c, ">") 'den hinteren Teil suchen
d = d - 2 'höhe kommt auf den Suchstring an
e = Left(c, d)
'von hier aus kann "txteingelesen" die Daten von "c" übergeben bekommen
'also
txteingelesen.Text = c
'und das suchergebnis "e" an eine variable übergeben
linkvar = e
'dann wird ab der Stelle "c" weitergesucht
'zum Beispiel mit diesem weiterführenden Code
'
'****** Nächstes Textstück suchen
a = Len(txteingelesen)
b = InStr(txteingelesen, ">") 'den vorderen Teil suchen
b = b + 1 'höhe kommt auf den Suchstring an
c = Mid(txteingelesen, b, a - b)
d = InStr(c, "<") 'den hinteren Teil suchen
d = d - 1 'höhe kommt auf den Suchstring an
e = Left(c, d)
'So kannst du das Spielchen nun weiterführen bis du alle Stellen ausgelesen hast
titelvar = e
'
txtergebnis1.Text = linkvar
txtergebnis2.Text = titelvar
End Sub
```
Auf Funktion getestet......
Ich hoffe du kommst jetzt klar !
Solltest du immer noch Schwierigkeiten haben melde dich halt nochmal.
Und melde dich doch für den Newsletter an - bei dem Link in meiner Signatur.


----------

