Seite 1 von 1

Bestimmte Daten aus Array/ListIconBox auslesen

Verfasst: 04.04.2005 17:10
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?

Verfasst: 04.04.2005 18:17
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.

Verfasst: 04.04.2005 18:31
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...

Verfasst: 04.04.2005 18:47
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.

Verfasst: 04.04.2005 18:57
von Gamer
Aja? Wie soll das dann bitte gehen?

Verfasst: 04.04.2005 19:23
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