Avatar billede gimle007 Praktikant
29. september 2009 - 12:06 Der er 11 kommentarer og
1 løsning

Fjerne mellemrum i udtræk omkring tegnet +

Jeg har et meget mystiks og lidt kompliceret problem.

Jeg har en masse navne som er adskilt af et + tegn og nogle gange også flere mellemrum mellem navnet og +. Jeg skal have fjernet plusset og erstattet med enter. Det er gjort med en replace. jeg søger så et eller andet der kan fjerne de ekstra mellemrum der kommer. entern kan man sige at alt omkring + der er mellemrum skal fjernes, ellers kan man sige at alle mellemrum i starten af hver linie skal fjernes.

EKS.

I min MS SQL ser det sådan ud.

Navn+Navn  + Navn    +    Navn sov.

Det skal når det bliver trukket ud af SQL se sådan ud:

Navn
Navn
Navn
Navn

Jeg bruger denne til at trække du af SQL:

<%=UCase(Replace(Left(Recordset1.Fields.Item("plotter").Value, 250) ,"+",VbCrLf))%>

Men så kommer det til at se sådan her ud:
Navn
  Navn
Navn
      Navn
Avatar billede keysersoze Guru
29. september 2009 - 13:05 #1
<%=Trim(UCase(Replace(Left(Recordset1.Fields.Item("plotter").Value, 250) ,"+",VbCrLf)))%>
Avatar billede gimle007 Praktikant
29. september 2009 - 13:42 #2
Det ændre ikke noget. Men man skal jo også regne med at et navn kan indeholde mellemrum. F.eks: Martin Petersen...
Avatar billede keysersoze Guru
29. september 2009 - 14:08 #3
Så er du nødt til en alternativ tilgang - fx noget a la;

var = split(Recordset1.Fields.Item("plotter").Value, "+")

for t = 0 to ubound(var)
  response.write trim(var(t)) & "<br>"
next

Helt grundlæggende kan man så diskuttere om det måske ikke kunne løses meget lettere ved at finde en bedre struktur i databasen.
Avatar billede kgkg Nybegynder
29. september 2009 - 14:31 #4
Hvad med at splitte op i et Array med SPLIT og derefter løbe Arryet igennem hvor du med LTrim/RTrim/Trim fjerner blanktegn.

Ved gennemløbet af dit Array, lægger du de enkelte navne over i en streng, hvor du tilføjer en VbCrLf efter hvert navn.
Avatar billede keysersoze Guru
29. september 2009 - 18:52 #5
hvilket er præcis hvad mit forslag gør :)
Avatar billede kgkg Nybegynder
29. september 2009 - 20:02 #6
Du kom med dit indlæg, mens jeg skrev mit, og så kom der også lige en telefon opringning i vejen, inden jeg fik postet. :-)
Avatar billede gimle007 Praktikant
30. september 2009 - 08:07 #7
Jeg fandt ud af noget andet... Havde en god ven der kunne lidt kode...

<%@ Language="VBScript" %>
<% Option Explicit %>
<%
    Function fncCleanText(argText)
        Dim arrResponse, strResponse, i
        strResponse = ""
        arrResponse = Split(argText, "+")
        For i = 0 To uBound(arrResponse)
            strResponse = strResponse & uCase(Trim(arrResponse(i))) & vbCrLf   
        Next
        fncCleanText = strResponse
    End Function

    Dim strText

    If Len(Request.Form("ffSubmit")) > 0 Then
        strText = fncCleanText(Request.Form("ffText"))
    End If
%
Avatar billede kgkg Nybegynder
30. september 2009 - 14:12 #8
Du fandt ud af noget andet???

Øhhh. Det som den funktion gør, er jo det som både keysersoze og jeg foreslog.

Men det er da godt at du har fået det til at virke:)
Avatar billede gimle007 Praktikant
01. oktober 2009 - 08:01 #9
Det var faktisk keysersoze de fik mig den rigtige vej. Smid et svar så får du point.
Avatar billede kgkg Nybegynder
01. oktober 2009 - 14:25 #10
Nu var keysersoze jo hurtigst...
Avatar billede keysersoze Guru
01. oktober 2009 - 18:42 #11
Det er nok også derfor han beder mig og ikke dig om at lægge et svar ;)

Svar :)
Avatar billede kgkg Nybegynder
01. oktober 2009 - 19:27 #12
Det var sku' meget godt set ;-)
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