Seite 1 von 1

DynamicResultSet, Sorted- mit Basic

Verfasst: Di, 13.11.2007 11:55
von khsc7
hallo miteinander,

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

Danke
Hermann

Re: DynamicResultSet, Sorted- mit Basic

Verfasst: Di, 13.11.2007 12:42
von komma4
Wieso das ResultSet nicht schon sortiert ausgeben (SQL: ORDER BY-Klausel)?

Wie viele Daten sind denn betroffen? Reicht eine einfache bubblesort Routine?

Re: DynamicResultSet, Sorted- mit Basic

Verfasst: Di, 13.11.2007 13:56
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

Re: DynamicResultSet, Sorted- mit Basic

Verfasst: Di, 13.11.2007 14:19
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?

Re: DynamicResultSet, Sorted- mit Basic

Verfasst: Mi, 14.11.2007 09:54
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

Re: DynamicResultSet, Sorted- mit Basic

Verfasst: Mi, 14.11.2007 13:57
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)

Re: DynamicResultSet, Sorted- mit Basic

Verfasst: Mi, 14.11.2007 14:37
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

Re: DynamicResultSet, Sorted- mit Basic

Verfasst: So, 18.11.2007 10:03
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?

Re: DynamicResultSet, Sorted- mit Basic

Verfasst: Mo, 19.11.2007 12:45
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