Daten aufteilen

Anfängerfragen zum Programmieren mit PureBasic.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

hihi.... AND packt mal wieder die Spatzenkanone aus...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Hm... Naja, ein bisschen Overkill ist das vielleicht, aber mir fiel der Befehl sofort ein, als TobiasR sagte, dass er eine Arraylösung bevorzugt.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Beitrag von rolaf »

Zudem verwirt es Anfänger meist wenn das Array ab 0 gefüllt wird, das gibt dann meist Probleme in den folgenden Schleifen weil gerne vergessen wird bei 0 zu starten und am Ende 1 abzuziehen.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Dies gehört genau zu den raffinierten Programmierkniffen, die ein Anfänger wissen muss, um ein Profi zu werden. Irgendwann muss man es wissen, und wenn man sich jetzt nicht damit auseinandersetzt - wann dann? Dies ist eine gute Gelegenheit, sich anzuschauen, wie ein null-basiertes Array funktioniert.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

also, da würde ich aber eher mit nem nackten Nullbasierten Array anfangen,
sprich, meinen code auf 0-7 umschreiben,
anstatt diese Mini-Problemstellung mit nem RegEx zu erschlagen.
Bild

Code: Alles auswählen

Dim V(7) ; 8 elemente: 0-7

string.s="0-0-28-24-0-1-0-105"

For n=0 To 7
  V(n) = Val( StringField( string, n+1, "-") )    ; n+1 weil unser Array bei 0 anfängt
  Debug "Feld Nr." +Str(n) + " = " + Str( V(n) )
Next
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Deluxe0321
Beiträge: 336
Registriert: 19.05.2006 00:31
Kontaktdaten:

Beitrag von Deluxe0321 »

Warum nicht einfach so :mrgreen:

Code: Alles auswählen

string.s="0-0-28-24-0-1-0-105"
;das alternative RegEx ^^
SCount.l=CountString(string.s,"-")

Dim V(SCount.l)

For n=0 To SCount.l
  V(n) = Val( StringField( string, n+1, "-") )    ; n+1 weil unser Array bei 0 anfängt
  Debug "Feld Nr." +Str(n) + " = " + Str( V(n) )
Next
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Kaeru Gaman hat geschrieben:also, da würde ich aber eher mit nem nackten Nullbasierten Array anfangen
[...]
n+1 weil unser Array bei 0 anfängt
LOL?

Dann musst du die Befehle aber auch richtig erklären.

Hier wird n+1 gerechnet, weil StringField() eins-basierend ist. Die For-Schleife zählt bereits korrekt! :wink:
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

denn schreib dochn tutorial, wenn du so genau sein willst, wird oft genug nach gefragt.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
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 »

>> denn schreib dochn tutorial
Keine gute Idee :mrgreen:
Laß das lieber jemand anders machen, der es ohne Überheblichkeit formuliert :wink:

@AND51
nicht böse sein, mußte raus
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
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

ok, point taken.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten