Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Jens Hoffmann •--->

Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 16.07.2001 - 10:49 Titel: Alphabetischer Ordnerinhalt? - Finder, osax |
|
|
Hallo Forum
Wenn man den Inhalt eines Ordners per "list folder" einliest, ist diese Liste nicht alphabetisch sortiert. Gibt es eine (schnellere) Alternative zu einem Sortier-Algorithmus, z.B. eine OSAX?
Grüße, Jens |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 16.07.2001 - 14:41 Titel: Alphabetischer Ordnerinhalt? |
|
|
Hallo Jens,
ist nicht sortiert? Bei versch. Versuchen habe ich immer eine alphabetische Sortierung erhalten - kann aber auch sein, dass alle diese Ordner als Liste nach Namen sortiert waren und sind, sicher bin ich mir nicht.
Eine Scripting Addition für diesen Zweck ist mir nicht bekannt! Eine Möglichkeit wäre es Smile 1.8 zu benutzen - in diesem gibt es eine vorbereitetet Routine 'sort (list)' oder den bekannten quicksort-Handler zu benutzen. Ich weiß leider nicht wer diesen Handler geschrieben hat, ich habe den mal in einem MacUp-Workshop über AppleScript gefunden - und werde ihn jetzt trotzdem posten:
--Scriptanfang
on Qsort(liste, a, e)
set i to a
set j to e
set s to item a of liste
repeat while i < j
repeat while (i < j) and (s < item j of liste)
set j to j - 1
end repeat
if i < j then
set item i of liste to item j of liste
set i to i + 1
end if
repeat while (i < j) and (item i of liste <= s)
set i to i + 1
end repeat
if i < j then
set item (j) of liste to item (i) of liste
set j to j - 1
end if
end repeat
set item i of liste to s
-- ab hier Rekursion
if (i - a) > 1 then Qsort(liste, a, i - 1)
if (e - j) > 1 then Qsort(liste, j + 1, e)
return liste
end Qsort
-- Erzeuge n Zufallsahlen von 0 - 99
set n to 300
set liste to {}
repeat n times
set end of liste to random number from 0 to 99
end repeat
set start to current date
set liste to Qsort(liste, 1, n)
set fertig to current date
display dialog "Das Sortieren von " & n & " Daten dauerte " & ¨
fertig - start & " Sekunden"
--Scriptende _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
macgix •--->


Anmeldedatum: 13.12.2000 Beiträge: 206 Wohnort: K–ln
|
Verfasst am: 02.08.2001 - 00:49 Titel: Alphabetischer Ordnerinhalt? |
|
|
Äh, Folker
nix für ungut. Der Handler ist sehr elegant, funktioniert aber nur mit Zahlen. Ich glaube, Jens braucht das aber für Dateinamen...
Peter hat einen Handler für die Sortierung einer Liste mit Textelementen in die SMM-Datenbank für die Verwaltung der Downloadrubrik eingebaut, er sollte den Handler hier mal posten.
Werde ihm das mal per eMail weitergeben.
Thomas _________________ [macgix] |
|
Nach oben |
|
 |
Folker •---->


Anmeldedatum: 11.12.2000 Beiträge: 649 Wohnort: Holsteinische Schweiz
|
Verfasst am: 02.08.2001 - 09:22 Titel: Alphabetischer Ordnerinhalt? |
|
|
Äh Thomas,
warum setze ich dann genau diesen (abgewandelten) Handler für eben genau diesen Zweck ein? Und det funzt!
set liste to {"z", "B", "G", "Z", "o", "C", "c", "t", "ä", "Ö", "b"}
set n to count items of liste
set liste to Qsort(liste, 1, n)
log liste
Den Q-Sort Handler erspare ich mir hier - einfach mal testen!
Gruß,
Folker _________________ Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign |
|
Nach oben |
|
 |
macgix •--->


