DynamicResultSet, Sorted- mit Basic

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

khsc7
***
Beiträge: 50
Registriert: Mo, 05.11.2007 13:08

DynamicResultSet, Sorted- mit Basic

Beitrag von khsc7 »

hallo miteinander,

hat da schon jemand Erfahrungen mit?
Ich suche ne schnelle Methode zum Sortieren von Daten

Danke
Hermann
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: DynamicResultSet, Sorted- mit Basic

Beitrag von komma4 »

Wieso das ResultSet nicht schon sortiert ausgeben (SQL: ORDER BY-Klausel)?

Wie viele Daten sind denn betroffen? Reicht eine einfache bubblesort Routine?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
khsc7
***
Beiträge: 50
Registriert: Mo, 05.11.2007 13:08

Re: DynamicResultSet, Sorted- mit Basic

Beitrag von khsc7 »

Hallo,
1. da ist keine Datenbank dahinter
-> sind einfach nur viele File-Namen (bis zu 1200),
die per klick schnell mal in einer neuen Sortierung in einer Listbox angezeigt werden sollen

2. Bubblesort ?
das sagt mir leider nix - wäre das ne Alternative ?

Danke
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: DynamicResultSet, Sorted- mit Basic

Beitrag von komma4 »

khsc7 hat geschrieben:2. Bubblesort ?
aus dem OOo Wiki, Basic Guide, folgendes Beispiel

Code: Alles auswählen

Sub Sort
  Dim Entry(1 To 10) As String
  Dim Count As Integer
  Dim Count2 As Integer
  Dim Temp As String

  Entry(1) = "Patty"
  Entry(2) = "Kurt"
  Entry(3) = "Thomas"
  Entry(4) = "Michael"
  Entry(5) = "David"
  Entry(6) = "Cathy"
  Entry(7) = "Susie"
  Entry(8) = "Edward"
  Entry(9) = "Christine"
  Entry(10) = "Jerry"

  For Count = 1 To 10
    For Count2 = Count + 1 To 10
      If Entry(Count) > Entry(Count2) Then
        Temp = Entry(Count)
        Entry(Count) = Entry(Count2)
        Entry(Count2) = Temp
      End If
    Next Count2
  Next Count

  For Count = 1 To 10
    Print Entry(Count)
  Next Count

End Sub
1200 Einträge für eine Listbox sind schon eine Menge....

Hilft das?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
khsc7
***
Beiträge: 50
Registriert: Mo, 05.11.2007 13:08

Re: DynamicResultSet, Sorted- mit Basic

Beitrag von khsc7 »

Moin + Danke,
so sieht meine bisherige Lösung auch aus,
ich wußte nur nicht, daß das als BubbleSort bezeichnet wird.
ich hätte es nur gern elwas schneller

Hermann
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: DynamicResultSet, Sorted- mit Basic

Beitrag von komma4 »

Ja, es gibt auch schnellere Sortieralgorithmen als den bubble sort - ob sich das bei 1200 Einträgen schon auswirkt ...?

Die Frage, die sich mir stellt, ist Folgende: ist eine Listbox mit 1200 Einträgen dem Benutzer zuzumuten? Kannst Du die Anzahl der Einträge nicht reduzieren - oder gruppieren (2 Listboxen einsetzen)
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
khsc7
***
Beiträge: 50
Registriert: Mo, 05.11.2007 13:08

Re: DynamicResultSet, Sorted- mit Basic

Beitrag von khsc7 »

Hallo,
das werden leider ca 1200 Textfiles aus denen jeweils 1 ODF generiert werden soll
momentan sinds ca 250, von denen die meisten noch nicht bearbeitet sind.
die blende ich standardmäßig (anhand des Datums) aus

vorgesehen ist noch ein Textfeld, mit dem ich die Namen spezifizieren kann
und das Ausbenden für solche für die es bereits neuere ODFs gibt

es soll aber möglich sein, alle anzuzeigen und nach Datum oder Name zu sortieren


Hermann
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: DynamicResultSet, Sorted- mit Basic

Beitrag von komma4 »

Andrew schreibt in seinem freien Makro Dokument [Kap. 9.1.2 Array of Strings], dass der binäre Vergleich von strings viel schneller sei (siehe sein Code dort, mit Abbruchbedingung!).
Du hast doch Zeichenketten vorliegen?

Wie vergleichst Du die Ausführungszeiten? Mit timer?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
khsc7
***
Beiträge: 50
Registriert: Mo, 05.11.2007 13:08

Re: DynamicResultSet, Sorted- mit Basic

Beitrag von khsc7 »

Moin,

erstmal Danke für den Hinweis aufs AndrewMakro.
Das hatte ich irgendwie aus den Augen verloren.

aber leider weist er nur mal kurz auf Binär-Suche hin, hab aber kein Beispiel gefunden wie das geht.
Zum Sortieren verwendet er auch nur den BubbleSort.

Zur Zeitmessung:
Bisher reichte das Zählen der Umdrehungen der Sanduhr (grins!), d.h vor der Verbesserung der Datum-String-Konvertierung.

Hermann
Antworten