Avatar billede denny Nybegynder
18. januar 2010 - 19:23 Der er 10 kommentarer og
1 løsning

mellemrum i streng !

Hej,

Jeg har at bruge for at fjern start og slut mellemrum fra streng men beholder alle mellemrum i mellem streng f.eks. streng "  jeg er sulten  " skal returens "jeg er sulten". Hvordan gøre man det. Jeg har brugt LTrim og RTrim men det fjern alle mellemrume.

Tak
Avatar billede arne_v Ekspert
18. januar 2010 - 19:27 #1
Er du sikker på at det er LTROM og RTRIM som fjerner alle mellemrum? Det burde de ikke!
Avatar billede excelent Ekspert
18. januar 2010 - 20:21 #2
Trim(streng)
Avatar billede denny Nybegynder
18. januar 2010 - 20:33 #3
Hej Arne,

Du har måske ret - her er lille del af code: hvis jeg fjern
"LTrim og RTrim" fra funktion så kommer streng med mellemrum men ellers fjern alle mellemrum.
p.s. der er ikke alle kode.


Public Function Parse_CommandLine() As Boolean
Dim T1 As String
Dim Ptr1, Ptr2 As Long
On Error GoTo err_Parse_CommandLine
T1 = Trim(Command$)
For Ptr1 = 1 To Len(T1) 
If Mid(T1, Ptr1, 4) = "-li:" Then
      strLoggingItem = ""
      For Ptr2 = (Ptr1 + 4) To Len(T1)
          If Mid(T1, Ptr2, 4) = "-ld:" Then Exit For
          strLoggingItem = strLoggingItem & Mid(T1, Ptr2, 1)
          strLoggingItem = LTrim(strLoggingItem)
          strLoggingItem = RTrim(strLoggingItem)
        Exit Function
    End If
Avatar billede denny Nybegynder
18. januar 2010 - 20:49 #4
excelent: jeg har brugt det med det er samme.
Avatar billede excelent Ekspert
18. januar 2010 - 21:07 #5
Sådan virker de:

Trim("  jeg er sulten  ") = "jeg er sulten"
LTrim("  jeg er sulten  ") = "jeg er sulten  "
RTrim("  jeg er sulten  ") = "  jeg er sulten"
Avatar billede tjp Mester
18. januar 2010 - 23:21 #6
Well, så vidt jeg kan se, bygger du strLoggingItem op ét tegn ad gangen og trimmer for hver omgang, hvilket bør give en mellemrumsfri streng.. :-)
Du skal først trimme strLoggingItem, når du har fået hele den streng, du skal bruge..
Avatar billede denny Nybegynder
19. januar 2010 - 09:39 #7
Mener du at jeg skal fjern 'T1' fra min for loop eller hvad er din forslag?
-------------------------
For Ptr1 = 1 To Len(T1) 
If Mid(T1, Ptr1, 4) = "-li:" Then
      strLoggingItem = ""
      For Ptr2 = (Ptr1 + 4) To Len(T1)
          If Mid(T1, Ptr2, 4) = "-ld:" Then Exit For
          strLoggingItem = strLoggingItem & Mid(T1, Ptr2, 1)
--------------------------
Avatar billede tjp Mester
19. januar 2010 - 10:08 #8
At du først skal trimme strLoggingItem når løkken 'For Ptr2 = (Ptr1 + 4) To Len(T1)' er slut.
Avatar billede denny Nybegynder
19. januar 2010 - 13:58 #9
nop - det virker ikke men glemt det.
Avatar billede Slettet bruger
19. januar 2010 - 14:29 #10
Selvfølgelig virker trim().
Du forsøger tilsyneladende at fiske den tekstbid ud som findes imellem "-li:" og "-ld:" (og trimme den)

Det kan gøres mere overskueligt/forståeligt med en while løkke

meta:
posX=0
while stengen_fra_posX indeholder "-li:"
  start = pos+4
  if stengen_fra_start indeholder "-ld:"
    slut = pos-1
    fundet[i] = trim(substring(strengen,start,slut))
  else
    brok
  posX = slut + 4
wend
Avatar billede excelent Ekspert
19. januar 2010 - 14:50 #11
Hvad er formålet med din funktion ?
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