Anmeldedatum: 13.12.2000 Beiträge: 206 Wohnort: K–ln
|
Verfasst am: 02.08.2001 - 09:37 Titel: Alphabetischer Ordnerinhalt? |
|
|
Weil ich wohl beim Verfassen des Postings von vorübergehender Blödheit geschlagen war, nobody's perfect.
Thomas _________________ [macgix] |
|
Nach oben |
|
 |
Jens Hoffmann •--->

Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 02.08.2001 - 12:05 Titel: Alphabetischer Ordnerinhalt? |
|
|
Hallo
Danke für die Tipps. Ich bin inzwischen auf den Befehl "order list" aus den AkuaSweets gestossen, der offenbar das gleiche macht wie Qsort. Allerdings habe ich da immer noch ein Problem. Die Sortierung beider Wege ist "unnatürlich", d.h. Zahlen werden nicht wirklich in der normalen Reihenfolge sortiert: (1,17,133) wird als (1,133,17) sortiert.
Das ist die Art, wie der Finder sortiert (wen das stört, kann die Systemerweiterung "Natural Order" (Freeware) unter http://www.resexcellence.com/archive_software/index4.shtml runterladen). Leider verwendet AS weitehin die falsche Sortierung. Kann man Qsort so ändern, das dies berücksichtigt wird? Hinweise langen erstmal, ich will versuchen, mich dann selbst durchzuwurtscheln (gegen ein fertiges Script habe ich allerdings auch nichts einzuwenden).
Danke und Grüße, Jens |
|
Nach oben |
|
 |
macgix •--->


Anmeldedatum: 13.12.2000 Beiträge: 206 Wohnort: K–ln
|
Verfasst am: 02.08.2001 - 12:50 Titel: Alphabetischer Ordnerinhalt? |
|
|
Also, bei mir klappt die Sortierung. Unter Mac OS 9.1 und AppleScript 1.6.
Thomas _________________ [macgix] |
|
Nach oben |
|
 |
Jens Hoffmann •--->

Anmeldedatum: 07.05.2001 Beiträge: 175
|
Verfasst am: 02.08.2001 - 13:13 Titel: Alphabetischer Ordnerinhalt? |
|
|
Ich meine folgendes:
set liste to {"news17.html", "news1.html", "news133.html"}
set n to count items of liste
set liste to Qsort(liste, 1, n)
Bei mir (OS 9.1, AS 1.6) ergibt das
{"news1.html", "news133.html", "news17.html"}
und das ist nicht korrekt, weil die 17 einfach vor der 133 kommen sollte.
Jemand eine Idee?
Grüße, Jens |
|
Nach oben |
|
 |
macgix •--->


Anmeldedatum: 13.12.2000 Beiträge: 206 Wohnort: K–ln
|
Verfasst am: 02.08.2001 - 13:23 Titel: Alphabetischer Ordnerinhalt? |
|
|
Hallo Jens
Ein altes Leiden, ich weiß. Deswegen sollte man die Dateinamen normieren, indem man fehlende Nullen ergänzt. Das kann auch nur innerhalb des Skriptes geschehen, nach der Sortierung strippt man die voranstehenden Nullen in den Dateinamen wieder weg und liefert die Liste zurück. So müssen die Dateinamen nicht wirklich geändert werden, dauert alledings je nach Anzahl der Dateien eine kleine Weile.
Also ist es wohl besser, gleich alle Dateien mit vorangestellten Nullen im Namen zu benennen oder die Namen mit einem Skript im Finder anzupassen und Links der Web-Site mit BBEdit und GREP-Suche reparieren.
Also Schleife bauen, von hinten beginnen, die Dateinamen auf Zahlenendungen vor der Dateinamenerweiterung ".html" parsen, Anzahl benötigter Nullen hineinkleistern, Schleife verlassen und so weiter...
Gruß,
Thomas _________________ [macgix] |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2002 phpBB Group Deutsche Übersetzung von phpBB.de
|
|
|