Avatar billede bfjmnemonic Nybegynder
10. maj 2004 - 12:46 Der er 5 kommentarer og
1 løsning

Problemer med Replace

Hej ..

Jeg skal bruge Replace til at ændre Æ, Ø, Å til AE, OE, AA

Den sødvanelige problematik.

Jeg har det problem, at Replace tilsyneladende ikke kan kende forskel på Store og små bogstaver. Og det er et problem.

Nogen der ved hvordan man kunne uden om den?
Avatar billede medions Nybegynder
10. maj 2004 - 12:48 #1
Replace(LCase(strTekstStreng), "æ")
Replace(LCase(strTekstStreng), "ø")
Replace(LCase(strTekstStreng), "å")

//>Rune
Avatar billede medions Nybegynder
10. maj 2004 - 12:49 #2
Fx.:

strTekstStreng = "Hej med dig jeg æ ø og å"

strTekstStreng = Replace(LCase(strTekstStreng), "æ", "ae")
strTekstStreng = Replace(LCase(strTekstStreng), "ø", "oe")
strTekstStreng = Replace(LCase(strTekstStreng), "å", "aa")

//>Rune
Avatar billede bfjmnemonic Nybegynder
10. maj 2004 - 12:52 #3
Nej det løser ikke problemet, for jeg vil gerne have STORT Ø Erstattet med Oe og Lille ø med oe osv.

Jeg har fundet ud af det. InStr kan godt kende forskel, så jeg har gjort følgende. Det er ikke kønt, men det virker.

        If InStr(1, UName, "Ø", vbTextCompare) Then
            UName = Replace(UName, "Ø", "O", 1, -1, vbBinaryCompare)
        End If
        If InStr(1, UName, "ø", vbTextCompare) Then
            UName = Replace(UName, "ø", "o", 1, -1, vbBinaryCompare)
        End If
        If InStr(1, UName, "Å", vbTextCompare) Then
            UName = Replace(UName, "Å", "Aa", 1, -1, vbTextCompare)
        End If
        If InStr(1, UName, "å", vbTextCompare) Then
            UName = Replace(UName, "å", "aa", 1, -1, vbTextCompare)
        End If
        If InStr(1, UName, "Æ", vbTextCompare) Then
            UName = Replace(UName, "Æ", "Ae", 1, -1, vbTextCompare)
        End If
        If InStr(1, UName, "æ", vbTextCompare) Then
            UName = Replace(UName, "æ", "ae", 1, -1, vbTextCompare)
        End If
Avatar billede medions Nybegynder
10. maj 2004 - 12:54 #4
Ahh, ok fair nok.
-Du skal lige huske at lukke spm'et.

//>Rune
Avatar billede bfjmnemonic Nybegynder
10. maj 2004 - 12:56 #5
Hmmm .. Jeg ved ikke hvad jeg sidder og laver. Hvis man bruger vbBinaryCompare virker det fint ..

Glæm alt siden "Hej"
Avatar billede nute Nybegynder
10. maj 2004 - 12:58 #6
replace kender forskel på store og små bogstaver, da den sammenligner binært som default. Kør dette script og se selv:

str = "denne indeholder å og Å"
Response.write( Replace( str, "å", "xx", 1, LEN( str ), 1 ) )
Response.Write( "<br>" )
Response.write( Replace( str, "å", "xx" ) )

Det du kan gøre, er at bruge arrays:

Dim arrSpecialChars : arrSpecialChars = Array( "æ", "ø", "å" )
Dim arrReplaceChars : arrReplaceChars = Array( "ae", "oe", "aa" )
str = "denne indeholder å og Å, æ og Æ samt ø og Ø"
for i = 0 to UBOUND( arrSpecialChars )
    str = Replace( str, arrSpecialChars(i), arrReplaceChars(i) )
    str = Replace( str, UCASE( arrSpecialChars(i) ), UCASE( arrReplaceChars(i) ) )
next
Response.write( str )

/nute
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