Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Alphabetischer Ordnerinhalt? - Finder, osax

 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Jens Hoffmann
•--->
•--->


Anmeldedatum: 07.05.2001
Beiträge: 175

BeitragVerfasst am: 16.07.2001 - 10:49    Titel: Alphabetischer Ordnerinhalt? - Finder, osax Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 16.07.2001 - 14:41    Titel: Alphabetischer Ordnerinhalt? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
macgix
•--->
•--->


Anmeldedatum: 13.12.2000
Beiträge: 206
Wohnort: K–ln

BeitragVerfasst am: 02.08.2001 - 00:49    Titel: Alphabetischer Ordnerinhalt? Antworten mit Zitat

Ä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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Folker
•---->
•---->


Anmeldedatum: 11.12.2000
Beiträge: 649
Wohnort: Holsteinische Schweiz

BeitragVerfasst am: 02.08.2001 - 09:22    Titel: Alphabetischer Ordnerinhalt? Antworten mit Zitat

Ä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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
macgix
•--->
•--->


Anmeldedatum: 13.12.2000
Beiträge: 206
Wohnort: K–ln

BeitragVerfasst am: 02.08.2001 - 09:37    Titel: Alphabetischer Ordnerinhalt? Antworten mit Zitat

Weil ich wohl beim Verfassen des Postings von vorübergehender Blödheit geschlagen war, nobody's perfect.

Thomas
_________________
[macgix]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jens Hoffmann
•--->
•--->


Anmeldedatum: 07.05.2001
Beiträge: 175

BeitragVerfasst am: 02.08.2001 - 12:05    Titel: Alphabetischer Ordnerinhalt? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
macgix
•--->
•--->


Anmeldedatum: 13.12.2000
Beiträge: 206
Wohnort: K–ln

BeitragVerfasst am: 02.08.2001 - 12:50    Titel: Alphabetischer Ordnerinhalt? Antworten mit Zitat

Also, bei mir klappt die Sortierung. Unter Mac OS 9.1 und AppleScript 1.6.

Thomas
_________________
[macgix]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jens Hoffmann
•--->
•--->


Anmeldedatum: 07.05.2001
Beiträge: 175

BeitragVerfasst am: 02.08.2001 - 13:13    Titel: Alphabetischer Ordnerinhalt? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
macgix
•--->
•--->


Anmeldedatum: 13.12.2000
Beiträge: 206
Wohnort: K–ln

BeitragVerfasst am: 02.08.2001 - 13:23    Titel: Alphabetischer Ordnerinhalt? Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Fischer-Bayern.de Foren-Übersicht -> AppleScript-Forum Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
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


AppleScript für absolute Starter