habe ein ganz großes Problem mit Sortarray bzw. PureLVSORT.
Habe folgende Einträge in einem Array oder Listicon:
und ich diese mit den obengenannten Befehlen sortiere, finde ich den Namen "Özgar" am Ende der Liste wieder.
"Abben"
"Otten"
"Öztar"
"Oncken"
"Paulsen"
"Weiser"
"Zimmer"
Bei PureLVSORT ist es noch verrückter. da kann der Name überall sein.
Wie kann ich ein Array bzw. Listicon unter Berücksichtigung der deutschen Umlaute sortieren oder gibt es da keine Möglichkeit?
hier der Code zum probieren:
Macht mal einen rechten Doppelclick im Listicon und dann mehrmals ein Click auf dem Spaltenkopf und wundert euch.
Versuche das mit dem Befehl "Sortdaten"
Alles klar, oder?
Code: Alles auswählen
Procedure SortDaten(Ngadget.l,Column.l,ColumnCount.l)
AnzahlPositionen = CountGadgetItems(Ngadget)
Dim Feld.s(AnzahlPositionen-1)
For i = 0 To AnzahlPositionen-1
Eintrag.s=GetGadgetItemText(Ngadget,i,Column)
If Eintrag<>" "
For ii = 0 To ColumnCount-1
text$=GetGadgetItemText(Ngadget,i,ii)
Eintrag + "|" + text$
Next
Feld(i)= Eintrag
EndIf
Next
SortArray(Feld(),2)
ClearGadgetItemList(Ngadget)
For i = 0 To AnzahlPositionen-1
text$ = Feld(i)
Datenneu.s=""
For ii = 2 To ColumnCount+1
Datentext.s = StringField(text$,ii,"|")
Datenneu.s + Datentext+Chr(10)
Next
AddGadgetItem(Ngadget,-1,Datenneu)
Next
EndProcedure
#Window_0 = 0
#ListIcon_0 = 0
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 150, 302, "PureLVSORT Test", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#Window_0))
ListIconGadget(#ListIcon_0, 5, 5, 140, 285, "String", 136)
AddGadgetItem(#ListIcon_0, -1, "Abben" )
AddGadgetItem(#ListIcon_0, -1, "Otten" )
AddGadgetItem(#ListIcon_0, -1, "Öztar" )
AddGadgetItem(#ListIcon_0, -1, "Oncken")
AddGadgetItem(#ListIcon_0, -1, "Paulsen")
AddGadgetItem(#ListIcon_0, -1, "Weiser")
AddGadgetItem(#ListIcon_0, -1, "Zimmer")
EndIf
EndIf
EndProcedure
Open_Window_0()
; ListIcon Sort Setup
PureLVSORT_SelectGadgetToSort(#ListIcon_0, #PureLVSORT_ShowClickedHeader_No)
PureLVSORT_SetColumnType(#ListIcon_0, 0, #PureLVSORT_String)
;
Repeat
Event = WaitWindowEvent()
If EventType() = 2
;PureLVSORT_ClearGadget(#ListIcon_0)
EndIf
If EventType() = 3
AddGadgetItem(#ListIcon_0, -1, "Bopiz" )
PureLVSORT_SetColumnType(#ListIcon_0, 0, #PureLVSORT_String)
;SortDaten(#ListIcon_0,1,1)
EndIf
Until Event = #PB_Event_CloseWindow
End