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

Listen in AppleScript - Kann ich sortieren?

 
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
Pesse
•-->
•-->


Anmeldedatum: 10.09.2002
Beiträge: 84

BeitragVerfasst am: 01.10.2002 - 11:24    Titel: Listen in AppleScript - Kann ich sortieren? Antworten mit Zitat

Hi

Eine Frage: Kann ich in Listen sortieren? Z.B. Nummern oder so asc oder desc sortieren? Wär sehr hilfreich!
Oder hat irgend jemand ne Idee, wie man schnell anhand von Namenskonvertierungen prüfen kann, welcher Name aktueller ist und verwendet werden muss?

Gruß Pesse, danke im Voraus
_________________
<>< Think logical! ><>
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Folker
•---->
•---->


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

BeitragVerfasst am: 01.10.2002 - 14:22    Titel: Listen in AppleScript Antworten mit Zitat

Moin,

also, so ohne Programm (-Befehl) oder osax kann AppleScript nicht so einfach sortieren. Folgendes script kann es aber:

--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"

-- Ende Script

mittels reverse of {list} kann asc./desc. dargestellt werden.

Gruß,
Folker
_________________
Gruß,
Folker Brandt
=============================
Systemberatung · Datenbanken · Webdesign
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Pesse
•-->
•-->


Anmeldedatum: 10.09.2002
Beiträge: 84

BeitragVerfasst am: 01.10.2002 - 14:25    Titel: Listen in AppleScript Antworten mit Zitat

Gibts vielleicht ne osax dafür? So ein Script kostet halt saumäßig Performance.....
_________________
<>< Think logical! ><>
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Snow
Administrator
Administrator


Anmeldedatum: 21.11.2000
Beiträge: 1946
Wohnort: Deiningen

BeitragVerfasst am: 01.10.2002 - 14:48    Titel: Listen in AppleScript Antworten mit Zitat

Hallo Pesse,

Die OSAX "sort" aus der GTQ Scripting Library kann Listen sortieren.

sort: sort a list
sort list -- the list of items to sort
[ in ascending order/descending order] -- sort direction
[ case sensitivity boolean] -- case sensitivity setting for sorting strings
[ order a list of order spec] -- list of keys -- first record is the first key and direction, etc.
Result: list -- the list with its elements sorted


Dann wäre noch die "XCMD OSAX":

Sort: Sort an list. Written by Gary Bond.
Sort a list of string -- |\r| the data to be sorted
Result: a list of string


Dann gäbe es noch Acme Script Widgets 3.0 (Shareware)- jedoch auch für OS X:

Acme sort: sorts a list of strings or a list of lists of strings
Acme sort a list of anything -- List of things to sort.
[ by item number small integer] -- 1-based index of item to sort on (1 is default)
[ into ascending order/descending order] -- sort order. Ascending is default.
Result: list -- sorted list


Und Akua Sweets 1.4.3:

order list: Sort a list (or lines of text), optionally removing duplicates. All parameters are valid for list sorts, only the parameters from ³as² on are for text sorts.
order list a list of anything -- A list of text items, numbers or just text with lines to sort.
[ synchronizing a list of list] -- A list of lists that should be kept in the same order. They must be EXACTLY the same length as the source list. Sublists are not synchronized.
[ with class order a list of type class] -- A list of the ordering of classes you prefer. E.g. { integer, real, string } to sort integers at head of list.
[ with recursion depth small integer] -- The maximum depth to recurse into sub-lists.
[ with sublist weight a list of small integer] -- A list that determines how sublists are sorted in their parent. E.g. { 3,4,1 } will sort on the 3rd item of sublists, then the 4th, then the first. Default is { 1,2,3Ö }
[ removal of duplicates boolean] -- Remove equal items? Default is FALSE.
[ with sublist description a list of list] [ as type class] [ by string] -- The delimeters to skip to the item to sort by. E.g. "1,2,3,4" by ",," will sort on the third item (two commas are passed). ëby 8í will sort from 8th character on.
skipping string [ in language point] -- Use international text comparison { Script, Language } instead of default ASCII - use { 0,0 } to avoid ASCII sort and use Systemís International Sort.
[ case sensitivity boolean] -- Should upper/lower be different? Default is FALSE.
[ reversal boolean] -- Reverse order?
[ within range point] -- The first/last items to be sorted. Default is { 1, -1 }.
Result: anything -- The list (or text) now sorted.

_________________
Peter
-
Fischer-Bayern.de|Shadetreemicro.com


Zuletzt bearbeitet von Snow am 22.02.2003 - 04:23, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen AIM-Name
Pesse
•-->
•-->


Anmeldedatum: 10.09.2002
Beiträge: 84

BeitragVerfasst am: 02.10.2002 - 10:08    Titel: Listen in AppleScript Antworten mit Zitat

Vielen Dank! Das hilft mir doch schon sehr weiter!!

Gruß Pesse
_________________
<>< Think logical! ><>
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Nemesis
•->
•->


Anmeldedatum: 04.01.2001
Beiträge: 9

BeitragVerfasst am: 05.06.2003 - 11:55    Titel: Antworten mit Zitat

Hallo,

ich weiß nicht, ob es noch von Interesse ist, aber ein reiner QuickSort ist wesentlich schneller als der von Folker gepostete Quelltext. Auf meinem Rechner benötigt der Algorithmus von Folker 514 Sekunden zum Sortieren von 5000 Zahlen, der nachfolgende hingegen nur 99 Sekunden:

on QuickSort(Liste)
set Laenge to count Liste
if Laenge < 2 then return Liste
set ListeKleiner to {}
set ListeGleich to {}
set ListeGroesser to {}
set Vergleich to item 1 of Liste

set Zaehler to 1
repeat while Zaehler <= Laenge
set Element to item Zaehler of Liste
if Element < Vergleich then
set end of ListeKleiner to Element
else if Element > Vergleich then
set end of ListeGroesser to Element
else
set end of ListeGleich to Element
end if
set Zaehler to Zaehler + 1
end repeat
return (QuickSort(ListeKleiner) & ListeGleich & QuickSort(ListeGroesser))
end QuickSort

Gruß

Flo
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
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