/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Er det muligt i ASP.
Fra : Peter Grundtvig


Dato : 28-03-05 00:20

Hej Alle

Er der mon nogle der kan fortælle mig om det er muligt at udskifte en enkelt
karakter i en string ?

F.eks.:

vStr = "Tast"
vStr[2]="e"

Hvorefter resultetet af vStr skulle blive "Test".

Med venlig hilsen

Peter Grundtvig



 
 
Torben Brandt (28-03-2005)
Kommentar
Fra : Torben Brandt


Dato : 28-03-05 02:45

Peter Grundtvig wrote in dk.edb.internet.webdesign.serverside.asp:
> Er der mon nogle der kan fortælle mig om det er muligt at udskifte en enkelt
> karakter i en string ?
>
> F.eks.:
>
> vStr = "Tast"
> vStr[2]="e"
>
> Hvorefter resultetet af vStr skulle blive "Test".

Det er ikke muligt at udskifte et tegn på en bestemt placering. Dog kan man
lave en ny streng og gemme den i samme variabel:
vStr = "Tast"
vStr = Left(vStr, 1) & "e" & Mid(vStr, 3)
Det er samme resultat, men behandling af strenge i ASP/VBS foregår desværre med
at danne nye strenge hele tiden (hvilket kan gøre det ret langsomt...).

Hvis kriteriet er at alle (eller fx kun den første) forekomster af "a" skal
skiftes til "e", så kan man bruge:
vStr = Replace(vStr, "a", "e")

mvh Torben

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Peter Grundtvig (28-03-2005)
Kommentar
Fra : Peter Grundtvig


Dato : 28-03-05 04:11

Hej Torben

Tusind tak for dit svar, så kan jeg jo godt stoppe min forgæves søgen.

Med venlig hilsen

Peter Grundtvig

"Torben Brandt" <ukendt1000@hotmail.com> skrev i en meddelelse
news:4247619a$0$249$14726298@news.sunsite.dk...
> Peter Grundtvig wrote in dk.edb.internet.webdesign.serverside.asp:
> > Er der mon nogle der kan fortælle mig om det er muligt at udskifte en
enkelt
> > karakter i en string ?
> >
> > F.eks.:
> >
> > vStr = "Tast"
> > vStr[2]="e"
> >
> > Hvorefter resultetet af vStr skulle blive "Test".
>
> Det er ikke muligt at udskifte et tegn på en bestemt placering. Dog kan
man
> lave en ny streng og gemme den i samme variabel:
> vStr = "Tast"
> vStr = Left(vStr, 1) & "e" & Mid(vStr, 3)
> Det er samme resultat, men behandling af strenge i ASP/VBS foregår
desværre med
> at danne nye strenge hele tiden (hvilket kan gøre det ret langsomt...).
>
> Hvis kriteriet er at alle (eller fx kun den første) forekomster af "a"
skal
> skiftes til "e", så kan man bruge:
> vStr = Replace(vStr, "a", "e")
>
> mvh Torben
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials



Jens Gyldenkærne Cla~ (28-03-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 28-03-05 21:38

Torben Brandt skrev:

> Det er ikke muligt at udskifte et tegn på en bestemt placering.

Jo da - med regulære udtryk.

Function erstatTegnX(tekst, tegnNr, nytTegn)
   Dim rgx
   Set rgx = New RegExp
   rgx.Pattern = "(.{" & tegnNr - 1 & "}).(.*)"
   rgx.Global = True
   rgx.IgnoreCase = True
   erstatTegnX = rgx.replace(tekst, "$1" & nytTegn & "$2")
End Function

Punktummet matcher ethvert tegn. Tuborgklammerne {} angiver hvor
mange gange tegnet må forekomme (her værdien af variablen tegnNr
minus en - da det kun er tegnene *før* det tegn der skal erstattes
vi skal matche). Stjernen efter det sidste punktum betyder at der
må forekomme fra nul til uendelig mange tegn i slutningen af
strengen.

$1 og $2 henviser til hver deres gruppe (defineret med paranteser i
det regulære udtryk). Her er der altså én gruppe der vælger de
første X tegn (tegnNr - 1), herefter ét tegn der ikke opsamles i en
gruppe (punktummet i midten) og til sidst en gruppe der opsamler
alle efterfølgende tegn.

Se evt. virkningen af funktionen her:
<http://gyros.dk/usenet/asp/regex_pos.asp>
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Torben Brandt (28-03-2005)
Kommentar
Fra : Torben Brandt


Dato : 28-03-05 23:36

Jens GyldenkærneClausen wrote:
> Torben Brandt skrev:
>
> > Det er ikke muligt at udskifte et tegn på en bestemt placering.
>
> Jo da - med regulære udtryk.
>
> Function erstatTegnX(tekst, tegnNr, nytTegn)
>    Dim rgx
>    Set rgx = New RegExp
>    rgx.Pattern = "(.{" & tegnNr - 1 & "}).(.*)"
>    rgx.Global = True
>    rgx.IgnoreCase = True
>    erstatTegnX = rgx.replace(tekst, "$1" & nytTegn & "$2")
> End Function

Tja... Måske blev jeg blændet af Peters eksempel, og læste det som
om man skulle kunne manipulere med strengen uden at oprette en ny
streng og gemme den i samme variabel.
Peters eksempel (som jeg opfattede det) gik på at man opfattede
strengen som en array og så manipulerede de enkelte indgange uden at
ændre på hele strengen. Det ville fx være brugbart hvis man
arbejdede med lange strenge.
Om det rent faktisk var spørgsmålet skal jeg ikke afgøre, men jeg
medgiver at afvisningen var lidt for kategorisk :)

mvh Torben

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste