Avatar billede carstenandersen Nybegynder
27. januar 2012 - 07:25 Der er 19 kommentarer og
1 løsning

Replace mellemrum

Hej eksperter

Det giver normalt ingen problemer at erstatte et mellemrum med ingenting, altså med:

Adresse = replace(Adresse, " ", "")

I dette tilfælde lykkedes det bare ikke. Jeg har hentet kildekoden med:

Set HttpObj = Server.CreateObject("AspHTTP.Conn")
HttpObj.Url = Request.form("Url")
StrResult = HttpObj.GetURL

f.eks. kan en adresse være:
"            husvej 45, 9999 husby              "

Altså luft mellem apostrof og husvej 45, og ligeledes til sidst. Hvis jeg bruger Adresse = replace(Adresse, " ", ""), fjernes blot mellemrum mellem husvej og 45 + 9999 og husby.

Hvordan får jeg luften foran og bagved adressen væk.

På forhånd tak.
Avatar billede ramad Praktikant
27. januar 2012 - 07:52 #1
Kan du bruge Trim(Adresse)?
Avatar billede carstenandersen Nybegynder
27. januar 2012 - 08:45 #2
Er ikke helt med på, hvad Trim gør og hvordan det skal gøres, men har prøvet lidt af hvert uden held, f.eks.:

Adresse = Trim("Adresse") eller <% Response.Write Trim(Adresse) %>. Begge uden held?
Avatar billede claes57 Ekspert
27. januar 2012 - 10:04 #3
Adresse = Trim("Adresse")
er god nok - men det er måske ikke mellemrums-tegnet, der ligger der (det kan være [Tab] eller &nbsp;
Avatar billede carstenandersen Nybegynder
27. januar 2012 - 10:20 #4
Det med Trim giver ikke noget. Også uden held med:

Adresse = replace(Adresse, "[Tab]", "")
Adresse = replace(Adresse, "&nbsp;", "")

men det er vel ikke [Tab], men en kode for dette?
Avatar billede michael_stim Ekspert
27. januar 2012 - 10:50 #5
1. TRIM(request.form("adresse"))?

2. ASP bruger mange gange VbCrLf: replace(request.form("Adresse", VbCrLf, "")

3.
Avatar billede claes57 Ekspert
27. januar 2012 - 11:07 #6
du bliver nødt til at se på data i en hex-editor, så du kan sehvilke tegn, der er før og efter.
hvis du nu udskriver
#<% Response.Write Trim(Adresse) %>#
så vil du få fx
#            husvej 45, 9999 husby              #
brug nu vis-kode, og gem teksten - åben den så i en hex-editor og se hvilke tegn, der er fra # til #
Alm mellemrum er '20' på hex.
brug fx http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm#download
download ligger i linjen
Download XVI32 release 2.53 here (558 KB ZIP archive).
Avatar billede carstenandersen Nybegynder
27. januar 2012 - 11:16 #7
Intet fungerer ;-) Data kommer heller via en form, men i stedet som kildekode med:

Set HttpObj = Server.CreateObject("AspHTTP.Conn")
HttpObj.Url = Request.form("Url")
StrResult = HttpObj.GetURL

Nogen betydning?
Avatar billede carstenandersen Nybegynder
27. januar 2012 - 11:18 #8
Havde ikke lige set indlæget fra claes57, inden jeg skrev, at intet virker ;-)

Jeg tror bare, at jeg glemmer det, og gør det manuelt. Smid et svar som tak for jeres hjælp.
Avatar billede claes57 Ekspert
27. januar 2012 - 11:28 #9
hold bare mig uden for point...
Avatar billede mireigi Novice
09. marts 2012 - 15:53 #10
Du kan lave din egen Trim function:

Function MyTrim(strInput)
  Dim arrAllowedChars
  strAllowedChars = "abc...xyzABC...XYZ012...789"

  strReturn = strInput

  For intIndex = Len(strReturn) To 1 Step -1
      If InStr(strAllowedChars, Mid(strReturn, intIndex, 1)) = 0 Then
        strReturn = Replace(strReturn, Mid(strReturn, intIndex, 1), "")
      End If
  Next

  MyTrim = strReturn
End Function



Ovenstående er utestet.
Avatar billede carstenandersen Nybegynder
28. marts 2012 - 20:18 #11
Er ikke helt med ;-)

Henter f.eks. adressen med:

<%

Set HttpObj = Server.CreateObject("AspHTTP.Conn")
HttpObj.Url = Request.form("Url")
StrResult = HttpObj.GetURL

%>

<%

Navn = Split(StrResult, "productTitle") (1)
Navn = Split(Navn, ">") (1)
Navn = Split(Navn, "<") (0)
Navn = replace(Navn, "Æ", "Æ")
Navn = replace(Navn, "æ", "æ")
Navn = replace(Navn, "Ø", "Ø")
Navn = replace(Navn, "ø", "ø")
Navn = replace(Navn, "Ã¥", "å")

Fornavn = Split(Navn, " ") (0)
Efternavn = replace(Navn, "" & Fornavn & " ", " ")

Adressetemp = Split(StrResult, "contactInfo") (1)
Adressetemp = Split(Adressetemp, "FindRouteBy") (0)

