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.
komplett alle Leerzeichen in einem String löschen könnte man z.B. so
a$ = "ein satz mit Leerzeichen 1 2 44"
b$ = REPLACE$(a$, " ", "")
PRINT a$, 0, 0
PRINT b$, 0, 20
SHOWSCREEN
MOUSEWAIToder alle Leerzeichen löschen mit Ausnahme des ersten
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
MOUSEWAIToder so, daß z.B. nur überflüssige (doppelte) Leerzeichen entfernt werden
a$ = "ein satz mit vielen Leerzeichen 1 2 44"
b$ = REPLACE$(a$, " ", " ")
PRINT a$, 0, 0
PRINT b$, 0, 20
SHOWSCREEN
MOUSEWAIT
Im Prinzip brauche ich eher sowas wie TRIM$ ( <-- QBasic) Oder sowas in der Art!
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
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$
Yeah! Das ist super! Danke!
Damit kann ich mich heute Abend gleich mal an meine GLDB ransetzen! =)
lol, du meinst das also wirklich ernst mit deiner DB?
die Funktionen noch mal etwas verfeinert, sollten auch schneller arbeiten.
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$
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! =)
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.
Ok! Gucke rein! =) Danke für den Tip!