einen string in teile zerstückeln

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Marius D.

Betreff: einen string in teile zerstückeln

BeitragSo, Jun 17, 2007 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ihr,
wie kann einen string in teile zerstückeln ohne die anzahl der zeichen zu wissen?

der string is z.b. der hier

string$="Hallo du da"
aber er könnte auch
string$="wer bist du"
sein aber immer mit 3 worten aber unterschiedlicher länge
oder er könnte wenn es nicht mit leerzeichen geht auch so sein
string$="Hallo:heeh:man§
sein das reicht mir auch

Tankbuster

BeitragSo, Jun 17, 2007 21:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Forum --> Erweiterte Suche -->Gefunden !
Ich sag dir den Code nicht, aber so wirst du fündig! Wink ^^
Twitter
Download Jewel Snake!
Windows|Android
 

Marius D.

BeitragSo, Jun 17, 2007 21:16
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hasse diese antworten ... kannst du nicht einfach den link geben weil ich finde da nichts ....

manche sind halt zu dumm zum suchen ka was ich eingeben soll habe schon string zerteilen / zerschneiden ...

SpionAtom

BeitragSo, Jun 17, 2007 21:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich bin viel freundlicher Cool
https://www.blitzforum.de/foru...hp?t=18819
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

shure_kyu

Newsposter

BeitragMo, Jun 18, 2007 1:32
Antworten mit Zitat
Benutzer-Profile anzeigen
also das ist ganz einfach marius D.

die wichtigsten befehle sind:

Arrow Instr
Arrow Mid$
Arrow Dim
Arrow While Wend


ich hab dir schnell mal was gebastelt ich hoffe es reicht für deine zwecke ich wollte es auch nicht unnötig verkomplizieren..


Code: [AUSKLAPPEN]
Dim woerter$(2)  ; sind 3 weil ein array bei 0 anfängt 0 bis 2 = 3  weil  0 1 2 = 3
stringalt$ ="Hallo du da"
position   = 1
anzahl = 0


;hier passiert die eigentliche aufteilung der woerter
While Instr(stringalt," ")


   ; diese zeile ist nur daz uda das man auch alle wöerter einzeln bekommt
   stringalt$ = Mid$(stringalt$,position)


   Stringneu$ = Mid$(stringalt$,1,Instr(stringalt$," "))

; hier wird die position erneuert wo es ein leerezeichen gibt + 1 zeichen damit es rausgeschnitten wird

   position   = instr(stringalt$," ")+1
   
   
   
;hier wird in woerter$ das wort eingefügt wenn anzahl z.b 0 ist dann wird hallo
;in woerter(0) gepackt

   If Not Stringneu$ = "" Then woerter$(anzahl) = Stringneu$                                                          
   
   
   If Stringneu$ = "" Then
      woerter$(anzahl) = Stringalt$
   End If
   
   
   
   ;hier wird die anzahl erhöht
   anzahl = anzahl + 1
   
Wend



; hier werden die einzelnen array felder wieder ausgegeben
Print woerter$(0)
Print woerter$(1)
Print woerter$(2)



WaitKey
End

_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________
◄Blitz 3D/MAX • PC - 2x 3.16Ghz, 4GB-Ram, ATi HD 4890 1024MB• win7 • site$ Rush2Play ° My-Htc.de
¯¯¯¯¯¯¯\__________________________________________________________________________//¯¯¯¯¯¯¯¯
BBP-RSS FEED Halt dich auf dem laufenden!
(C)Shure_kyu

SpionAtom

BeitragMo, Jun 18, 2007 13:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Also meine Funktion kann das auch... ..mit 2 Vorteilen: Rolling Eyes

1. Die Leerzeichen/Trennzeichen können beliebig oft hintereinander kommen
2. Man braucht kein zusätzliches Array, welches die Wörter speichert
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

shure_kyu

Newsposter

BeitragDi, Jun 19, 2007 10:43
Antworten mit Zitat
Benutzer-Profile anzeigen
1. is das offtopic und scheiß egal, er wird eh das nehmen was ihm gefällt.
und 2. hab ich doch geschrieben das es nicht die beste methode ist, sondern die schnellste & einfachste die ich gerade hinbekommen habe um sein problem zu lösen ohne es kompliziert zu machen .... just 4 fun .... darum gehts doch oder ?
und nicht wer besser ist.