if inStr(Adressetemp, "Adresse") then
Adresse = Split(Adressetemp, "</span>") (2)
Adresse = Split(Adresse, "<") (0)
Adresse = replace(Adresse, "Æ", "Æ")
Adresse = replace(Adresse, "æ", "æ")
Adresse = replace(Adresse, "Ø", "Ø")
Adresse = replace(Adresse, "ø", "ø")
Adresse = replace(Adresse, "Ã¥", "å")
Adresse = replace(Adresse, VbCrLf, "")
else
Adresse = ""
end if

%>

Hvor er det lige, at denne Trim function kan bruges?

På forhånd tak.
Avatar billede claes57 Ekspert
28. marts 2012 - 20:32 #12
i stykket
Adresse = Split(Adresse, "<") (0)
Adresse = replace(Adresse, "Æ", "Æ")
Adresse = replace(Adresse, "æ", "æ")
Adresse = replace(Adresse, "Ø", "Ø")
Adresse = replace(Adresse, "ø", "ø")
Adresse = replace(Adresse, "Ã¥", "å")
Adresse = replace(Adresse, VbCrLf, "")

tilføjer du bare
Adresse = trim(Adresse)
efter de andre linjer (men før 'else')
Avatar billede carstenandersen Nybegynder
29. marts 2012 - 11:09 #13
Jeg prøver og prøver, men intet hjælper - må gøre det forkert ;-)

Kan jeg få dig til at skrive koden helt, altså kombinere indlæg 10 og 11? I den ene er værdien StrResult, og strInput i den anden. Det kan også være, at jeg er helt galt på den.
Avatar billede claes57 Ekspert
29. marts 2012 - 11:24 #14
jeg har også lagt æøå-konverteringen i en funktion - bemærk, at der mangler en linje for Å:

<%

Set HttpObj = Server.CreateObject("AspHTTP.Conn")
HttpObj.Url = Request.form("Url")
StrResult = HttpObj.GetURL

%>

<%
Function MyTrim(strInput)
  Dim arrAllowedChars
  strAllowedChars = "abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ0123456789.,-"

  strReturn = strInput

  For intIndex = Len(strReturn) To 1 Step -1
      If InStr(strAllowedChars, Mid(strReturn, intIndex, 1)) = 0 Then
        strReturn = Replace(strReturn, Mid(strReturn, intIndex, 1), "")
      End If
  Next

  MyTrim = strReturn
End Function

Function MyReplace(strInput)
  strReturn = strInput
  strReturn = replace(strReturn, "Æ", "Æ")
  strReturn = replace(strReturn, "æ", "æ")
  strReturn = replace(strReturn, "Ø", "Ø")
  strReturn = replace(strReturn, "ø", "ø")
  strReturn = replace(strReturn, "Ã¥", "å")
' der mangler en linje for Å
  MyReplace = strReturn
End Function


Navn = Split(StrResult, "productTitle") (1)
Navn = Split(Navn, ">") (1)
Navn = Split(Navn, "<") (0)
Navn = MyReplace(Navn)

Fornavn = Split(Navn, " ") (0)
Efternavn = replace(Navn, "" & Fornavn & " ", " ")

Adressetemp = Split(StrResult, "contactInfo") (1)
Adressetemp = Split(Adressetemp, "FindRouteBy") (0)

if inStr(Adressetemp, "Adresse") then
Adresse = Split(Adressetemp, "</span>") (2)
Adresse = Split(Adresse, "<") (0)
Adresse = MyReplace(Adresse)
Adresse = MyTrim(Adresse)
else
Adresse = ""
end if

%>
Avatar billede carstenandersen Nybegynder
29. marts 2012 - 11:44 #15
Sådan, det virker :-) Tusind tak for hjælpen. Smid et svar.
Avatar billede claes57 Ekspert
29. marts 2012 - 11:56 #16
få mireigi til at give svaret - det er jo ikke min trim-kode...
Avatar billede carstenandersen Nybegynder
29. marts 2012 - 12:13 #17
Jeg vil foreslå, at I deler. mireigi, smid et svar :-)
Avatar billede mireigi Novice
29. marts 2012 - 21:30 #18
Adresse = replace(Adresse, "Æ", "Æ")
Adresse = replace(Adresse, "æ", "æ")
Adresse = replace(Adresse, "Ø", "Ø")
Adresse = replace(Adresse, "ø", "ø")
Adresse = replace(Adresse, "Ã¥", "å")


Den del bør være overflødig. Det virker som om at din database giver dig data i ét charset, men din ASP kode er gemt i andet charset.

Du kan se mere her om, hvordan du kan løse problemet:

http://stackoverflow.com/questions/350429/classic-asp-gremlims-getting-a-inserted-into-text-whenever-an-html-special-ch

http://technet.microsoft.com/en-us/library/bb742422.aspx
Avatar billede carstenandersen Nybegynder
30. marts 2012 - 09:33 #19
mireigi, fedt med dine henvisninger :-) Det er altid noget, som har drillet mig.

Tak for jeres hjælp.
Avatar billede carstenandersen Nybegynder
30. marts 2012 - 09:34 #20
claes57, da du ikke havde smidt et svar, regnede jeg med, at du mente, at mireigi skulle have pointene. Jeg giver dog stadig gerne dig de 30 point - så siger du bare til.
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