Leerzeichen

Previous topic - Next topic

WPShadow

Hi!

Gibt es eigentlich einen simplen Befehl, mit dem man Leerzeichen löschen kann bzw. einen Teil der Leerzeichen bei Strings usw.?

Zahlen sind kein Problem, aber Strings, da ich die Daten so setzen möchte:

index_0=                test  255  128   13   1  25

oder auch

index_0=           lauf test  255  128   13   1  25

So in der Art! Und dabei möchte ich erst den ersten Teil einlesen, ohne, daß er mir die Leerzeichen zwischen lauf & test rauslöscht.

GLG

W.
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Quentin

komplett alle Leerzeichen in einem String löschen könnte man z.B. so

Code (glbasic) Select
a$ = "ein satz mit Leerzeichen 1 2 44"
b$ = REPLACE$(a$, " ", "")
PRINT a$, 0, 0
PRINT b$, 0, 20
SHOWSCREEN
MOUSEWAIT
oder alle Leerzeichen löschen mit Ausnahme des ersten

Code (glbasic) Select
a$ = "ein satz mit Leerzeichen 1 2 44"
pos = INSTR(a$, " ") + 1
b$ = MID$(a$, 0, pos) + REPLACE$(MID$(a$, pos, LEN(a$) - pos), " ", "")
PRINT a$, 0, 0
PRINT b$, 0, 20
SHOWSCREEN
MOUSEWAIT
oder so, daß z.B. nur überflüssige (doppelte) Leerzeichen entfernt werden
Code (glbasic) Select
a$ = "ein   satz    mit             vielen Leerzeichen 1        2 44"
b$ = REPLACE$(a$, "  ", " ")
PRINT a$, 0, 0
PRINT b$, 0, 20
SHOWSCREEN
MOUSEWAIT

WPShadow

Im Prinzip brauche ich eher sowas wie TRIM$ ( <-- QBasic) Oder sowas in der Art!
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Quentin

Achso. dann hier ein paar liebgewonnene String-Funktionen ;)

ltrim$ - schneidet führende Leerzeichen ab
rtrim$ - schneidet nachfolgende Leerzeichen ab
trim$ - macht beides in einem Abwasch

Code (glbasic) Select
a$ = "   ein satz mit führenden und folgenden Leerzeichen    "
PRINT "/"+a$+"/", 0, 0
PRINT "/"+ltrim$(a$)+"/", 0, 20
PRINT "/"+rtrim$(a$)+"/", 0, 40
PRINT "/"+trim$(a$)+"/", 0, 60
SHOWSCREEN
MOUSEWAIT


// ------------------------------------------------------------- //
// -=#  LTRIM$  #=-
// ------------------------------------------------------------- //
FUNCTION ltrim$: str$

  LOCAL i, length
 
  length = LEN(str$) - 1
 
  FOR i = 0 TO length
    IF MID$(str$, i, 1) = " "
      str$ = MID$(str$, i+1, length-i)
    ELSE
      RETURN str$
    ENDIF
  NEXT

ENDFUNCTION // LTRIM$


// ------------------------------------------------------------- //
// -=#  RTRIM$  #=-
// ------------------------------------------------------------- //
FUNCTION rtrim$: str$

  LOCAL i, length
 
  length = LEN(str$) - 1
 
  FOR i = length TO 0 STEP -1
    IF MID$(str$, i, 1) = " "
      str$ = MID$(str$, 0, i)
    ELSE
      RETURN str$
    ENDIF
  NEXT

ENDFUNCTION // RTRIM$


// ------------------------------------------------------------- //
// -=#  TRIM$  #=-
// ------------------------------------------------------------- //
FUNCTION trim$: str$
  RETURN ltrim$(rtrim$(str$))
ENDFUNCTION // TRIM$

WPShadow

Yeah! Das ist super! Danke!

Damit kann ich mich heute Abend gleich mal an meine GLDB ransetzen! =)
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Quentin

lol, du meinst das also wirklich ernst mit deiner DB?

die Funktionen noch mal etwas verfeinert, sollten auch schneller arbeiten.

Code (glbasic) Select
a$ = "   ein satz mit führenden und folgenden Leerzeichen    "
PRINT "/"+a$+"/", 0, 0
PRINT "/"+ltrim$(a$)+"/", 0, 20
PRINT "/"+rtrim$(a$)+"/", 0, 40
PRINT "/"+trim$(a$)+"/", 0, 60
SHOWSCREEN
MOUSEWAIT


// ------------------------------------------------------------- //
// -=#  LTRIM$  #=-
// ------------------------------------------------------------- //
FUNCTION ltrim$: str$

  LOCAL i, length

  length = LEN(str$) - 1

  FOR i = 0 TO length
    IF MID$(str$, i, 1) <> " "
      RETURN MID$(str$, i, length-i)
    ENDIF
  NEXT

ENDFUNCTION // LTRIM$


// ------------------------------------------------------------- //
// -=#  RTRIM$  #=-
// ------------------------------------------------------------- //
FUNCTION rtrim$: str$

  LOCAL i, length

  length = LEN(str$) - 1

  FOR i = length TO 0 STEP -1
    IF MID$(str$, i, 1) <> " "
      RETURN MID$(str$, 0, i+1)
    ENDIF
  NEXT

ENDFUNCTION // RTRIM$


// ------------------------------------------------------------- //
// -=#  TRIM$  #=-
// ------------------------------------------------------------- //
FUNCTION trim$: str$
  RETURN ltrim$(rtrim$(str$))
ENDFUNCTION // TRIM$

WPShadow

Na klar meine ich das ernst! Ich setze mich noch heute Abend dran und programmiere mal ein erstes Konzept! Wird nichts wildes, ich will ja nicht Oracle Konkurrrrrrrrenz machen! Die werden ja neidisch! =)
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est

Kitty Hello

Schau mal bei DDgui das DDgui_get() an. Das macht etwa das, was Du willst, nur mit einer effektiveren Suche als FOR i=0 TO emelents...
Ich rate stark dazu TYPEs zu verwenden, um schneller zu werden.

WPShadow

Ok! Gucke rein! =) Danke für den Tip!
AMD X2 4600, 2 GB Ram, ATI X1950 XTX, XP PRO SP2: GLB Premium 10.beta_dingsi, <(´.´<) Kirby Dance (>`.`)>
http://lostrevenant.blogspot.com
alea iacta est