Hej!
Vill göra följande:
text i databas = "Bla bla bla namn_olle bla bla"
If "namn_" in texten then
gör om namnet som står efter "namn_" till Ucase. Ta tecknen efter "namn_" och kapa när första mellanslaget kommer efter namnet.
Behöver räkna antalet tecken efter "namn_" och köra en mid() så att bara själva namnet blir Ucase. Vill dölja "namn_" för användarna.
Resultatet ska bli följande när det hämtas ut ur databasen:
"Bla bla bla OLLE bla bla"
Jag suger på stränghantering, hoppas någon förstår vad jag vill göra och kan hjälpa mig...
------------------
sharkface
LarsGMedlem sedan dec. 200012 464 inlägg Dim position,txt,txt_length,name_length
txt = "den text du har"
position = instr(txt,"namn_")
if position > 0 then
txt_length = len(txt)
name_length = instr(mid(txt,position)," ")
if name_length = 0 then
name_length = txt_length - position + 1
end if
txt = left(txt,position-1) & _
Ucase(mid(txt,position+5,name_length-5)) & _
right(txt,txt_length-(position+name_length)+1)
end if
------------------
essentitia preter non sans multiplicandum
icaaqMedlem sedan okt. 20005 273 inlägg strText = "Bla bla bla haha namn_olle bla bla"
If InStr(strText, "namn_") > 0 Then
intFirstPos = Instr(strText, "namn_")
intLastPos = Instr(intFirstPos, strText, " ")
strNamn = UCASE(Mid(strText, intFirstPos + 5, intLastPos - intFirstPos - 5))
strtexten = Left(strText, intFirstPos - 1)
strTexten = strTexten + strNamn
strTexten = strTexten + Mid(strText, intLastPos)
End If
Men hur det går om Olee kommer två ggr vet jag inte....då är nog Regular.exp bättre ;)
------------------
[Har aldrig redigerats av någon den 11 okt 2001]
LarsGMedlem sedan dec. 200012 464 inlägg Regexp variant som tar hand om flera förekomster av namn_xxxx
t = "din sträng med namn_olle eller namn_kurt"
set o = new regexp
o.global = true
o.pattern = "(namn_[A-Za-z]+)"
Set Matches = o.Execute(t)
for i = 0 to matches.count-1
name = matches.item(i).value
t = replace(t,name,ucase(mid(name,6)))
next
------------------
essentitia preter non sans multiplicandum
Den sista varianten ser väldigt bra ut. Det jag nu oroar mig för är:
o.pattern = "(namn_[A-Za-z]+)"
innebär detta att speciella tecken som tex "@" och "." inte kan ingå i strängen? (vilka tecken ingår i A-Z)?
Jag ska nämligen även leta efter "epost_" i strängen på samma sätt som jag söker efter "namn_".
Är tillägg av denna typ möjligt?
o.pattern = "(namn_[A-Za-z]+[@]+[.])"
------------------
sharkface
LarsGMedlem sedan dec. 200012 464 inlägg [A-Za-z] matchar bara engelska bokstäver så @ och . kommner inte med.
I så fall kan du testa med
o.pattern = "(epost_[A-Za-z@\.]+)"
+ betyder en eller flera förekomster.
------------------
essentitia preter non sans multiplicandum