Avatar billede klaaes Nybegynder
25. marts 2004 - 15:56 Der er 29 kommentarer og
1 løsning

Hvad er der imellem?, VB

Hej,

Jeg har brug for at vide hvad der ligger imellem nogle ord i en sætning.

F.eks.
"Jeg er en gammel snabel, ja jeg er så!"

Hvad er imellem: ["er en"] & ["jeg"] = " gammel snabel, ja "

Det må kunne lade sig gøre!

Klaaes
Avatar billede thesurfer Nybegynder
25. marts 2004 - 16:03 #1
prøv:

streng = "Jeg er en gammel snabel, ja jeg er så!"
v = instr(streng, "er en") + len("er en")
h = instr(streng, "jeg")
imellem = mid(streng, v, h-v)
msgbox imellem
Avatar billede thesurfer Nybegynder
25. marts 2004 - 16:04 #2
Se her: http://www.w3schools.com/vbscript/vbscript_ref_functions.asp#string
Se på InStr, Mid, Len
også gerne Left, Right.
Avatar billede klaaes Nybegynder
25. marts 2004 - 16:13 #3
Det kan godt være det er mig der er super amatør, men den siger "Variable not defined", når jeg kører det, og så henviser den til streng. Men det er jo netop en definition!
Avatar billede thesurfer Nybegynder
25. marts 2004 - 16:22 #4
nej, det er det faktisk ikke :-)
skriv:
dim streng, v, h, imellem

og så koden..
Avatar billede klaaes Nybegynder
25. marts 2004 - 16:27 #5
Lidt bedre..
Nu siger den: "Invalid procedure call or argument" og henviser til næstsidste linie!
Avatar billede thesurfer Nybegynder
25. marts 2004 - 16:28 #6
prøv det her:
h = instr(streng, "jeg er så")
Avatar billede klaaes Nybegynder
25. marts 2004 - 16:32 #7
Det skylder jeg lige at fortælle dig!:
Det virker fint med dit eksempel, det er ved et andet eksempel problemet er.

Streng er en lang html kode og jeg ønsker at de steder der står "<img src" , altså der hvor der er et billede, vil jeg hente url'en på billedet.

<img src='\sjovpic\pic.jpg'> - og jeg ønsker altså at få \sjovpic\pic.jpg

Du må undskylde mit forenklede eksempel!
Avatar billede klaaes Nybegynder
25. marts 2004 - 16:35 #8
Hvis du kan hjælpe mig. Og hvis den også kan vise flere billeder fra en side. Så skal jeg nok sætte flere point på spil!
Avatar billede thesurfer Nybegynder
25. marts 2004 - 16:41 #9
så skal vi til at bruge arrays :-)
ser lige om jeg kan smække et eksempel sammen..
det tager nok noget tid, da jeg også er igang med andre spm.. :-)
Avatar billede thesurfer Nybegynder
25. marts 2004 - 17:04 #10
Her er et eksempel:

option explicit
dim streng, v, h, imellem
dim i, astr, urls

streng = "<img src='\sjovpic\pic1.jpg'> noget tekst <img src='\sjovpic\pic2.jpg'>,  tekst <img src='\sjovpic\pic3.jpg'> tekst"

urls = ""
astr = split(streng, "<img src='")
for i = 1 to ubound(astr)
v = instr(astr(i), "<img src='") + 1
h = instr(astr(i), "'>")

imellem = mid(astr(i), v, h-v)

' her sættes urls'ne samme i variablen "urls":
urls = urls & imellem & vbcrlf
next

urls = left(urls, len(urls) - 2)
msgbox "Billeder: " & vbcrlf & urls
Avatar billede klaaes Nybegynder
25. marts 2004 - 17:24 #11
Nu ser det pludselig rigtig godt ud.

Der er bare et problem. jeg skal have "'er med. Hvordan laver jeg " inde i en string? Det skal være "<img src="" - det er vigtigt at den slutter på "!
Avatar billede thesurfer Nybegynder
25. marts 2004 - 17:31 #12
Du erstatter alle " tegn med "" tegn:
streng = "<img src=""\sjovpic\pic1.jpg""> noget tekst <img src=""\sjovpic\pic2.jpg"">,  tekst <img src=""\sjovpic\pic3.jpg""> tekst"

