zoek stop

Status
Niet open voor verdere reacties.

Tekson

Nieuwe gebruiker
Lid geworden
26 jan 2008
Berichten
4
hallo,

ik heb hier een stukje code maar kom er niet uit verder.

Code:
MessageTwo = "woord1.woord2"

Open App.Path & "\words.txt" For Input As #1
                        While Not EOF(1)
                            Input #1, lstInput$
                            CheckIfIsIn = lstInput$
                            
                            If InStr(LCase(MessageTwo), LCase(CheckIfIsIn)) Then
                            Text1 = CheckIfIsIn
                            End If
Wend
Close #1

Dus in het bestandje words.txt staan een aantal woorden in dit voorbeeld staat er woord1 en woord2 in een rijtje in.

Hij opent dat bestand en kijkt regel voor regel of hij een van die woordjes vind.
Aangezien MessageTwo beide woorden bevat zegt ie dat ie ze allebei heeft.
Wat ik nou wil is dat als ie er eentje gevonden heeft dat ie dan kapt met zoeken.

Alleen ik weet niet hoe :(

Iemand die me hierbij kan helpen?
Dankjewel

Groetjes Tekson
 
Je kan dde "Exit" gebruiken.
Code:
if blablabla then
   DoeIets '....
   exit sub 'of Function, als het een functie is
end if


echter, als je alles met een delimeter splitst in je file (een punt, een comma, een puntcomma, een $-teken, roep het) kan je de Split() functie gebruiken.
noot: ik ben geen kei in arrays dus ik heb m maar van te voren gedeclareerd

Code:
dim sArray(0 to 1000) as string
dim CheckIfIsIn as string
dim MessageTwo as string

Open App.Path & "\words.txt" For Input As #1
                        While Not EOF(1)
                            Input #1, lstInput$
                        Wend
Close #1
CheckIfIsIn = Split(lstInput$, ".") [COLOR="SeaGreen"]'split het door te delen bij elke "."[/COLOR]
MessageTwo = "woord1.woord2"

dim i as long
for i = 0 to 1000
   If InStr(LCase(MessageTwo), Lcase( sArray(i) )) Then
      msgbox "In array nummero " & i & " zit het woord!"
      exit sub [COLOR="SeaGreen"]' of function, als het een functie is[/COLOR]
   end if
next i
Het gaat om het idee, code uit mn hoofd, zit mischien ergens een fout in (of meer dan 1 :P)
 
Laatst bewerkt:
gaat helaas niet op... de timer moet door blijven gaan omdat hij nog een aantal andere functies moet uitvoeren.
 
dan maak je een parse-functie, evt. met labels:....
(hieronder tegelijk gedaan)

Code:
GoTo DoSearch


DoSearch:  'label
MessageTwo = "woord1.woord2"
Open App.Path & "\words.txt" For Input As #1
                        While Not EOF(1)
                            Input #1, lstInput$
                            CheckIfIsIn = lstInput$
                           
                            if DoParse(Checklfsln) = true then
                               Goto GoContinue
                            end if
Wend
Close #1

GoContinue: 'nog een label
AndereFunctie()
NogmeerFuncties()






Function DoParse(sInput as string) as boolean

If InStr(LCase(MessageTwo), LCase(sInput)) Then
                            Text1 = CheckIfIsIn
                            DoParse = true
                            End If
end Function
 
Ben je niet meer opzoek naar iets als dit:

Code:
Option Explicit
Const WOORDENLIJST As String = "c:\woorden.txt"

Private Function zoekWoorden(zoekNaar As String) As String
  Dim sArray() As String, sTemp As String, i As Integer
  sArray = Split(zoekNaar, ";")
  
  Open WOORDENLIJST For Input As #1
    While Not EOF(1)
      Input #1, sTemp
      For i = 0 To UBound(sArray)
        If lcase(sArray(i)) = lcase(sTemp) Then
          zoekWoorden = sTemp
          Exit Function
        End If
      Next i
    Wend
  Close #1
                        
  zoekWoorden = ""
End Function


Private Sub Command1_Click()
  Dim s As String
  s = zoekWoorden("band;motor;")
 MsgBox (s)
End Sub

edit: lcase() vergeten.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan