Bestimmte Daten aus Array/ListIconBox auslesen

Anfängerfragen zum Programmieren mit PureBasic.
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Bestimmte Daten aus Array/ListIconBox auslesen

Beitrag von Gamer »

Also ich habe hier eine Art Kassenbuch,
welche aus einer Textdatei in ein Array und
dann in ein ListIconGadget eingelesen wird...

For i=0 To ZeilenAnzahl.l
AddGadgetItem(#bla,-1,ReplaceString(DateiInhalt.s(i),"|",Chr(10),1))
Next i

Beispielzeile aus der Textdatei:

ausgabe|Kunde|Betrag|Datum|MwSt-Satz

Wie kann ich jetzt z.B. mir alle Einträge ausgeben lassen,
die einen bestimmten MwSt-Satz haben?

Schleife, aktuellen String zerstückeln, checken ob 7% usw.?

Wie würdet ihr das machen?
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Ich glaube das kannst du nicht einfach so machen. Du musst genau wissen bei welchem zeichen (position) der MWstSatz anfängt bzw. dir das mit einem Zeichen (wie z.B. "~") markieren, das Zeichen suchen um die position rauszufinden und dann auslesen.
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Beitrag von Gamer »

Das geht ja problemlos mit StringField (wenn auch umständlich).

In PHP hab ich die aktuelle Zeile mit

$bla = explode("|",$daten[$i])

zerlegt und dann einfach mit $bla[4] ausgelesen...
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

geht doch wunderbar! das ist weniger umständlich als in PHP,
du musst die Daten schließlich nicht erst in ein Array einlesen.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Gamer
Beiträge: 180
Registriert: 21.03.2005 16:59

Beitrag von Gamer »

Aja? Wie soll das dann bitte gehen?
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Syntax:
Ergebnis$ = StringField(String$, Index, Trennzeichen$)

Beschreibung:
Gibt den Feldinhalt des 'String$' an der angegebenen Stelle 'Index' zurück. 'Trennzeichen$' ist das Zeichen, das zur Aufteilung des Strings benutzt wird (nur ein Zeichen lang). Die erste 'Index' Position ist 1.
also ungefähr (auf jeden Fall "..." austauschen):

Code: Alles auswählen

Repeat
temp.s = StringField(ReadString(...), 4, "|")
Until Eof(...)
So oder so ähnlich. Aber ich seh grad, dass nur die Teilaufgabe, den letzten Teil des Strings einfacher ist. Wenn du natürlich den ganzen Datensatz später haben willst, hast du natürlich recht, dann wirds komplizierter.
Das ist dann aber auch kein Problem, schreib dir einfach ne extra Procedure dafür.

Simon
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Antworten