Deutsch
Forum

Listview Grenzwerte

 

Walter
Köhler
Es ist vollbracht.
Umzug von Profan6.6 nach XProfan 8.0 ok
Anpassen der source-codes ok
einbau von Listviews ok
Program-Test
Das sieht nicht gut aus.

Folgendes Problem:
Ich benutze eine Listview mit 16 Spalten und mehr als 6000 Zeilen.
Sortierung nach Alpha und Numerisch mittels Flag 1 oder 2
und autosortlistview.

Alpha-sortierte Zeilen sehen gut aus!
Numerische Sortierung ca 4500 Zeilen ok, danach völlig unsortiert. liegt hier eine Listview-Grenze???Das wäre schade!
zum Nachvollziehen ein csv im Anhang

172 kB
Hochgeladen:17.03.2007
Ladeanzahl142
Herunterladen
 
WKS Win XP Xprofan 10 AMD 1.6GHz 1GB Ram
17.03.2007  
 




Frank
Abbing
Hm, so eine Grenze ist mir nicht bekannt.
Aber die Csv-Datei ist so ziemlich undurchsichtig. Wenn du mir den Code und alle benötigten Dateien zuschickst, schaue ich mir die Sache gerne mal an.
 
17.03.2007  
 



@Hallo Walter
Da mein ADRESSOR-1.0 ebenfalls mit 16 Spalten läuft, habe ich Deine CSV-Datei mal darin gestartet. Das Ergebnis siehst Du in Ausschnitten in den zwei Bildern. Bei mir wird jede Spalte anstandslos auf- und abwärts mit Mausklick sortiert. -
KompilierenMarkierenSeparieren
If bytes&>0

    Dim bereich#,bytes&
    ReadFileQuick(addr(main_datei$),bereich#,0,bytes&)
    CsvToListview(listview&,bereich#,bytes&,16)
    Dispose bereich#

EndIf


Hast Du hier die richtigen Werte stehen (die 16 ist wichtig) ?

131 kB
Hochgeladen:18.03.2007
Ladeanzahl162
Herunterladen
132 kB
Hochgeladen:18.03.2007
Ladeanzahl164
Herunterladen
 
18.03.2007  
 




Jörg
Sellmeyer
Ich kann die Beobachtung von Walter bestätigen. Bei numerischer Sortierung wird ca. im unteren Drittel alles durcheinander gewürfelt. Ist gut zu sehen, wenn man die Spalte mit den Jahreszahlen sortiert.

3 kB
Hochgeladen:18.03.2007
Ladeanzahl156
Herunterladen
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
18.03.2007  
 



Muss meine Meinung revidieren - bei der nummerischen Sortierung wird zum Schluss bunt gemischt - Auch bei meinem Code (ADRESSOR) passiert das - hatte zuerst die nummerische Sortierung nicht bis zum Ende verfolgt

@Walter
Hast Du tatsächlich die ganzen Musiktitel aus der CSV-Datei auf Deiner Festplatte ?
 
18.03.2007  
 




Frank
Abbing
Hi,

kanns auch nachvollziehen, und hab auch schon eine Erklärung parat.

Schuld sind die leeren Zeilen! Jede leere Zeile erzeugt einen Fehler in der Sortierung. Sind alle Zeilen mit Zahlen gefüllt, arbeitet die Sortierung - wie gewohnt - korrekt. Wie lange ist dieser Bug jetzt eigentlich schon unentdeckt geblieben?

So, hab jetzt eine zusätzliche Sicherung in die Sortierung eingebaut, sodass auch die leeren Zeilen richtig bearbeitet werden. Im Anhang eine bug-bereinigte Version der Listview.dll.

88 kB
Hochgeladen:18.03.2007
Ladeanzahl185
Herunterladen
 
18.03.2007  
 




Jörg
Sellmeyer
Wow! Das nenn ich Service! Und gleich die neue Version!
Ich glaube allerdings, daß der Haken bei Walter ein Anderer ist. Mit diesem Code tritt es nämlich immer noch auf.
KompilierenMarkierenSeparieren
besser nicht im Interpreter laufen lassen, sonst könnt ihr erstmal Kaffee trinken gehen!
 $I Listview_Funktionen.inc
Declare LVDllHdl&
Declare LVItemtexts#,LVbereich#,LVBuffer#,LVParamBuffer#
Dim LVParamBuffer#,320
Dim LVItemtexts#,16384
LVDllHdl&=UseDll(Listview.dll)
Declare ListView2&

Proc TextListView2

    WhileLoop 0,16000

        SetItem ListView2&,Test  + Format$(0000,&Loop),Test,Test,Format$(0000,Rnd(&Loop)),Test,Test,Test,Test,Test,Test

    Wend

EndProc

Proc SetListView2

    InitMessages(%hwnd)
    Declare tmptxt$
    tmptxt$=Spalte 1
    IColumn(ListView2&,Addr(tmptxt$),200,1)
    tmptxt$=Spalte 2
    IColumn(ListView2&,Addr(tmptxt$),140,0)
    tmptxt$=Spalte 3
    IColumn(ListView2&,Addr(tmptxt$),100,0)
    tmptxt$=Spalte 4
    IColumn(ListView2&,Addr(tmptxt$),100,0)
    IColumn(ListView2&,Addr(tmptxt$),100,0)
    IColumn(ListView2&,Addr(tmptxt$),100,0)
    IColumn(ListView2&,Addr(tmptxt$),100,0)
    IColumn(ListView2&,Addr(tmptxt$),100,0)
    IColumn(ListView2&,Addr(tmptxt$),100,0)
    IColumn(ListView2&,Addr(tmptxt$),100,0)
    IColumn(ListView2&,Addr(tmptxt$),100,0)
    TextListView2
    ShowListView(ListView2&,1,1,Width(%hwnd) - 2,Height(%hwnd) - 2)

EndProc

Proc ExitLV

    Dispose LVItemtexts#
    Dispose LVParamBuffer#
    CloseMessages(%hwnd)
    FreeDll LVDllHdl&

EndProc

UserMessages 16
WindowStyle $218
Window 100,100 - 620,520
ListView2&=CreateListView(%hwnd,%hinstance,0,14417146,-1,$0)
SetListView2
SetColumnAlignment(ListView2&,0,1)
Autosortlistview(ListView2&,2,0,1,2)
Update(ListView2&)
Declare ende%

WhileNot ende%

    WaitInput

    If %umessage = 16

        ende% = 1

    EndIf

Wend

ExitLV

Wenn man erst Spalte 4 sortiert, läßt sich danach Spalte 1 nicht mehr sortieren. Man muß wohl den Klick auf den Spaltenbutton abfangen und die Autosortiererei für Spalte 4 aufheben um Spalte 1 zu sortieren. Das ist aber wahrscheinlich nicht Sinn das Features, oder?
Gruß
Jörg

[offtopic]Habe ich schon erwähnt, daß Dir die Vorschau extrem gut gelungen ist, iF? Nein? Ok - also die Vorschau ist Dir extrem gut gelungen![/offtopic]
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
18.03.2007  
 



[offtopic]
Jörg Sellmeyer
[offtopic]Habe ich schon erwähnt, daß Dir die Vorschau extrem gut gelungen ist, iF? Nein? Ok - also die Vorschau ist Dir extrem gut gelungen![/offtopic]




Danke.
[/offtopic]
 
18.03.2007  
 




Frank
Abbing

Wenn man erst Spalte 4 sortiert, läßt sich danach Spalte 1 nicht mehr sortieren.


Hm, kann ich nicht bestätigen. Mal abgesehen davon, dass du versuchst,in deinem Testprogramm Spalte 1 nach Zahlen zu sortieren, obwohl es eindeutig Texte enthält. Text 1353 ist nunmal keine Zahl und muss folglich nach Buchstaben sortiert werden...
Walters Code funktioniert einwandfrei mit der neuen Dll!
 
18.03.2007  
 




Jörg
Sellmeyer
Hast Recht. Bei mir funktioniert es auch!
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
18.03.2007  
 




Walter
Köhler
Im Ernst, freut mich auch mal was Geben zu können als nur zu nehmen.
Und wenn´s nur der Hinweis auf einen Buck ist.
Gut das Frank das sofort korrigiert hat. Ich hatte mir schon die Arbeit gemacht und alle leeren Zellen mit 9999 zu füllen, sieht aber Scheiße aus; kann ich also wieder weg machen.
@ Frank mit dieser CSV Datei. MACHE MAL FOLGENDES

Erstelle eine Kopie
lösche einige Zeilen per Zufall
Füge in der Kopie einige Zeilen imaginär dazu

Und nun Stichwort COMPARE
Suche die Zeilen, die sich in Spalte1 +Spalte2 (Interpret und Titel) unterscheiden.
Ich komm mit einfacher Schleife auf 3 Sekunden, unter der Voraussetzung einer eindeutigen Sortierung beider Listview nach gleichen Kriterien in Spalte1+2
via Sortmanual (gut das es das gibt, sonst dauert die Sache endlos)
 
WKS Win XP Xprofan 10 AMD 1.6GHz 1GB Ram
19.03.2007  
 




Walter
Köhler
Ist nur ein Ausschnitt Horst.
Habe insgesamt 156 CD`s mit je ca. 200 MP3 Songs.
(Ist halt mein Hobby, solange ich denken kann )
Ich wollte nicht eher Alles einlesen, bis das Gesamtprogram steht.
Sieht schon ganz nett aus, werde das dann mal vorstellen wenn´s fertig ist.
 
WKS Win XP Xprofan 10 AMD 1.6GHz 1GB Ram
19.03.2007  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

7.836 Betrachtungen

Unbenanntvor 0 min.
Peter Max Müller20.06.2013
Frank Vorholzer30.06.2012
Andreas Koch22.05.2012
Thomas Freier29.06.2011

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie