Avatar billede webwally Nybegynder
03. december 2001 - 14:54 Der er 12 kommentarer og
2 løsninger

Søge i tekst...

Hey

Jeg skal bruge koden et program der søger igennem en tekst til den finder ordet \"link\". Så skal den derfra søge tilbage indtil den finder ordet \"Mega\".
Hvordan gør jeg dette?? Teksten står i sådan et tekst-vindue (med multi-lines) i Visual Basic.
Det skulle ikke være såå svært, jeg ved bare ikek lige hvordan man gør det :)
Avatar billede terry Ekspert
03. december 2001 - 14:56 #1
what do you want to do when these words are found?
Avatar billede webwally Nybegynder
03. december 2001 - 15:00 #2
så skal den skrive det som står i mellem de to ord i label1.caption
Avatar billede jennemaan Nybegynder
03. december 2001 - 15:08 #3
Sub ParseText()
Dim iLinkPos as Long
Dim iMegaPos As Long
Dim iPos As Long
iLinkPos=Instr(1,txtDitTekstVindue.Text,\"link\")
If iLinkPos>0 Then \'\"Link was in the text at position iLinkPos\"
  iPos=iLinkPos-4
  While iPos>0 Or iMegaPos>0
    iMegaPos=Instr(iPos,txtDitTekstVindue.Text,\"Mega\")
    iPos=iPos-1
  Wend
End If

If iMegaPos>0 Then
  label1.Caption=Mid(txtDitTekstVindue.Text,iMegaPos+4,iLinkPos-iMegaPos-4)
End If

End Sub

/Jennemaan
Avatar billede terry Ekspert
03. december 2001 - 15:37 #4
label1.Caption = (Mid(SIN, InStr(1, SIN, \"mega\", vbBinaryCompare) + 4, InStr(1, SIN, \"link\", vbBinaryCompare) - (InStr(1, SIN, \"mega\", vbBinaryCompare) + 4)))
Avatar billede terry Ekspert
03. december 2001 - 15:39 #5
There is NO error checking here, so I am assuming that the text field contains data. In this exampel replace SIN with the actual field name.
Avatar billede terry Ekspert
03. december 2001 - 15:49 #6
a simple solution to this (NO ERROR checking is this:

label1.Caption  = getMid(SIN)\'SIN is your text field

Function getMid(SIN As String) As String

On Error Resume Next
    getMid = (Mid(SIN, InStr(1, SIN, \"mega\", vbBinaryCompare) + 4, InStr(1, SIN, \"link\", vbBinaryCompare) - (InStr(1, SIN, \"mega\", vbBinaryCompare) + 4)))
Avatar billede terry Ekspert
03. december 2001 - 15:49 #7
End Function
Avatar billede webwally Nybegynder
03. december 2001 - 16:08 #8
Mange tak, kan I til sidst lige fortælle mig hvordan jeg henter en bestemt tekst-fil (f.eks. C:\\Tekst.txt) ind i text-box???
Avatar billede jennemaan Nybegynder
03. december 2001 - 16:35 #9
Private Sub mOpen_Click()
Dim fn As Integer
fn = FreeFile
Open \"C:\\Tekst.txt\" For Binary As #fn
Text1 = Input(LOF(1), fn)
Close #fn
End Sub

/Jennemaan
Avatar billede webwally Nybegynder
03. december 2001 - 16:37 #10
Tak for den glimrende hjælp, begge to!
Avatar billede webwally Nybegynder
03. december 2001 - 16:47 #11
jennemaan> med den metode du gav mig der så får jeg kun det første bogstav fra tekst.txt ind i Text1 ?????????
Gider du lige hjælpe med det??
Avatar billede webwally Nybegynder
03. december 2001 - 16:48 #12
Eller jeg fandt ud af at med ganske alm. tekst, så kunne den godt, men det er fordi det er en lidt speciel tekstfil jeg åbner som har en masse syge tegn i!!
Avatar billede jennemaan Nybegynder
03. december 2001 - 16:58 #13
Brug
Text1 = InputB(LOF(1), fn)

/Jennemaan

Avatar billede terry Ekspert
03. december 2001 - 18:26 #14
tak :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester