Listview.dll stürzt bei 1790 Zeilen ab...

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • Listview.dll stürzt bei 1790 Zeilen ab...

      Ich habe Frank Abbings Listview.dll im Einsatz, seit Jahren keine Zicken - jetzt habe ich bei einer Datenbank wohl eine Grenze überschritten: wenn ich 1790 Datensätze lade und an die Listview gebe, stürzt XProfan stumpf mit der Meldung ab, dass Listview.dll der Übeltäter sei - gibts da irgendwo ne Grenze oder kann ich da was umgehen?
      ---
      Xprofan X3, Win7/32, Win10/64
    • THFR schrieb:

      Grenzen sind mir nicht bekannt.
      Soweit ich weiß, werden die Items in ein Long (DWORD) gespeichert. Das ist dann definiert:
      "A 32-bit unsigned integer. The range is 0 through 4294967295 decimal".

      Das sollte also nicht das Problem sein.
      Gruß Thomas
      „Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine
      davon in einer Katastrophe endet oder sonstwie unerwünschte
      Konsequenzen nach sich zieht, dann wird es jemand genau so machen.“ Murphys Gesetz
      ComputerInfo für PPF
    • ich hab den Code auch schon etliche Monate nicht mehr anfassen müssen und musste auch erstmal suchen... Das ganze ist eine DBF, beim DIM stand ursprünglich "Dim xbereich#,bytes&+100" - ich habe das auf Verdacht und ohne Ahnung, was ich tue mal auf +3000 erhöht, aber es brachte keine Verbesserung... ist halt doch nachteilig, wenn man nur Feierabendprogrammiert ohne das jemals gelernt zu haben...
      Code schaut so aus:

      Quellcode

      1. hGrid& = @Create("Dialog", %hWnd, " Vorgänge", spalte%, zeile%, %MaxX-(breite%+10), %MaxY-(zeile%+30))
      2. listview&=CreateListView(hGrid&,%hinstance,-1,Rgb(255,255,255),-1,$421) '24
      3. text$="XBAUST.DBF"
      4. bytes&=@FileSize(text$)
      5. If bytes&>0
      6. Dim xbereich#,bytes&+3000
      7. ReadFileQuick(addr(text$),xbereich#,0,bytes&) ' Dbf-Datei laden
      8. bytes&=DbfToCsv(xbereich#,bytes&,0,0,2) ' Dbf konvertieren nach Csv
      9. x&=CsvToHeader(listview&,xbereich#,addr(y&)) ' Automatisch Spalten aus Csv-Datei erstellen
      10. CsvToListview(listview&,(xbereich#+y&),(bytes&-y&),x&) ' Csv Datei als Items in Listview einlesen
      11. Dispose xbereich#
      12. EndIf
      Alles anzeigen
      Wenn ich in der DBF mit nem externen Tool beliebige Zeilen lösche, dann kann ichs wieder normal einlesen - es muss also da irgendein Problem mit der Anzahl der Datensätze geben...
      ---
      Xprofan X3, Win7/32, Win10/64
    • Wie wurde die besagte dbf erzeugt?
      Mit XProfan dbf, dBase 3+, dBase Win, Franks Lview, WinDBF32 oder
      über eine MS Office Anwendung.
      Gerade Excel zerschießt gerne eine original DBF.

      Wie sieht es aus, wenn du über dein ext. Tool (welches?) einen Datensatz zufügst?
      Hat die dbf ein Memo-Feld?

      Kann mich nur noch schwach erinnern, ist wohl nun schon ca. 20 Jahre her, dass ich auch einmal ein Problem beim autom. Einlesen einer dbf über die LV-Funktion hatte. Die Anzahl der Datensätze war nicht das Problem.

      Würde die dbf einmal mit Open/Libre Office öffnen und dann als csv speichern. Dann diese csv über LV öffnen/anzeigen und als dbf mit LV speichern. Da ist im LV Paket ja ein Beispiel, das schnell angepasst ist.
      Vielleicht ist das Problem dann behoben.

      Gruß
      Thomas
    • Im Tagesgeschäft

      wird die DBF mit XProfan bearbeitet: ergänzt, Sätze gelöscht, indiziert, alles kein Problem. Wenns knallt, kann ich die DBF fehlerfrei mit WinDBF öffnen, sobald ich einen beliebigen Satz lösche, kann ich dann wieder mit der XProfan-Anwendung die DBF in das Listview laden.
      ---
      Xprofan X3, Win7/32, Win10/64
    • Verstehe ich es richtig, die windbf32 von Paul Vehlhaber?
      Da könntest du die dbf ja mal als nn.txt mit Komma als Trenner abspeichern.
      Wird die klaglos im LV angezeigt, würde ich sie aus dem LV als nn.dbf exportieren,
      und dann die nn.dbf ins LV laden und vielleicht ist das Problem dann behoben.
    • Danke, hat mich auf den richtigen Weg gebracht - hab zwar keine echte Ursache gefunden aber Abhilfe...
      nachdem ich mit WinDBF32 die DBF in eine CSV abgespeichert habe, konnte ich die problemlos bei der kritischen Satzanzahl in Listview einlesen, auch wenn ich an die CSV noch Sätze angefügt habe.
      Dann habe ich mal direkt mit der DBF in meiner Anwendung gespielt: Ich habe mal die kritische Anzahl an Sätzen erzeugt - Listview bringt einen Absturz. Nach Neuaufrauf habe ich mit meiner Anwendung an die DBF noch einen zusätzlichen Satz angefügt und plötzlich mag Listview wieder alles ganz normal einlesen und anzeigen...
      ---
      Xprofan X3, Win7/32, Win10/64