Text aufteilen?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Text aufteilen?

Beitrag von PureBasic4.0 »

Hallo, Leute

Ich habe folgenden Text:
Text$ = Nummer1 Nummer2 Nummer3 Nummer4 Nummer5
Jetzt möchte ich diesen Text in einzelteile aufteilen. Nummer1 bekomme ich ja mit

Code: Alles auswählen

Position = FindString(Text$,"  ",0)
Nummer1$ = Left(Text$,Position-1)
Ich mache das bewusst so umständlich, da der Text variieren kann.
Wie kann ich jetzt die übrigen Textstellen herausfinden?
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Text aufteilen?

Beitrag von Kiffi »

> Wie kann ich jetzt die übrigen Textstellen herausfinden?

dafür gibt's StringField()

Code: Alles auswählen

For k=1 To 6
  Debug StringField("Hello I am a split string", k, " ")
Next
Mit CountString() kannst Du rausfinden, wie viele 'Felder' sich in Deinem
String befinden.

Grüße ... Kiffi
a²+b²=mc²
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Re: Text aufteilen?

Beitrag von PureBasic4.0 »

Kiffi hat geschrieben:> Wie kann ich jetzt die übrigen Textstellen herausfinden?

dafür gibt's StringField()

Code: Alles auswählen

For k=1 To 6
  Debug StringField("Hello I am a split string", k, " ")
Next
Mit CountString() kannst Du rausfinden, wie viele 'Felder' sich in Deinem
String befinden.

Grüße ... Kiffi
aber mit StringField kann man immer nur einen String mit einer Stelle suchen. Die Abstände zwischen den einzelnen Textteilen ist ein ganzer Tab. Da der String, den ich vorgegeben habe, von einem anderen Programm stammt, kann ich es leider nicht so verändern, dass zwischen den Textteilen nur ein Leerzeichen und kein ganzer Tabstop steht
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Code: Alles auswählen

For k=1 To 6
  Debug Trim(StringField("Hello	I	am	a	split	string", k, #TAB$))
Next
Beim kopieren gehen hier leider die Tabs verloren :(
Aber es geht!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Vallan
Beiträge: 223
Registriert: 20.01.2006 19:34
Kontaktdaten:

Beitrag von Vallan »

alternativ kannst du natürlich auchnoch "mid()" verwenden, bsonders wenn du keine trennzeichen hast.
Benutzeravatar
PureBasic4.0
Beiträge: 785
Registriert: 29.10.2006 17:26
Wohnort: 127.0.0.1

Beitrag von PureBasic4.0 »

hat doch mit StringField probiert.
Die Textdatei war 7,66 MB groß. Hat auf meinem 3,06 GHZ Rechner 7 Minuten gebraucht, bis die Textdatei in eine Preference-Datei umgewandelt wurde.
PB 4.50 RC1 + Ubuntu 10.04 LTS + Windows 7 x64
Antworten