PDA

Vollständige Version anzeigen : Textdatei nach Schlüsselworten durchsuchen


Frank123
06.10.2002, 15:33
Hallo,

ich möchte eine Textdatei nach bestimmten Schlüsselworten durchsuchen die den Anfang und das Ende markieren und den Text zwischen diesen einlesen.

z.B. ANFANG diesen Text einlesen ENDE

ANFANF bzw. ENDE -> Schlüsselwort
diesen Text einlesen -> Text den ich einlesen will

ich benutze volgenden Code:

Private Sub Dateilesen_Click()
Dim ZeileTxt As String
Dim GanzerTxt As String

On Error GoTo FehlDatei
Open "c:\README.TXT" For Input As #1

Do While Not EOF(1)
Line Input #1, ZeileTxt
GanzerTxt = Mid(ZeileTxt, 1, 15) ' Zeichen einlesen
GanzerTxt = GanzerTxt & Chr(13) & Chr(10) & ZeileTxt 'kompletter Text einlesen
Loop
Me.[Mein_Text] = GanzerTxt
Close #1
Ausgang:
Exit Sub

FehlDatei:
MsgBox Err.Description
Resume Ausgang
End Sub

wobei die doppelte Pasage meine beiden Varianten sind die ich kenne.

kann mir jemand helfen?

mfg
Frank

Lothi
06.10.2002, 18:35
Hallo Frank

Diese Function sollte dir helfen

<FONT SIZE=2 FACE=Courier New><FONT COLOR=#008000>'Text zwischen zwei Textstellen finden</FONT>
<FONT COLOR=#008000>'*************************************</FONT>
<FONT COLOR=#008000>'Function aus dem ACCESS-VBA CODEBOOK von Griesshammer</FONT>

<FONT COLOR=#008000>'Sie heben einen Text, aus dem sie einen Teil herausschneiden möchten,</FONT>
<FONT COLOR=#008000>'der zwischen zwei bekannten Satzbausteinen</FONT>
<FONT COLOR=#008000>'liegt</FONT>

<FONT COLOR=#008000>'strValue = Der eingelesene Text</FONT>
<FONT COLOR=#008000>'strFirstStep = Textteil beginn der Suchmarke (optional)</FONT>
<FONT COLOR=#008000>'strSecondStep = Textteil der das Ende angibt (Optional)</FONT>

<FONT COLOR=#008000>'Die beiden trennmarken sind optional d.h. eine oder beide können weggelassen werden.</FONT>
<FONT COLOR=#008000>'Ohne Trennmarken liefert die Funktion lediglich den von führenden</FONT>
<FONT COLOR=#008000>'und nachfolgenden Leerzeichen befreiten Suchtext zurück.</FONT>

<FONT COLOR=#008000>'Wird strFirstStep weggelssen, wird der Text aus strValue bis zum ersten auftreten von strSecondStep</FONT>
<FONT COLOR=#008000>'zurückgegeben</FONT>

<FONT COLOR=#008000>'Wird nur strFirstStep angegeben wird der Text ab dem Auftreten von strFirstStep</FONT>
<FONT COLOR=#008000>' bis zum Ende des Suchtextes zurückgegeben.</FONT>
--------------------------------------------------------------------------------
<FONT COLOR=#808080><HR></FONT>

<FONT COLOR=#000080>Public</FONT> <FONT COLOR=#000080>Function</FONT> GetStringBetweenSeperators( _
<FONT COLOR=#000080>ByVal</FONT> strValue <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>String</FONT>, _
Optional <FONT COLOR=#000080>ByVal</FONT> strFirstStep <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>String</FONT>, _
Optional <FONT COLOR=#000080>ByVal</FONT> strSecondStep <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>String</FONT> = "") <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>String</FONT>

<FONT COLOR=#000080>Dim</FONT> strTemp <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>String</FONT>
<FONT COLOR=#000080>Dim</FONT> intFoundFirst <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>
<FONT COLOR=#000080>Dim</FONT> intFoundSecond <FONT COLOR=#000080>As</FONT> <FONT COLOR=#000080>Integer</FONT>

<FONT COLOR=#000080>On</FONT> <FONT COLOR=#000080>Error</FONT> <FONT COLOR=#000080>Resume</FONT> <FONT COLOR=#000080>Next</FONT>

<FONT COLOR=#000080>If</FONT> strSecondStep = "" <FONT COLOR=#000080>And</FONT> <FONT COLOR=#000080>Not</FONT> strFirstStep = "" <FONT COLOR=#000080>Then</FONT>

strTemp = Trim(Mid(strValue, InStr(strValue, strFirstStep) _
+ Len(strFirstStep)))

<FONT COLOR=#000080>ElseIf</FONT> strFirstStep = "" <FONT COLOR=#000080>And</FONT> <FONT COLOR=#000080>Not</FONT> strSecondStep = "" <FONT COLOR=#000080>Then</FONT>

strTemp = Trim(Mid(strValue, 1, InStr(strValue, strSecondStep) - 1))

<FONT COLOR=#000080>ElseIf</FONT> strFirstStep = "" <FONT COLOR=#000080>And</FONT> strSecondStep = "" <FONT COLOR=#000080>Then</FONT>

strTemp = Trim(strValue)

<FONT COLOR=#000080>Else</FONT>

<FONT COLOR=#000080>Do</FONT> <FONT COLOR=#000080>Until</FONT> intFoundSecond > intFoundFirst

intFoundFirst = InStr(strValue, strFirstStep) + _
Len(strFirstStep)

intFoundSecond = InStr(strValue, strSecondStep)

<FONT COLOR=#000080>If</FONT> intFoundSecond < intFoundFirst <FONT COLOR=#000080>Then</FONT>

intFoundSecond = InStr(intFoundSecond + 1, _
strValue, strSecondStep)

<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>If</FONT>

<FONT COLOR=#000080>Loop</FONT>

intFoundSecond = intFoundSecond - InStr(strValue, strFirstStep) - _
Len(strFirstStep)

strTemp = Trim(Mid(strValue, intFoundFirst, intFoundSecond))

<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>If</FONT>

GetStringBetweenSeperators = strTemp
Debug.<FONT COLOR=#000080>Print</FONT> strTemp
<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>Function</FONT>

</FONT>

<Frank123>
06.10.2002, 19:18
Hallo Lothi,

hat geklappt !! Danke

Frank