astr = split(streng, "<img src=""")
v = instr(astr(i), "<img src=""") + 1
h = instr(astr(i), """>")
Avatar billede martin_moth Mester
25. marts 2004 - 18:02 #13
Hvis du ikke har fået det løst, er der et 99% identisk spørgsmål jeg engang svare de på her:

http://www.eksperten.dk/spm/258484

PS: Hvorfor skriver du ikke "hent sti til billeder ud af html-dokument" - eller noget der passer lidt bedre end "Hvad er der imellem?, VB"

;o)

Kik på

Mid()
Left()
Right()
Len()
InStr()

Med disse funktioner kan du stort manipulere alle strenge præcist som du vil.
Avatar billede klaaes Nybegynder
25. marts 2004 - 18:05 #14
Det jeg spurgte om virker nu helt perfekt.
Jeg har fået alle billede urls'ne ind i en tekst boks.

Men når jeg skal hav åbnet et billed af gangen, skal jeg vide hvordan man henter en bestemt linie fra en tekst boks?!

jeg er
en
snabel
og du er
i læg

Tekstbox1[linie3] = snabel

Hvordan gør man det?
Avatar billede thesurfer Nybegynder
25. marts 2004 - 18:08 #15
Jeg tror at den ser indholdet som en lang streng, delt af vbCrLf (ny linie)..
så igen kunne man vel bruge arrays, og splitte teksten op ved vbcrlf:

atekst = split(text1.text, vbCrLf)
for i = lbound(atekst) to ubound(atekst)
  if atekst(i) = "snabel" then
    msgbox "jeg har fundet snabel"
  end if
next
Avatar billede thesurfer Nybegynder
25. marts 2004 - 18:13 #16
man kunne også få den til at hoppe ud, efter at den har fundet snabel:

msgbox "jeg har fundet snabel"
exit for
Avatar billede klaaes Nybegynder
25. marts 2004 - 18:24 #17
Hvordan vælger jeg så f.eks. linie 8?
Avatar billede thesurfer Nybegynder
25. marts 2004 - 18:26 #18
hmm.. sådan her?

for i = lbound(atekst) to ubound(atekst)
  if i = 7 then
    msgbox "har fundet linie 8"
  end if
next

da den starter ved 0, er linie 8 = 7
Avatar billede thesurfer Nybegynder
25. marts 2004 - 18:27 #19
det er ikke testet.. og det med "exit for" virker også her, da det virker i alle for-next-løkker..
Avatar billede thesurfer Nybegynder
25. marts 2004 - 18:33 #20
Du kan jo lave en funktion, så du kan nøjes med at bruge: HentLinie(8)
f.eks. (er IKKE testet):

function HentLinie(nummer)
atekst = split(text1.text, vbcrlf)
for i = lbound(atekst) to ubound(atekst)
  if i = nummer - 1 then
    HentLinie = aktekst(i)
    exit for
  end if
next
end function

Se om det virker.. hvis du vil, kan den udvides/udbygges..
Avatar billede klaaes Nybegynder
25. marts 2004 - 19:01 #21
Så er det som det skal være!

Du kan jo lige lave et 'svar'!

Klaaes
Avatar billede thesurfer Nybegynder
25. marts 2004 - 19:13 #22
og et svar er lagt :-)
Avatar billede thesurfer Nybegynder
25. marts 2004 - 19:14 #23
der skal self' kun være 1 kun i aktekst(i) :-)
a står for array..
Avatar billede thesurfer Nybegynder
25. marts 2004 - 19:15 #24
stave kan jeg heller ikke :-)
"kun være 1 'k'"..
Avatar billede klaaes Nybegynder
25. marts 2004 - 19:41 #25
Jeg har arbejdet lidt med det du er kommet med og nu virker det hele som det skal!

Mange tak!

Klaaes
Avatar billede thesurfer Nybegynder
25. marts 2004 - 19:47 #26
Lyder godt :-)
Avatar billede klaaes Nybegynder
25. marts 2004 - 19:49 #27
Hov!
Jeg havde sgu' da lovet dig nogle flere point!

Hvordan klarer vi den? - Det er lang tid siden jeg har brugt eksperten!

Det må du undskylde!
Avatar billede thesurfer Nybegynder
25. marts 2004 - 19:56 #28
30 points er nok.
Man kan normalt sætte pointsne op, via Funktioner menuen.
Ellers kan man oprette et nyt spm..

Men 30 points er nok, så lad være med at oprette et nyt spm :-)
Avatar billede klaaes Nybegynder
25. marts 2004 - 19:58 #29
Den er fin, du!

Tak for hjælpen!

/Klaaes
Avatar billede thesurfer Nybegynder
25. marts 2004 - 20:14 #30
Det var så lidt.. og tak for points :-)
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