Guten Tag,
da ich seit gestern ein Projektauftrag (Auswertung von Buchhaltung) bekam, habe ich mit einem Problem zu bekämpfen:
Beim auslesen von 35000 Zeilen große log-Datei (in *.txt und sieht pro Zeile so aus: "Datum;Käufer;Zahlungsart;Artikel_Nr;Verkäufer;Status;Skript;Preis") funktioniert mein Programm mit splitten und zuweisung zu array wie erwünscht! 👍
Aber für gefilterte Ausgabe von bestimmte arrays, wie z.b. nur Käufer, gibt es Probleme! X(
Hinweis: ich habe Array-List genommen, weil Log-Datei ohne Einschränkung der Zeilenanzahl aufgenommen werden soll!
ArrayList buchung = new ArrayList(); //public deklariert
while (file.Peek() > -1)
{
//buchung = "Datum;Käufer;Zahlungsart;Artikel_Nr;Verkäufer;Status;Skript;Preis";
buchung.Add(file.ReadLine().Split(';',' '));
}
private void btn_kaeufer_Click(object sender, EventArgs e)
{
for (i = 0; i <= buchung.Count; i++)
{
lst_main.Items.Add(buchung[i,2]);
}
}
Ich hoffe, Sie können mir etwas helfen 🙂
Gruß
Florian
Original von fe_gl84
Aber für gefilterte Ausgabe von bestimmte arrays, wie z.b. nur Käufer, gibt es Probleme! X(
Welche wären denn das?
Original von fe_gl84
Ich hoffe, Sie können mir etwas helfen 🙂
Wir sind Ihr und nicht Sie. 😉
Es gibt Fehlermeldung raus: Fehler 1 Keine Überladung für die this-Methode nimmt 2 Argumente an. ....\AuswertungAnwendung\Form1.cs 56 36 AuswertungAnwendung
und zwar an diese stelle:
lst_main.Items.Add(buchung[i,2]);
Danke für eure Hilfsbereitschaft 🙂
Gruß
Florian
Es wäre aber besser, du würdest zuvor prüfen, ob das Format stimmt.
Ausserdem alles in einem String[] speichern ist auch nicht so schön. Verwende lieber eine Klasse, dann kannst du auf benannte Eigenschaften zugreifen(Find ich schöner und übersichtlicher).
Ach ja ab .NET 2.0 gibts List<T>
Naja....ich lerne C# seit 1Monate in der Ausbildung als Fachinfo! Einige kollegen konnten mir nicht helfen und viele haben kein Zeit 🙂
Würdest du mir bitte mal ausführliche Quellentext zeigen?
"lst_main.Items.Add(buchung[i,2]);" von "((string[])buchung[zeilenIndex])[spaltenIndex]"
ersetzen? ?(
Gruß
Florian
Ich habe deinen (jetzt vor)letzten Post nicht verstanden. 😁
Aber wenn ich dich jetzt richtig verstehe, dann musst du nur buchung[i,2] durch meinen Ausdruck ersetzen.
Da hast du richtig verstanden 😁
also mit diese Code:
lst_main.Items.Add((string[])buchung[i])[2];
kommt leider auch fehlermeldungen raus:
Fehler 1 Nur assignment-, call-, increment-, decrement- und "new object"-Ausdrücke können als Anweisung verwendet werden.
Fehler 2 Indizierung mit [] kann nicht auf einen Ausdruck vom Typ "int" angewendet werden.
Und nun?
Gruß
Florian
Das habe ich auch probiert!
leider 2 Fehlermeldungen:
Fehler 1 ; erwartet.
Fehler 2 Ungültiger Ausdruck ")".
Zwar an die Stelle, wo ich noch ein Klammer eingefügt habe!
Es fehlt ein Klammerpaar. So muss es:
lst_main.Items.Add(((string[])buchung[i])[2]);