zeichenkette auseinandersetzen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

onkelz89

Betreff: zeichenkette auseinandersetzen

BeitragSo, Mai 21, 2006 23:11
Antworten mit Zitat
Benutzer-Profile anzeigen
hi

wie könnte ich es machen das ich beispielsweise das hier:

auto###haus###boot

in einem string hab und mit einem befehl dann später 3 strings raus kommen und zwar:
auto
haus
boot

es sollte eigentlich möglich sein nur weiß ich leider nicht wie...

danke im vorraus

Mr.Hyde

Newsposter

BeitragSo, Mai 21, 2006 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Guck dir mal die String Befehle wie Left Mid Right etc an (http://www.blitzbase.de/menu/2r.htm)

Damit dürfte das ohne Probleme zu lösen sein

oder einfach die Forensuche benutzen: https://www.blitzforum.de/foru...hp?t=17985
BBP News RSS | Chaos Interactive | Watanien 2 Screens, Infos und Download | Watanien 2 Worklog | PuzzleMasters
http://abgeordnetenwatch.de - http://www.regierungs-beratung.de - Der Regierung auf die Finger schauen
 

onkelz89

BeitragSo, Mai 21, 2006 23:26
Antworten mit Zitat
Benutzer-Profile anzeigen
thx für die schnelle antwort hab auch sofort was gefunden (war dumm hätte ich eigentlich vorher nachgesehn hab nur grad was zeitdruck)

replace & instr sind super dafür

x-pressive

BeitragMo, Mai 22, 2006 9:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
;---------------------------------------------------
; EXTRACT SECTIONS OF A STRING
; SECTION = FRAGMENT TO RETURN (0 - ...) -1 FOR LAST
;---------------------------------------------------
Function Str_Explode$(txt$, divider$, section%)

   Local i%, char$, sec%, tmp$, sections%
   
   ; COUNT FRAGMENTS
   For i = 1 To Len(txt$)
      If Mid(txt$,i,1) = divider$ Then sections = sections + 1
   Next

   ; RETURN LAST FRAGMENT?
   If section = -1 Then section = sections
   For i% = 1 To Len(txt$)
      char$    = Mid(txt$,i,1)
      If char$ = divider$ Then sec = sec + 1 : i = i + 1 : char$ = Mid(txt$,i,1)
      If sec   = section  Then tmp$ = tmp$ + char$
   Next
   Return tmp$

End Function


Benutzung:

txt$ = "auto|haus|boot"

PRINT Str_Explode$(txt$, "|", 0) ; AUTO
PRINT Str_Explode$(txt$, "|", 1) ; HAUS
PRINT Str_Explode$(txt$, "|", 2) ; BOOT

Arrow Als Trennzeichen solltest du ein einzelnes Zeichen verwenden, z.B. die Tilde ~ oder Pipe |, die braucht man sonst kaum.|
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

5k41

BeitragMo, Mai 22, 2006 18:22
Antworten mit Zitat
Benutzer-Profile anzeigen
um deinen string nun auf xpressives standart zuu bringen einfach string$=Replace(string$,"###","|")!
kann aber nur empfehlen diese StringExplode funktion nochmal selbst nachzucoden (natürlich ohne zu lunzen) hab ich auch gemacht und hat echt was gebracht... zumal ich sie nun immer für meine zwecke ändern kann!

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image
 

onkelz89

BeitragDi, Mai 23, 2006 21:34
Antworten mit Zitat
Benutzer-Profile anzeigen
wow hab den beitrag gerade wieder angeschaut war ja schon erledigt. aber danke für die mühen.

ich hab mich hier für entschieden:

Code: [AUSKLAPPEN]

was$="dat1#1024%dat2#2048%*"

While Instr(was$,"#")<>0

zahl1=Instr(was$,"#")
zahl2=Instr(was$,"*")
zahl3=Instr(was$,"%")
zahl4=zahl2-zahl1
dat$=LSet(was$,zahl1-1)
was$=RSet(was$,zahl4)
zahl1=Instr(was$,"#")
zahl2=Instr(was$,"*")
zahl3=Instr(was$,"%")
zahl4=zahl2-zahl3
big$=LSet(was$,zahl3-1)
was$=RSet(was$,zahl4)
Print dat$+" / "+big$

Wend
WaitKey


weil das kurz ist und geht auch

x-pressive

BeitragDi, Mai 23, 2006 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Öhm... und du findest das wirklich einfacher, als eine einfache Funktion zu benutzen, die dir jeden gewünschten Teil eines Strings in jeder gewünschten Reihenfolge zurückgibt und du dann lediglich ein einziges Zeichen zum Trennen brauchst? Manchmal wundere ich mich, wie viel Leid sich Menschen freiwillig selbst zufügen Wink
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL
 

onkelz89

BeitragMi, Mai 24, 2006 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
von einfacher ist nie die rede gewesen Wink

aber bevor ich den beitrag hier gesehen hab (deine antwort) hatte ich es so wie oben aufgeschrieben gelöst und ich brauchs nur einmalig...)

aber trotzdem danke für den code hab ihn gespeichert bin sicher das er mir irgendwann helfen wird thx

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group