sonst könnte ich ja auch sagen "ätsch dafür lernt er bei mir die befehle besser" Wink



zumindest is der beitrag schonmal besser als manch andere, wo es um solche anfänger fragen geht, wo immer nur die befehle genannt werden oder gesagt wird benutz die suche und es wird nie auf die thematik wirklich eingegangen um zu erklären.

das bleibt hier im forum leider zu oft auf der strecke, auch mal den anfängern zu helfen.....



cya

_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________
◄Blitz 3D/MAX • PC - 2x 3.16Ghz, 4GB-Ram, ATi HD 4890 1024MB• win7 • site$ Rush2Play ° My-Htc.de
¯¯¯¯¯¯¯\__________________________________________________________________________//¯¯¯¯¯¯¯¯
BBP-RSS FEED Halt dich auf dem laufenden!
(C)Shure_kyu

SpionAtom

BeitragDi, Jun 19, 2007 11:54
Antworten mit Zitat
Benutzer-Profile anzeigen
@shure_kyu
Ich wollte nur klarstellen, dass ich dich hier in keinster Weise schlechtreden wollte oder gar beleidigen wollte.
Und ich hab es auch nicht nötig, bei sowas besser zu sein. Rolling Eyes

Ich habe auf meine Vorteile hingewiesen, weil sie imo für einen guten Programmierstil stehen und weil sie das Problem "String zerstückeln" universell lösen.

Deine Auflistung der wichtigsten Befehle finde ich gut, auch dass du einen Beispielcode gegeben hast. Was du allerdings vergessen hast, wenn du Programmierhilfe gibts, und das ist vielleicht das wichtigste von allen, du hast die Idee deines Algorithmus' nicht erläutert.

So, genug Posting-verteidigung für heute...
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080

shure_kyu

Newsposter

BeitragDi, Jun 19, 2007 12:45
Antworten mit Zitat
Benutzer-Profile anzeigen
[offtopic]
ich hab nicht dich persöhnlich angegriffen.. ich meinte generell hier das auftreten einieger leute im forum... wir beiden warn immerhin hier im thread die einziegen die ihm WIRKLICH geholfen haben Smile.
ps:
hab doch gar nichts gesagt das du mich schlechtreden wolltest oder beleidigen wolltest.
[/offtopic]


nun zu meinem code:
ja die grund idee besteht dadrin das einfach der string nach leerezeichen durchsucht wird... mit instr() !
da instr() die postion aber nur vom ersten gefundenen leerzeichen ausgibt, erledigt der code eine kleine sache und zwar er kopiert ab der position wo das leerezeichen gefunden wurde + 1(damit das leerzeichen wegfällt) den rest des strings wieder in die variable, und guckt schonmal nach dem nächsten leerzeichen, somit haben wir schon einmal den ersten teil rausgefiltert.
dieses spiel wird so lange wiederholt bis keine leerzeichen mehr da sind. sooo. und weil bis zu jedem leerzeichen es ja ein wort ist, wird das in einem array jedesmal gespeichert so das man alle wörter zum schluss in dem ganzen array hat .

ich hoffe ich konnte ein wenig die haupt-aufgabe erklären...

cya

_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________
◄Blitz 3D/MAX • PC - 2x 3.16Ghz, 4GB-Ram, ATi HD 4890 1024MB• win7 • site$ Rush2Play ° My-Htc.de
¯¯¯¯¯¯¯\__________________________________________________________________________//¯¯¯¯¯¯¯¯
BBP-RSS FEED Halt dich auf dem laufenden!
(C)Shure_kyu
 

Marius D.

BeitragDi, Jun 19, 2007 15:01
Antworten mit Zitat
Benutzer-Profile anzeigen
vielen dank an euch beide Very Happy
habe es schon geschaft Wink
nach welcher sag ich net

aufjeden fall danke an euch
haben mir beide sehr geholfen

~Close~ Twisted Evil

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group