German Problem mit großer Tabelle

Discussion in 'German Forum' started by Christian72D, May 25, 2007.

  1. Christian72D

    Christian72D Member

    Ich habe mir mal die Trial der Desktop 5er Version installiert, weil ich hier für die Arbeit ein Programm für unsere PDAs schreiben wollte.

    Ich habe mich dabei zum Ausprobieren erst einmal an de "Account" Programm gehalten.

    Allerdings habe ich scheinbar ein Problem mit dem freien Speicher.

    Ich habe eine CSV-Datei mit 9 Spalten und max. 200 Zeilen.
    Sobald ich mehr als 12-13 Zeilen einlesen lasse, kommt die Meldung, daß die Datei nicht gelesen werden kann, kürze ich sie ein, klappt alles Perfekt.

    Ist dies eine Einschränkung der Demo-Version, oder an was liegt es? Oder gibts eine bessere Möglichkeit, mit so "großen" Datenmengen umzugehen?
     
  2. specci48

    specci48 Well-Known Member Licensed User

    Hallo Christian72D,

    willkommen bei Basic4ppc :)

    Die einzige Einschränkung der Demo-Version (Desktop) ist die fehlenden Compile Funktion, d.h. man kan keine (eigenständigen) .exe Dateien erzeugen. Bei der PocketPC Variante zählt die 30-Tage Frist. Ansonsten gibt es hier keine Einschränkungen.

    Zu Deinem Problem:
    Bei 9 Spalten sollten 200 Zeilen kein Problem sein, es sei denn, Du hast einen immens großen Dateninhalt pro Zelle. Ein Abbruch nach 12-13 Zeilen klingt daher sehr merkwürdig. Was steht denn z.B. in einer Zeile (d.h. den 9 Spalten) drin?
    Zusatzfrage: Wieviel Hauptspeicher hast Du denn nach Aufruf von Basic4pp auf dem PocketPC noch frei?

    Anmerkung:
    Ich selbst verarbeite auf dem PPC problemlos eine .csv Datei mit 12 Spalten und ca. 250 Zeilen.

    Eine "bessere" Möglichkeit zur Verwaltung von großen Datenmengen bietet Basic4ppc durch die Anbindung an SQLite. Diese Funktionaltät setzt allerdings das .Net CF2 voraus, standardmäßig benötigen Basic4ppc-Programme nur .Net CF 1.1.


    specci48
     
  3. Christian72D

    Christian72D Member

    Ich bin jetzt (leider?) nicht auf der Arbeit, sonst könnte ich dir mein Programm und die CSV mal schicken.
    SQL scheidet aus, weil: das Programm soll hier bei uns zu Verrechnung von internen Zählern benutzt werden. Das Hauptprogramm, in dem alles verwaltet wird, ist extra für uns so umgeschrieben worden, daß es die einzelnen Ableserouten nach CSV exportiert (standarsmässig soll man den ganzen Kram mit Stift und Audsruck erledigen).
    Als Daten fallen folgende Felder an:
    1x String, Zählernummer, 6 Zeichen
    1x String, Gebäude, 3 Zeichen
    1x String, Etage, 10 Zeichen
    1x Number, Zählerstand Neu
    1x Number, Zählerstand Alt
    1x String, Anmerkung, 20 Zeichen
    1x String, Beschreibung, 40 Zeichen
    1x Datum, String, 10 Zeichen

    und evtl. noch

    1 x Faktor, Number

    An fehlerhaften Daten in der Tabelle kann es eigentlich auch nicht liegen, ich habe die Tabelle soweit eingekürzt wie es ging und dann die letzte Zeile manuell verdoppelt, und der Fehler trat auch auf.

    Am fehlenden Speicher wird es wohl eher nicht liegen, bislang Teste ich das Programm noch ausschließlich auf dem Desktop, da ist es übersichtlicher es zu entwickeln.

    Soll ich die die beiden Dateien evtl. Dienstag mal rüberschicken?
     
  4. specci48

    specci48 Well-Known Member Licensed User

    Deiner Datenstruktur nach sollte die Tabelle nun wirklich kein Problem sein. Und dass der Fehler auch noch auf der Desktop-Variante auftritt überrascht mich umso mehr. :confused:

    Ich schaue mir Dein Programm gerne einmal an.
     
  5. Peter

    Peter Member Licensed User

    Post bitte auch die erste 20 zeilen. Veilleicht stimmt doch etwas nicht damit.
     
  6. Christian72D

    Christian72D Member

    Ich habe es mir etwas einfacher gemacht, ich habe mal das Programm und das Datenpaket zusamen auf meinen Server gepackt: Link

    Zudem sind hier die ersten Zeilen der einzulesenden Daten:

    Nr.;Gebäude;Etage;Neu;Alt;Anmerkung;Beschreibung;Datum
    TW2248;Z24;KG;24012;23655;;Kfm. Ausbildung. R2501;23/01/2006
    AL4499;Z24;KG;12198;12161;;Kfm. Ausbildung. R2501;23/01/2006
    VE3254;Z24;KG;7799;7790;;Kfm. Ausbildung. R2501;23/01/2006
    KL3421;Z24;KG;20063;19640;Pumpe defekt;Kfm. Ausbildung. R2501. Beh. 43;23/01/2006
    KL3355;Z38;KG;14980;14894;;Rechnerzentrum / BlueChip. Beh. 73;23/01/2006
    TW2318;Z38;KG;17082;16765;;Rechnerzentrum / BlueChip;23/01/2006
    VE3286;Z38;KG;4205;4176;;;23/01/2006
    TW2414;Z10;KG;1033;1011;;Alte Ausbildung / Backsteinbau. Treppenhaus;23/01/2006
    ND1382;Z10;KG;49243;31158;;Alte Ausbildung / Backsteinbau. Gang rechts / Heizungsraum;23/01/2006
    BW2004;Z99;KG;2110;2110;;Brauchwassernoteinspeisung;23/01/2006
    BW2003;Z99;KG;4862;4862;;Brauchwassernoteinspeisung;23/01/2006
    BW2166;Z99;KG;33510;33510;;Brauchwassernoteinspeisung;23/01/2006
    BW2167;Z99;KG;25157075;24823515;;Brauchwassernoteinspeisung;23/01/2006
    TW2251;Z23;EG;;2815;kein Zugang, verschlossen;;23/01/2006
    TW2337;S39;EG;5592;5575;;Container linke Tür Südseite;23/01/2006
    TW2249;Z05;EG;86;65;;Herrentoilette W;23/01/2006
    KL3428;Z05;EG;15147;15058;;O / Beh. 103;23/01/2006
    KL3307;Z05;EG;122;114;;;23/01/2006

    Wäre Klasse, wenn IHR den Fehler finden würdet.
     
  7. Peter

    Peter Member Licensed User

    Ich hab mir ihrem daten genau angesehen.
    Es gibt leider doch fehlerhaften daten in der tabelle.
    zum beispiel zeile 14: TW2251;Z23;EG;;2815;kein Zugang, verschlossen;;23/01/2006

    Die viertem spalte soll ein nummer sein (1x Number, Zählerstand Neu), aber 'null' ist keiner. Das gleiche gibt es auch beim anderem zeilen.

    Wenn sie die zeile zum beispiel TW2251;Z23;EG;0;2815;kein Zugang, verschlossen;;23/01/2006 machen, klappt es.

    Die einfachste loesung (jetzt) ist die definition an zu passen im App_start, also

    table1.AddCol(cString,"Zaehler",1,True) 'Account Number must be unique.
    table1.AddCol(cString, "Gebaeude",1)
    table1.AddCol(cString,"Etage",1)
    table1.AddCol(cString,"Neu",1)
    table1.AddCol(cString,"Alt",1)
    table1.AddCol(cString,"Anmerkung",1)
    table1.AddCol(cString,"Beschreibung",1)
    table1.AddCol(cString,"Datum",1)


    Wenn zie calculieren moechten met neu und alt ist es besser die fehlerhaften zeilen an zu passen und im programm standard werten zu geben an neu und alt (z.b. 0) wenn sie ein neue zeile machen.

    Peter
     
    Last edited: May 29, 2007
  8. specci48

    specci48 Well-Known Member Licensed User

    Der Beschreibung von Peter gibt es nichts mehr hinzuzufügen...
    ... außer der Tatsache, dass ich um die Uhrzeit auch lieber Basic4ppc programmiert hätte, anstatt zu arbeiten ... ;)

    specci48
     
  9. Christian72D

    Christian72D Member

    Ja, DANKE, das wars. :)

    Rechnen muß ich mit den Zahlen wirklich nicht, nur vergleichen welche größer ist, und das klappt soweit auch noch mit Strings.
     
Loading...