Applescript - hur finner man enklast och snabbast enskild data i större radmängder?

Tråden skapades och har fått 1 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2012-03-26 23:41

Hej,

Finns det någon metod i AppleScript för att söka direkt rätt på en enskild rad i en sträng-variabel innehållande en mängd rader?

Utgångspunkt: två stycken flerradiga kolumner med data förvarade i varsin strängvariabel - t.ex kolumnerna:

ACD 1 3
DBA 2 5
BCA 4 6
ACB 1 1
DBC 2 1
CDA 2 4
ADC 3 1
DCA 3 5

... och

CDA
ADC
BCA
DCA
ACB
DBC
DBA
CBA
DCC
BCB
AAC

Följande skall utföras: de två siffervärdena framför bokstavskombinationerna i den övre kolumnen skall förbindas med motsvarande bokstavskombinationer i den nedre kolumnen.

En komplikation är att bokstavskombinationerna står i olika ordning i de båda variablerna. Den enda möjlighet jag känner till är använda en repetitionsrutin som prövar varje bokstavskombination från ena kolumnen mot varje bokstavskombination i den andra kolumnen. Vid befunnen likhet kan värdena i den övre kolumnen förbindas med rätt rad i den nedre kolumnen.

Problemet med den lösningen är dock att vid större radmängder som några tusen rader i varje kolumn så tar skriptet lång tid att köra. Finns det alltså någon effektiv rakt-på-sak-metod?

Nej, det finns ingen direkt metod. Antingen använder man repetition (som man dock kan snabba upp), eller så använder man unix-programmet "join", vars namn mer än antyder vad det gör.

Mao, skriv ner de två listorna till två filer, med unix-radbrytningar och sorterade, använd sedan "join" för att göra det du vill (se man-sidan för syntax)

1
Bevaka tråden