webForumDet fria alternativet

Leta text och ordet till höger om detta

ASP

10 svar · 315 visningar · startad av Patrik.Runald

Medlem sedan feb. 20038 inlägg
Frågan#1

Hej.

Jag har en textsträng där jag behöver leta efter ett visst ord och sedan lägga in ordet till höger om detta in i en variabel.

Exempel
======

Texten jag har ser ut så här:

----
Datum: 2003-02-28
Användare: Kalle Anka
Åtgärd: Fungerade
----

Jag vill då få datumet, användaren och åtgärden i tre olika variabler. Antar att man använder RegExp på någe sätt men har ingen aning om hur.

Kan någon hjälpa mig?

Medlem sedan dec. 200012 464 inlägg
#2
items = split(str,vbcrlf)

Då får du en array där varje element innehåller en rad från texten.

Medlem sedan feb. 20038 inlägg
#3

Tack för svaret Lars!

Vet inte riktigt om det blev rätt. Det jag vill få ut i ovanstående är alltså "2003-02-28", "Kalle Anka" och "Fungerade". Inte hela raden.

Medlem sedan dec. 200012 464 inlägg
#4

Då kan du använda split en gång till med :

dim i,a,t,s,x()
s = "Datum 2003-02-28" & vbcrlf & "Användare: Kalle Anka" & vbcrlf & "Åtgärd: Fungerade"

redim x(ubound(a))
a = split(s,vbcrlf)
for i = 0 to ubound(a)
  t = split(a(i),":")
  x(i) = t(1)
next

Då får du det som står efter kolon på varje rad i X

Medlem sedan feb. 20038 inlägg
#5

Får hela tiden "Type mismatch: 'ubound' på raden redim x(ubound(a))

Vad är fel?

Medlem sedan dec. 20003 887 inlägg
#6

Ja... a är ju inte initierad.

redim x([i]antal vbcrlf i s[/i] + 1)
Medlem sedan dec. 200012 464 inlägg
#7

Lite fel ordning

dim i,a,t,s,x()
s = "Datum 2003-02-28" & vbcrlf & "Användare: Kalle Anka" & vbcrlf & "Åtgärd: Fungerade"

a = split(s,vbcrlf)
redim x(ubound(a))

for i = 0 to ubound(a)
  t = split(a(i),":")
  x(i) = t(1)
next
Medlem sedan dec. 20003 887 inlägg
#8

Hmm... bör inte loopen vara

for i = 0 to ubound(a) [b]- 1[/b]
Medlem sedan feb. 20038 inlägg
#9

Nu kom jag längre men inte riktigt hela vägen. Nu säger den:

Subscript out of range: '[number: 1]'

på raden för "x(i) = t(1)"

Medlem sedan feb. 20038 inlägg
#10

Fast... jag undrar om detta verkligen ger det resultat jag vill.

Säg att jag endast vill söka på ordet "Åtgärd: " och få ut till det höger om detta i en variabel. Hur gör jag då? Då är troligen Arrays rätt sätt, eller??

Medlem sedan dec. 20003 887 inlägg
#11

Patrik.Runald skrev:

Nu kom jag längre men inte riktigt hela vägen. Nu säger den:

Subscript out of range: '[number: 1]'

på raden för "x(i) = t(1)"

Det betyder att den raden inte innehöll några kolon...

If Ubound(t) > 1 Then x(i) = t(1)
255 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)