Avatar billede hyperactive Nybegynder
12. oktober 2001 - 11:11 Der er 4 kommentarer og
1 løsning

Erstatte X forekomst i en tekst

Jeg har en tekststreng, hvor jeg har brug for at erstatte forekomster af en bestemt tekst udfra værdien af en variabel. Hvis f.eks. værdien i variablen er 3 skal den 3. forekomst af XXX erstattes med YYY. Hvordan?
Avatar billede eagleeye Praktikant
12. oktober 2001 - 11:13 #1
var_med_find = \"XXX\"
var_med_erstat = \"YYY\"

inputStr = replase(inputStr, var_med_find, var_med_erstat)
Avatar billede eagleeye Praktikant
12. oktober 2001 - 11:15 #2
Efter at havde læst dit spørgsmål et par gange er det vist ikke svaret.
Avatar billede hyperactive Nybegynder
12. oktober 2001 - 11:16 #3
Det vil da erstatte alle forekomsterne..... det er jo kun den 3. der skal erstattes.
Avatar billede eagleeye Praktikant
12. oktober 2001 - 11:27 #4
så skal du have et script som dette:

ErstatNo = 3
FindStr = \"XXX\"
ErstatStr = \"YYY\"
InputStr = \"en streng med XXX I nogele XXX gange XXX som test\"

-----selvescriptet-----
StartIndex = 1
FundetiStr = 0
IndexToFindStr = 1
Do while (fundetiStr < ErstatNo) AND (IndexToFindStr > 0)
  IndexToFindStr = instr(startIndex, InputStr, FindStr)
  If IndexToFindStr > 0 then
    StartIndex = IndexToFindStr + len(FindStr)
    fundetiStr = fundetiStr + 1
  End if
Loop
If IndexToFindStr > 0 then
  inputStr = Replase (inputStr, findStr, erstatStr, indexToFindStr, 1)
end if


Jeg har ikke testet dette scrip da jeg ikke har mulighed for det lige nu. Jeg kan først komme til at teste ved 16.00 tiden. Du kan evt copy/pate det ind i en ny HTML fil og teste lidt inden du smider det ind i den rigtige kode.
Avatar billede tmceu Praktikant
12. oktober 2001 - 11:37 #5
strVar = \"XXXzzzXXXzzzXXXzzz\"
strFind = \"XXX\"
strReplace = \"YYY\"

intPos = 0
intCount = 0
intVarNum = 3

do until intPos >= len(strVar)
intPos = instr(intPos + 1, strVar, strFind)
intCount = intCount + 1
if intCount = intVarNum then exit do
loop


strVar = left(strVar, (intPos-1)) & strReplace & right(strVar, (len(strVar) - (intPos-1) - len(strFind)))

response.write strVar

dette script er testet :-)
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