Okay, her er det færdigtkorrigerede forslag (denne gang testet og virkende).
Din tekst-streng skal hedde
line.
Det fungerer således, at tekst-strengen splittes op i tre dele i løbet af søgningen:
- Én del, som består af indholdet mellem to apostroffer
- Én del, som indeholder al tekst før den første apostrof (dette er gennemarbejdet tekst)
- Én del, som indeholder al tekst efter den sidste apostrof (dette er endnu ikke-gennemarbejdet tekst)
Dermed kan der arbejdes isoleret med selve indholdet mellem apostrofferne.
Efter ét fund af et apostrof-sæt, sendes den af de tre dele, der indeholder ikke-gennemarbejdet tekst, endnu engang igennem script'et, og dermed findes der efterhånden frem til alle apostrof-sæt (jeg har her antaget, at apostroffer altid vil forekomme i sæt á to).
Scriptet er sat til at fjerne de pågældende semikolon-tegn.
<%
Dim quote1, quote2, textfirst, textrest, textpart, lenght
textrest = line 'Teksten føres ind i script'et
DO
lenght = len(textfirst & textpart) 'Antal karakterer frem til dér, hvor script'et arbejder lige nu
quote1 = InStr(textrest,"""") 'Placering af " (start-")
IF quote1 = 0 THEN 'Afslut script, hvis intet " findes
EXIT DO
END IF
quote2 = InStr(quote1+1,textrest,"""") 'Placering af næst kommende " (slut-")
textpart = mid(textrest,quote1+1,quote2-quote1-1) 'Teksten mellem de to " kaldes textpart
textrest = mid(textrest,quote2+1) 'Resterende ikke-gennemsøgt tekst kaldes textrest
textpart = replace(textpart,";","") & """" 'Udskift alle ; i textpart
textfirst = mid(line,1,quote1+lenght) 'Al tekst frem til textpart kaldes textfirst
line = textfirst & textpart & textrest 'De tre tekstudsnit sættes sammen igen
LOOP
%>