| |
|
|
- Page 1 - |
|
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 |
|
|
| |
|
|
|
| |
|
- Page 1 - |
|
Frank Abbing | Hm, so eine Grenze ist mir nicht bekannt. Aber die Csv-File ist so ziemlich undurchsichtig. Wenn du mir den Code und alle benötigten File zuschickst, schaue ich mir die Sache gerne mal an. |
|
|
| |
|
|
|
| @Hallo Walter Da mein ADRESSOR-1.0 ebenfalls mit 16 Spalten corre, habe ich Deine CSV-File 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 Hast Du hier die richtigen Werte stehen (die 16 ist wichtig) ? |
|
|
| |
|
|
|
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. |
|
|
| 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-File Deiner Festplatte ? |
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
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. KompilierenMarkierenSeparierenbesser 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
ass=s4 href='./../../funktionsreferenzen/xprofan/exitlv/'>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 per Spalte 4 aufheben um Spalte 1 zu sortieren. Das ist aber wahrscheinlich nicht Sinn das Features, oder? Saluto 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] |
|
|
| |
|
|
|
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! |
|
|
| |
|
|
|
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 File. 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 Cerca 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) |
|
|
| |
|
|
|
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. |
|
|
| |
|
|
| |
|
- Page 2 - |
|
|
Frank Abbing |
Und nun Stichwort COMPARE Cerca 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)
Ich hab die Funktion nicht vergessen. Zum nächsten Update plane ich sie einzubauen:
CompareColumns(quellllistview1,spalte,quelllistview2,spalte,ziellistview,spalte,flag) |
|
|
| |
|
|