Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 16.12.2006, 21:44 Titel: Wie teile ich einen String? |
|
|
Hallo,
wenn ich in der Variable string$ das wort "Hallo Welt" gespeichert habe?
wie trenne ich diesen string so, dass string1$, "Hallo" heißt und string2$, "Welt" heißt.
danke
mfg Manu |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 16.12.2006, 21:47 Titel: |
|
|
Schau dir mal in der Online-Hilfe von QB die Funktionen Left$, Right$ und Mid$ an.
Aber auch in der QB-MonsterFAQ steht so einiges zum Trennen von Strings.
Sonst bilde ich mir ein, gab's das hier auch schon öfter. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 16.12.2006, 21:51 Titel: |
|
|
Hihihi,
@mao:
Spielverderber
Ich hatte grade so einen schönen Text überlegt..
..aber du hast noch den Hinweis auf Instr() vergessen, oder gibts das bei QB nicht?
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 16.12.2006, 22:07 Titel: |
|
|
Hehe, sry, aber kannst mir den Text ja mal PMen.
Instr gibts auch bei QB. Is' mir erst jetzt, wo du's erwähnt hast, eingefallen, dass es damit viel leichter geht.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 16.12.2006, 22:17 Titel: |
|
|
mit left right und mid ist es ehre ned so gut
weil da alle meine zeichen vom ersten wort immer gleich sein müssen?
könnt ihr mir es vll. mal mit einem beispiel demonstrieren mit instr oder so
danke
mfg Manu |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 16.12.2006, 22:31 Titel: |
|
|
Naaa, müssen nicht gleich sein.
Das kann man mit 'ner FOR..NEXT-Schleife lösen.
Trotzdem mal 'nen Beispiel mit Instr:
Code: |
test$="Hallo Welt"
PRINT LEFT$(test$, INSTR(test$, " ") - 1)
PRINT RIGHT$(test$, LEN(test$) - INSTR(test$, " "))
|
Funktioniert in der Fassung allerdings nur, wenn's, wie bei dir im Moment, 2 Worte sind.
Das andere müsste dann anders geschachtelt sein, zum Beispiel müsste der zuletzt getrennte String etc. gespeichert werden. _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 16.12.2006, 22:45 Titel: |
|
|
danke für die schnelle antwort |
|
Nach oben |
|
 |
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 395
|
Verfasst am: 16.12.2006, 23:01 Titel: |
|
|
Schau mal da ziemlich weit unten.... da hab ich mal so eine Funktion geschrieben: http://forum.qbasic.at/viewtopic.php?t=871&highlight=nwort _________________ Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht. |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 18.12.2006, 16:45 Titel: |
|
|
gibt es sonst noch ein paar lösungen bei beliebig vielen wörtern
danke
mfg Manu |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 18.12.2006, 17:28 Titel: |
|
|
Hallo
Manu hat Folgendes geschrieben: | gibt es sonst noch ein paar lösungen bei beliebig vielen wörtern |
Ein paar? An wieviele Lösungsansätze hast du da denn so gedacht? In den oben angegebenen Links sind ja schon verschiedene Möglichkeiten - auch für beliebig viele Wörter - besprochen worden. Bei den Beispielen dort brauchst du nur die Dimensionierung des Datenfelds anpassen, in denen die einzelnen Wörter gespeichert werden sollen. Wie wär's, wenn du kurz erklärst, was dir an diesen Beispielen nicht passt bzw. was davon du nicht verstehst oder du genau vorhast. Wenn du z.B. die Worte sowieo nacheinander auswertest, kannst du den String auch nach und nach im Programm zerlegen und brauchst die einzelnen Worte garnicht zu speichern.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 18.12.2006, 21:02 Titel: |
|
|
Die von mir genannte split()-Funktion besitzt exakt die Eigenschaft, beliebig viele Wörter zu trennen (splitten! Daher der Name...). Dabei ist es in jeder mir bekannten Programmiersprache/Compiler üblich, dass man die Wörter in einer Feldvariable (Array) bekommt.
Ich habe einfach im QB-Codebeispiel eine kleine SUB-Routine präsentiert, die genau dasselbe wie in VBScript und PHP tut. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 26.12.2006, 18:03 Titel: |
|
|
kann ich dann die einzelnen wörter(die getrennt wurden) in einzelnen strings speichern z.b. folgendermaßen
wort1$ = "hallo"
wort2$ = "wie"
wort3$= "gehts"
wort4$ = "dir"
danke
mfg Manu |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 26.12.2006, 18:21 Titel: |
|
|
Manu hat Folgendes geschrieben: | kann ich dann die einzelnen wörter(die getrennt wurden) in einzelnen strings speichern z.b. folgendermaßen
wort1$ = "hallo"
wort2$ = "wie"
wort3$= "gehts"
wort4$ = "dir" |
In einem Datenfeld kannst du sie dann speichern. So wie du es vorschlägst, ist das nicht besonders gut und vor allem nicht einfach machbar, wenn du die Anzahl der gesplitteten Wörter nicht kennst. Nur wenn es z.B. immer zwei ("Hallo,Welt") sind, kannst du auch feste Variablen nehmen (teilA$, teilB$). _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 26.12.2006, 18:24 Titel: |
|
|
wie speichere ich sie dann in einem datenfeld und welchen name und das feld dann?
danke
mfg Manu |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 26.12.2006, 18:53 Titel: |
|
|
sorry das ich jetzt nochmla frage, aber wie heißen bei split.bas die einzelnen datenfelder
danke
mfg Manu |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
|
Nach oben |
|
 |
Manu

Anmeldungsdatum: 16.07.2006 Beiträge: 174 Wohnort: Bayern
|
Verfasst am: 26.12.2006, 19:08 Titel: |
|
|
danke,
dann wären meine fragen geklärt
der sub läuft mit den arrys von 1 bis 7 aber genauso oder
danke
mfg Manu
edit:\\ kann ich aus dem sub dann die einzelnen strings und und die anzahl der wörter ins normale programm zurückbringen? |
|
Nach oben |
|
 |
|