Avatar billede ugologic Nybegynder
08. juli 2013 - 13:35 Der er 3 kommentarer og
1 løsning

Tjekke om linje i txt-fil indeholder noget fra tekststregn (InStr)

Hej,

Jeg har følgende tekststreng (eksempler):

strTest = "ABC, DEF, GHI, JKL" (denne kan variere, det der skal tjekkes på skal separeres af komma)

Jeg gennemløber en txt-fil der tjekker om linjen indholder enten "ABC", "DEF", "GHI" osv osv.

Jeg har rodet lidt med InStr. Jeg kan godt få InStr til at virke, hvis der kun er 1 ord i strTest, fx "ABC". Men den fungerer ikke hvis det er kommasepareret. Og det er vel også logisk nok.

Hvordan løser jeg det nemmest?
Avatar billede supertekst Ekspert
08. juli 2013 - 13:49 #1
Hvis du anvender split funktionen kan du traversere gennem tekstfilen element for element. Derved kan du anvende Instr, hvis du samtidig erklære en konstant med de værdier, du leder efter.
Avatar billede and_ Nybegynder
08. juli 2013 - 13:52 #2
strTeksten = "ffd dfgkdgr dfsaafd gasd fgsda"
strTest = "a, b,c ,d"
arr = split(strTest, ",")

fundet = 0
for i = 0 to ubound(arr)
  if instr(strTeksten, lcase(trim(arr(i)))) > 0 then
    fundet = 1
  end if

  if fundet = 1 then
    'lav noget med ordet og nulstil variablen igen
    fundet = 0
  end if
next
Avatar billede tofte Juniormester
08. juli 2013 - 13:52 #3
Hej, inStr burde virke hvis jeg forstår dig ret.


inStr retunerer positionen af den første forekomst og ikke 0 og 1 som sandhedsværdi
Hvis du skriver:

if inStr(strTest,"ABC")>=1 then

burde det virke også selv om ABS står i en kommasepareret række
Avatar billede and_ Nybegynder
08. juli 2013 - 14:01 #4
jo den returnerer første forekomst.
derfor tjekker jeg også på om instr er større end nul -> dvs at strengen findes i teksten.
Såfremt den ikke findes vil instr være null.

Instr kigger som case-sensitive, derfor jeg lcase'r og trimmer ordet inden jeg kigger.
Derfor burde strTeksten selvf. også lcase's:
  if instr(lcase(strTeksten), lcase(trim(arr(i)))) > 0 then
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