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
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
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
25. marts 2004 - 16:04
#2
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!
25. marts 2004 - 16:22
#4
nej, det er det faktisk ikke :-) skriv: dim streng, v, h, imellem og så koden..
25. marts 2004 - 16:27
#5
Lidt bedre.. Nu siger den: "Invalid procedure call or argument" og henviser til næstsidste linie!
25. marts 2004 - 16:28
#6
prøv det her: h = instr(streng, "jeg er så")
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!
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!
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.. :-)
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
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å "!
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), """>")
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.
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?
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
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
25. marts 2004 - 18:24
#17
Hvordan vælger jeg så f.eks. linie 8?
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
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..
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..
25. marts 2004 - 19:01
#21
Så er det som det skal være! Du kan jo lige lave et 'svar'! Klaaes
25. marts 2004 - 19:13
#22
og et svar er lagt :-)
25. marts 2004 - 19:14
#23
der skal self' kun være 1 kun i aktekst(i) :-) a står for array..
25. marts 2004 - 19:15
#24
stave kan jeg heller ikke :-) "kun være 1 'k'"..
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
25. marts 2004 - 19:47
#26
Lyder godt :-)
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!
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 :-)
25. marts 2004 - 19:58
#29
Den er fin, du! Tak for hjælpen! /Klaaes
25. marts 2004 - 20:14
#30
Det var så lidt.. og tak for points :-)
Kurser inden for grundlæggende programmering