zeile in csv OHNE repeat auswählen mit applescript?

imacler

Mitglied
Thread Starter
Registriert
10.02.2010
Beiträge
49
Reaktionspunkte
8
hi,

ich habe ein problem, wo ich syntaktisch einfach nicht dahinter komme.

ein langes .csv-file (100.000 einträge), mit Identifier in der ersten Spalte, ;-separiert.

ich möchte eine Suche nach dem Identifier absetzen, und SOFORT (ohne Schleife) zur Zeile springen, die mit dem Identifier beginnt. und diese ganze zeile dann als ergebnis zurückbekommen.

also, stark reduziert, in

123;text1;text1a
234;text2;text2a
456;text3;text3a
578;text4;text4a

soll suche in der ersten spalte nach "234" die zeile "234;text2;text2a" zurückgeben.

bei gleichen mehreren zeilen mit gleichen Identifier, eine beliebige, die sind dann ident.

gefühlsmässig sollte es irgendwie so gehen:

set Ergebnis to paragraph of csv-List whose item 1 = suchstring

aber, hab schon x-anläufe gestartet, und scheitere immer daran, dass ich die zeile nicht zu fassen bekomme.

mit schleifendurchlauf hab ich schon eine funktionierende version fertig - aber, ab 5.000 einträgen im csv geht das performance-mässig in die knie, und, will gar nicht wissen, was bei 100.000 einträgen passiert.

möchte mir einen handler draus machen, csv-datei und suchstring übergeben, und ergebniszeile zurückbekommen.

wenn jemand eine idee oder einen link hat, das wär cool!

lg,
imacler (noch ganz neu am imac)

ps: applescript ist schon cooler, aber, halt alles anders syntaktisch als in VB ..
 
set Ergebnis to do shell script "grep -m 1 '^234' " & quoted form of POSIX path of (dateiname as alias)

Wenn Du das Ergebnis nicht in Applescript weiterverarbeiten musst, würde ich das Ganze gleich in der Shell machen.
 
Zuletzt bearbeitet:
danke

super, danke .. tja, oft führt der umweg geradlinig ans ziel.

you saved my day :)
 
Zurück
Oben Unten