Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Software>Applescript und Numbers

Applescript und Numbers

gbkom26.07.2309:59
Moin,
ich öffne eine CSV-Datei per Applescript in Numbers. Dabei benutzt Numbers die Textcodierung "Windows Latin 1", die CSV-Datei ist aber "Mac OS Lateinisch". Kann ich das per Applescript ändern, oder muss ich die Quelldatei umkodieren?

Und ein Feld wird als Text importiert, soll aber Zahl mit 2 Dezimalstellen und Tausender-Trennzeichen sein. Bei "set the format of column x to number" wird alles auf Automatik gesetzt. Gleiche Frage: Kann ich das per Applescript ändern, oder muss ich die Quelldatei umkodieren?

Danke!

<Deutsche Sprache – schwere Sprache, aber ein Witz gegen AppleScript>
+1

Kommentare

marm26.07.2310:56
Numbers versucht, die Textcodierung automatisch zu erkennen.
Du könntest die Textcodierung der csv-Quelldatei vorher mit dem Kommando iconv ändern (siehe iconv --help).
0
gbkom26.07.2311:06
Danke, versuch' ich Mal. Allein die Liste der Kodierungen ist ja beachtlich

Das Format der Zahlen wird richtig gesetzt, wenn die Zahl als Text mit #.##0,00 formatiert übergeben und dann das Zellformat auf "number" gesetzt wird. Also muss ich wohl vor dem Import die Zahlen in der CSV bearbeiten...
0
gbkom27.07.2310:39
Eine einfache Routine zum Formatieren von Zahlen war leider nirgends zu finden -- immer kamen irgendwelche Script-Erweiterungen zum Einsatz. Drum hab' ich mir quick'n'dirty was gebastelt, vielleicht kann das ja jemand gebrauchen. Es formatiert Zahlen, die als Wert oder String übergeben werden, nach dem Muster #.##0,00. Kann man bestimmt auch schöner machen, funktioniert aber...

use scripting additions

display dialog FormatZahl("123,45")
display dialog FormatZahl(123.45)


on FormatZahl(dieZahl)
    set TextZahl to dieZahl as text
    set Minus to (text 1 of TextZahl = "-")
    if Minus then set TextZahl to text 2 thru -1 of TextZahl
    set x to offset of "," in TextZahl
    if x = 1 then
        
        set TextZahl to "0" & TextZahl
        set x to 2
    end if
    if x > 0 then
        set Vor to text 1 thru (x - 1) of TextZahl as string as number
        set Nach to text (x + 1) thru -1 of TextZahl
        set Nach to text 1 thru 2 of (Nach & "00")
    else
        set Vor to TextZahl as string as number
        set Nach to "00"
    end if
    -- display dialog "Zahl = " & TextZahl & return & "Minus = " & Minus &     return & "x = " & x & return & "Vor = " & Vor & return & "Nach = " & Nach
    set Vor to Vor as text
    if Vor as number > 999 then
        set y to the length of Vor
        if y < 7 then set xVor to text 1 thru (y - 3) of Vor & "." & text (y - 2) thru -1 of Vor
        set Vor to xVor
    end if
    set TextZahl to Vor & "," & Nach
    if Minus then set TextZahl to "-" & TextZahl
    return TextZahl
    
end FormatZahl
+1
gbkom27.07.2311:22
marm
Numbers versucht, die Textcodierung automatisch zu erkennen.
Du könntest die Textcodierung der csv-Quelldatei vorher mit dem Kommando iconv ändern (siehe iconv --help).
iconv sagt leider in allen versuchten Kombinationen von [-f ENCODING] "can not convert".

BBEdit weigert sich, die Datei zu öffnen ("The specified encoding is not supported for this operation (macOS error code: -8738)". Apple sagt dazu "kTextUnsupportedEncodingErr -- The encoding or mapping is not supportedfor this function by the current set of tables or plug-ins". Also gibt Applescript beim Erstellen einer Datei offenbar gar keine Codierung an.

Mit TextEdit kann ich die Datei öffnen, kopiere den ganzen Text, füge ihn in ein leeres BBEdit-Dokument ein, speichere es unter dem gleichen Namen und -- tata! -- in Numbers kann ich die Datei öffnen und die Sonderzeichen stimmen.

Auch ein Anlegen der Datei in AppleScript als ".txt" und späteres Umbenennen in ".csv" hat nichts gebracht.

Jemand noch eine Idee oder gar Lösung?
0
marm27.07.2311:42
Du könntest die Datei mit visidata bearbeiten. Das lässt sich per Homebrew installieren und bietet zahlreiche Optionen, die die Automatisierung (z.B. per Kommandozeile) sicherlich vereinfacht.
Hier ist eine Option für encoding .
Davon abgesehen ist visidata ohnehin eine Empfehlung!
0
ttwm27.07.2313:13
Zwecks Muster #.##0,00 - vielleicht hilfreich?

Abgeleitet von Listing 20-19:

use framework "Foundation"
convertNumberToDecimalString(29876546789.66)
on convertNumberToDecimalString(theNumber)
    set theFormatter to init() of alloc() of NSNumberFormatter of current application
    setFormat_("#,##0.00") of theFormatter
    set theFormattedNumber to stringFromNumber_(theNumber) of theFormatter
    return (theFormattedNumber as string)
end convertNumberToDecimalString

Nun muss man aber noch die Eingabe-Werte prüfen hinsichtlich Punkt oder Komma zur Abtrennung der Nachkommastelle
+1
ttwm27.07.2313:15
gbkom
BBEdit weigert sich, die Datei zu öffnen ("The specified encoding is not supported for this operation (macOS error code: -8738)". Apple sagt dazu "kTextUnsupportedEncodingErr -- The encoding or mapping is not supportedfor this function by the current set of tables or plug-ins". Also gibt Applescript beim Erstellen einer Datei offenbar gar keine Codierung an.
Ich komme gerade nicht mit…Wird die CSV-Datei auch mit einem AppleScript erstellt?
0
gbkom27.07.2313:52
ttwm
Ich komme gerade nicht mit…Wird die CSV-Datei auch mit einem AppleScript erstellt?
Ja! Das verstehe ich ja auch nicht...

set CSV_File to "/Users/gb/Library/Scripts/Postbank/Postbank Konvertiert.csv"
try
    open for access CSV_File with write permission
    set eof CSV_File to 0
on error errMsg number errNr
    close access CSV_File
    display dialog "Fehler " & errNr & return & errMsg buttons {"Mist"} cancel button "Mist"
end try

Ich hab' die Datei auch schon vorher gelöscht und einen neuen Namen vergeben -- immer das gleiche.
0
Nebula
Nebula27.07.2317:04
Mit dem Beispiel schreibst du in die Datei (write permissions), zum Lesen reicht das hier:

set CSV_File to "/Users/gb/Library/Scripts/Postbank/Postbank Konvertiert.csv"
set fileContent to read CSV_File
„»Wir werden alle sterben« – Albert Einstein“
0
ttwm27.07.2317:20
Kannst Du eine originale CSV-Datei, die sich bei Numbers wie beschrieben unsauber verhält und sich unter BBEdit und Co nicht öffnen lässt (und die keinen wichtigen Inhalt enthält – scheint sich ja um Kontoauszüge o. ä. zu handeln) erzeugen und bereit stellen?

Ich hab mit selbst-erstellten CSV und Numbers kein Problem, allerdings mit fremden CSV schon gerne… Ich tippe daher auf irgend eine Krux bei der CSV-Datei. Aber ohne Muster wird es schwierig weiter zu raten.

Generell würde ich ja die Schiene "Öffnen mit welchem-TextEditor-auch-immer und als UTF-8 abspeichern" ausprobieren…
0
ttwm27.07.2317:22
Nebula
Mit dem Beispiel schreibst du in die Datei (write permissions), zum Lesen reicht das hier:

set CSV_File to "/Users/gb/Library/Scripts/Postbank/Postbank Konvertiert.csv"
set fileContent to read CSV_File
Ich hab ihn so verstanden/seine Aussage gedeutet, dass er z. B. "Postbank.csv" irgendwo einliest und in "Postbank Konvertiert.csv" die überarbeitete Datei ausgibt.
+1
gbkom27.07.2317:27
Nebula
Mit dem Beispiel schreibst du in die Datei (write permissions), zum Lesen reicht das hier:
Darum geht es ja: Ich schreibe die Datei aus AppleScript, aber weder in Quick Look noch in Numbers kommen die Umlaute richtig und BBEdit bricht das Öffnen mit o.g Fehlermeldung ab. Nur TextEdit kann die Datei richtig öffnen inkl. Umlauten.

Die Frage ist: Wie setze ich die Textcodierung der zu schreibenden Datei?
ttwm
Zwecks Muster #.##0,00 - vielleicht hilfreich?
use framework "Foundation"
Danke für den Tip, aber das Framework ist mir einfach zu mächtig -- nur um "Mal eben" eine Zahl zu formatieren, möchte ich nicht einen Güterzug voller Routinen laden.
0
gbkom27.07.2317:41
ttwm
Kannst Du eine originale CSV-Datei, die sich bei Numbers wie beschrieben unsauber verhält und sich unter BBEdit und Co nicht öffnen lässt (und die keinen wichtigen Inhalt enthält – scheint sich ja um Kontoauszüge o. ä. zu handeln) erzeugen und bereit stellen?
Das Original nicht (Kundendaten), aber unten ein Auszug vom Script, mit dem eine CSV erzeugt wird, die genau das Problem hat.
Ich hab mit selbst-erstellten CSV und Numbers kein Problem, allerdings mit fremden CSV schon gerne… Ich tippe daher auf irgend eine Krux bei der CSV-Datei. Aber ohne Muster wird es schwierig weiter zu raten.

Generell würde ich ja die Schiene "Öffnen mit welchem-TextEditor-auch-immer und als UTF-8 abspeichern" ausprobieren…
Das geht, ist aber nicht Sinn der Sache -- beim Kunden soll das ein Drag'n'Drop werden.

Hier der Code zum Erzeugen der CSV:
set CSV_File to choose file name with prompt ¬
    "Beispiel speichern unter:" default name ¬
    "Beispiel.csv" default location (path to desktop folder)

try
    open for access CSV_File with write permission
    set eof CSV_File to 0
end try

set Ausgabe to "Umlauttest äöüÄÖÜß;" & quote & "Buchung" & return & ¬
    "Wertstellung;" & quote & "Art;Verwendungszweck;" & quote & "Betrag" & ¬
    return & "in €" & quote & return
write Ausgabe to CSV_File

close access CSV_File
+1
Nebula
Nebula27.07.2317:53
Ich würde mit UTF-8 arbeiten. Dein Code war zudem fehlerhaft:

set CSV_File to "/Users/gb/Library/Scripts/Postbank/Postbank Konvertiert.csv"
set fileContent to "ÖÄÜẞ" & linefeed & "öäüß"
try
    set targetFile to open for access CSV_File with write permission
    set eof targetFile to 0
    write fileContent as «class utf8» to targetFile
    close access targetFile
on error errMsg number errNr
    close access targetFile
    display dialog "Fehler " & errNr & return & errMsg buttons {"Mist"} cancel button "Mist"
end try
„»Wir werden alle sterben« – Albert Einstein“
+2
gbkom27.07.2318:05
Nebula
Ich würde mit UTF-8 arbeiten. Dein Code war zudem fehlerhaft:
Danke! Das war's!
Nein, der Code ist nicht fehlerhaft -- es werden über 100 Zeilen in die CSV geschrieben.
Aber "write fileContent as «class utf8» to targetFile" kannte ich nicht und hab' ich auch nirgends in der Apple-Doku gesehen.
Jetzt klappt's
0
Nebula
Nebula28.07.2310:19
Ah, interessant, mir war nicht klar, dass man bei "open for access" nicht zwingend die file reference benötigt, um mit write und close darauf zuzugreifen.
„»Wir werden alle sterben« – Albert Einstein“
0
gbkom29.07.2307:55
Konvertierung und Umstellung der Daten funktioniert, jetzt zickt plötzlich Numbers rum und sagt „kann die Datei nicht öffnen“.
Das Script liest eine CSV komplett zeilenweise in ein Array, öffnet die Ausgabedatei und schreibt die benötigten Felder in neuer Reihenfolge zeilenweise. Dann wird die Datei geschlossen, Numbers aktiviert, die Datei mit open xxx eingelesen und die Tabelle grob formatiert.
Das hat gestern noch einwandfrei geklappt, heute kann Numbers die Datei nicht öffnen. Wenn ich aber die Ausgabedatei per Doppelklick mit Numbers öffne, wird sie problemlos geladen. Und dann funktioniert auch das Script!?
Ich bin jetzt kurz davor, alles in PHP als Webseite zu bauen, weil AppleScript ständig so einen Mist macht.
0
MikeMuc29.07.2308:52
Vielleicht sollte man mal eine aus Number exportierte Cave Datei mit einem Hexeditor anschauen und dabei auf für ersten Bytes achten. Nicht, das Numbers dort noch eine Kennung erwartet. Die müßte man dann in den Script ebenfalls an den Anfang der Datei schreiben.
0
ttwm29.07.2312:38
Kann denn nur Numbers die Datei via AS nicht öffnen oder bringen auch andere Programme diese Fehlermeldung?
Und bei Deinen Beschreibungen komme ich echt nicht mit…
gbkom
Wenn ich aber die Ausgabedatei …
also die CSV?
gbkom
per Doppelklick mit Numbers öffne, wird sie problemlos geladen. Und dann funktioniert auch das Script!?
Welches Script funtioniert dann wann auch? Nur durch Doppelklick einer CSV wird ja kein AppleScript aufgerufen?
0
gbkom30.07.2310:05
Bei der Postbank gab es bisher die Möglichkeit, eine PDF-Datei mit den Umsätzen eines bestimmten Zeitraums abzurufen, in der die Informationen recht gut dargestellt waren. Im neuen Portal fehlt das -- es gibt nur noch eine CSV-Datei, die aber zu viele Informationen ganz anders darstellt. Kunde wollte die alte Darstellung für seine Buchhaltung und ich hab' ihm das versprochen ("ja, kein Thema"...)

Also: CSV-Datei aus dem Postbank-Portal ("Eingabedatei") laden, AppleScript starten. Das fasst einige Felder zusammen und sortiert sie um. Das Ergebnis wird in eine neue CSV ("Ausgabedatei") geschrieben und dann in Numbers geöffnet, wo im Idealfall alles so ausgedruckt wird, wie Kunde es in seine Buchhaltung übernehmen möchte.

Das hat nach einigen Fehlern (siehe oben) auch funktioniert. Nun meldet Numbers -- ohne dass ich am Script was geändert habe! -- plötzlich, es könne die Ausgabedatei nicht öffnen.
ttwm
Kann denn nur Numbers die Datei via AS nicht öffnen oder bringen auch andere Programme diese Fehlermeldung?
Das war ein guter Tip, also hab' ich das eben mit TextEdit und BBEdit probiert: Die öffnen die frisch erstellt Ausgabedatei problemlos.

Auch habe ich den Speicherort verändert: Gleicher Fehler.
ttwm
gbkom
per Doppelklick mit Numbers öffne, wird sie problemlos geladen. Und dann funktioniert auch das Script!?
Welches Script funtioniert dann wann auch? Nur durch Doppelklick einer CSV wird ja kein AppleScript aufgerufen?
Nachdem das Script mit der Fehlermeldung von Numbers abgebrochen ist, habe ich die Ausgabedatei per Doppelklick und per "Ablage Öffnen" in Numbers problemlos geladen. Wenn ich dann die Datei schließe und das Script erneut starte, lädt Numbers die Ausgabedatei und das Script läuft weiter (es formatiert dann die Spalten). Dieses Verhalten begreife ich nicht, finde ich den Fehler nicht.
0
ttwm30.07.2313:56
gbkom
ttwm
Kann denn nur Numbers die Datei via AS nicht öffnen oder bringen auch andere Programme diese Fehlermeldung?
Das war ein guter Tip, also hab' ich das eben mit TextEdit und BBEdit probiert: Die öffnen die frisch erstellt Ausgabedatei problemlos.
Ohne den kompletten Code zu kennen, weiter raten/fragen:
Ist die CSV-Datei, die in Numbers angelegt wird, vorher schon vorhanden und der Inhalt wird gelöscht, bevor der neue Inhalt reingeschrieben wird? Oder wird die Datei immer neu angelegt?
Macht es einen Unterschied, ob Numbers bereits geöffnet war oder nicht, so dass es zu der Fehlermeldung kommt? War TextEdit und BBEdit bereits geöffnet, als beide die Datei problemlos geöffnet haben?
Je nachdem: was passiert, wenn Du zwischen dem Schreiben und dem Öffnen der Datei durch Numbers einen Delay einbaust?
Gibt es (in der Console?) evtl. aufschlussreichere Fehlermeldungen? "Kann nicht öffnen" kann ja vieles bedeuten.
0
gbkom31.07.2311:14
ttwm
Ohne den kompletten Code zu kennen, weiter raten/fragen:
Ist die CSV-Datei, die in Numbers angelegt wird, vorher schon vorhanden und der Inhalt wird gelöscht, bevor der neue Inhalt reingeschrieben wird? Oder wird die Datei immer neu angelegt?
Ausgabedatei wird (wie oben im Beispiel) mit "set eof CSV_File to 0" neu beschrieben. Aber auch vorheriges Löschen der Datei führt zum Fehler.
Macht es einen Unterschied, ob Numbers bereits geöffnet war oder nicht, so dass es zu der Fehlermeldung kommt? War TextEdit und BBEdit bereits geöffnet, als beide die Datei problemlos geöffnet haben?
Bei Numbers kein Unterschied, TextEdit war geöffnet, BBEdit nicht.
Je nachdem: was passiert, wenn Du zwischen dem Schreiben und dem Öffnen der Datei durch Numbers einen Delay einbaust?
Per Dialogfeld eine Pause und sogar per Dateiauswahl die Datei neu auswählen bringen den Fehler.
Gibt es (in der Console?) evtl. aufschlussreichere Fehlermeldungen? "Kann nicht öffnen" kann ja vieles bedeuten.
Im Stream der Konsole hab' ich diese Meldung gefunden:
fehler    08:57:39.253405+0200    sandboxd    Sandbox: Numbers(2905) deny(1) file-issue-extension target:/Users/gb/Library/Scripts/Postbank/Postbank Konvertiert.csv class:com.apple.app-sandbox.read
Process:         Numbers [2905]
Path:            /Applications/Numbers.app/Contents/MacOS/Numbers
Identifier:      com.apple.iWork.Numbers
Build Info:      2-Numbers~7037000101000000
Responsible:     /Applications/Numbers.app/Contents/MacOS/Numbers
MetaData: {"summary":"deny(1) file-issue-extension target:\/Users\/gb\/Library\/Scripts\/Postbank\/Postbank Konvertiert.csv class:com.apple.app-sandbox.read","build":"macOS 12.6.7 (21G651)","signing-id":"com.apple.iWork.Numbers","mount-flags":76582912,"file-mode":420,"rdev":0,"primary-filter-value":"\/Users\/gb\/Library\/Scripts\/Postbank\/Postbank Konvertiert.csv","process-path":"\/Applications\/Numbers.app\/Contents\/MacOS\/Numbers","profile-in-collection":false,"errno":1,"extension-class":"com.apple.app-sandbox.read","apple-internal":false,"uid":501,"hardlinked":false,"container":"\/Users\/gb\/Library\/Containers\/com.apple.iWork.Numbers\/Data","vnode-type":"REGULAR-FILE","pid":2905,"operation":"file-issue-extension","platform_binary":"no","profile-flags":0,"action":"deny","file-flags":0,"matched-extension":false,"responsible-process-signing-id":"com.apple.iWork.Numbers","responsible-process-path":"\/Applications\/Numbers.app\/Contents\/MacOS\/Numbers","path":"\/Users\/gb\/Library\/Scripts\/Postbank\/Postbank Konvertiert.csv","team-id":"K36BKF7T3D","target":"\/Users\/gb\/Library\/Scripts\/Postbank\/Postbank Konvertiert.csv","process":"Numbers","flags":5,"binary-in-trust-cache":false,"platform-binary":false,"policy-description":"Sandbox","hardware":"Mac","responsible-process-team-id":"K36BKF7T3D","normalized_target":["Users","gb","Library","Scripts","Postbank","Postbank Konvertiert.csv"],"platform-policy":false,"matched-user-intent-extension":false,"primary-filter":"path","release-type":"User"}
       0x11375b000 -        0x1144eefff  com.apple.iWork.TSApplication (1.0 - 1.0) <df68294d-a204-33e8-abdc-d419fb3be75b> /Applications/Numbers.app/Contents/Frameworks/TSApplication.framework/Versions/A/TSApplication
Danach kamen noch "deny(1) file-read-data", "deny(1) file-read-xattr" und "file-read-data". Die "summary" waren jeweils fast identisch.

Demnach hat die Sandbox in der Numbers läuft ein Problem erkannt, oder?
Die will nicht, dass eine Datei per Script geöffnet wird, gibt sich aber scheinbar zufrieden, wenn die Datei zuvor manuell geöffnet wurde.

Zu "file-issue-extension" gab es auf AskDifferent vor zwei Jahren eine ähnliche Frage, aber leider keine Antwort/Lösung. Sonst hat DuckDuck nichts gefunden. Ich such' noch Mal bei Apple Developer...

Morgen brauch' ich den Kram
0
marm31.07.2311:25
Es gibt auch Software um Tabellen umzubauen. OpenRefine (free, open source, ehemals 'Google Refine') und Easy Data Transform
0
gbkom01.08.2307:37
Ich hab‘s gestern recht schnell in PHP programmiert, läuft über die Synology. CVS laden, Darstellung mit etwas CSS in einer Tabelle und einfach ausdrucken. Im Druckdialog „PDF speichern“ und fertig. Reicht für heute.

Aber das AppleScript bekomm‘ ich auch noch hin (gekränkte Programmierer-Ehre)…
+1
Weia
Weia03.08.2304:51
gbkom
Demnach hat die Sandbox in der Numbers läuft ein Problem erkannt, oder?
Die will nicht, dass eine Datei per Script geöffnet wird, gibt sich aber scheinbar zufrieden, wenn die Datei zuvor manuell geöffnet wurde.
Logisch, exakt das ist das Standardverhalten der Sandbox: Dateien irgendwo auf der Festplatte dürfen nur geöffnet werden, wenn der Anwender das durch den Datei öffnen-Dialog einmal explizit als beabsichtigt erklärt hat.

Was sagt denn
ls -laTOFGH@eb /Pfad/zur/CSV-Datei
vor dem manuellen Öffnen in Numbers?
„“I don’t care” is such an easy lie. (The Warning, “Satisfied”)“
0
DasFaultier03.08.2305:38
Solche Aufgaben macht man normalerweise in Python und Pandas. Dann ist das ein 5-Zeiler. Vielleicht testest du mal das CSV-erstellen via Pandas.

Falls das Problem an anderer Stelle liegt, einfach ignorieren
0
gbkom03.08.2307:04
Weia
Logisch, exakt das ist das Standardverhalten der Sandbox: Dateien irgendwo auf der Festplatte dürfen nur geöffnet werden, wenn der Anwender das durch den Datei öffnen-Dialog einmal explizit als beabsichtigt erklärt hat.
Darum hab‘ ich die Datei auch versuchsweise im Dokumente-Ordner angelegt. Von dort sollte man doch eine Datei per Script problemlos öffnen können. Und bei TextEdit und BBEedit gab es das Problem ja nicht.
Was sagt denn
ls -laTOFGH@eb /Pfad/zur/CSV-Datei
vor dem manuellen Öffnen in Numbers?
Teste ich nachher…
0
Weia
Weia03.08.2311:11
gbkom
Darum hab‘ ich die Datei auch versuchsweise im Dokumente-Ordner angelegt. Von dort sollte man doch eine Datei per Script problemlos öffnen können.
Nein, gerade der ist eine Tabuzone, da dort ja lauter persönliche Daten von Dir liegen.
Und bei TextEdit und BBEedit gab es das Problem ja nicht.
Logisch, beide Programme laufen ja nicht in einer Sandbox.
„“I don’t care” is such an easy lie. (The Warning, “Satisfied”)“
0
X-Jo03.08.2313:27
Weia
[…]
Und bei TextEdit und BBEedit gab es das Problem ja nicht.
Logisch, beide Programme laufen ja nicht in einer Sandbox.
Bist du sicher? Bei TextEdit sieht das bei mir (Ventura 13.5) so aus:



P.S.: Die Container.plist (~/Library/Containers/com.apple.TextEdit/Container.plist) ist bei mir von September 2020.
0
Weia
Weia03.08.2313:39
X-Jo
Weia
[…]
Und bei TextEdit und BBEedit gab es das Problem ja nicht.
Logisch, beide Programme laufen ja nicht in einer Sandbox.
Bist du sicher?
Oooops, das hatte ich falsch im (maroden) Kopf. Du hast Recht. Sorry für die Verwirrung.

Umso interessanter, was die Metadaten der CSV-Datei sagen werden.
„“I don’t care” is such an easy lie. (The Warning, “Satisfied”)“
0
X-Jo03.08.2316:32
Weia
[…]
Oooops, das hatte ich falsch im (maroden) Kopf.
[…]
Mein maroder Kopf: Ich hätte noch ergänzen sollen, dass gbkoms TextEdit ja älter als September 2020 sein kann und deswegen evtl. nicht in der Sandbox läuft.
Ich weiß leider nicht, seit wann TextEdit im Sandkasten spielt — äh, läuft.
0
Weia
Weia03.08.2317:16
X-Jo
Ich weiß leider nicht, seit wann TextEdit im Sandkasten spielt — äh, läuft.
Tut es jedenfalls schon seit Mojave – da habe ich nämlich nachgesehen.
„“I don’t care” is such an easy lie. (The Warning, “Satisfied”)“
0
Nebula
Nebula03.08.2323:39
Ich hatte auch schon mal solche Problem. Gegebenenfalls kann man mit
do shell script "open -a Nunbers " & quoted form of posixFile
Die Shell zur Hilfe holen.
„»Wir werden alle sterben« – Albert Einstein“
0
gbkom04.08.2308:21
Moin,
sorry, gestern keine Zeit gehabt.

Bei mir ist TextEdit Version 1.17 (380.2) ohne Sandbox (kein Eintrag in Container), BBEdit ist version 13.5.7 (415124, 64-bit Intel, sandboxed).
Weia
Was sagt denn
ls -laTOFGH@eb /Pfad/zur/CSV-Datei
vor dem manuellen Öffnen in Numbers?
Frisch erstellt, vor dem Öffen mit Numbers:
-rw-r--r--@ 1 gb  staff  - 2570  4 Aug 08:06:54 2023 /Users/gb/Library/Scripts/Postbank/PostbankKonvertiert.csv
    com.apple.FinderInfo      32 

und nach dem Öffnen:
-rw-r--r--@ 1 gb  staff  - 2570  4 Aug 08:06:54 2023 /Users/gb/Library/Scripts/Postbank/PostbankKonvertiert.csv
    com.apple.FinderInfo      32 
    com.apple.lastuseddate#PS      16 
    com.apple.quarantine      22 

Hmmm...

PS: Monterey 12.6.7 (21G651)
0
X-Jo04.08.2311:05
gbkom
[…]

Bei mir ist TextEdit Version 1.17 (380.2) ohne Sandbox (kein Eintrag in Container), BBEdit ist version 13.5.7 (415124, 64-bit Intel, sandboxed).

[…]
Und ~/Library/Containers/TextEdit/Container.plist?

Habe soeben festgestellt: unter Ventura wird im Finder der Ordner Containers/com.apple.TextEdit als Containers/TextEdit angezeigt!
Ich hatte den Pfad ~/Library/Containers/TextEdit/Container.plist kopiert und daraus wurde ~/Library/Containers/com.apple.TextEdit/Container.plist.
0
Weia
Weia04.08.2312:02
gbkom
nach dem Öffnen:
-rw-r--r--@ 1 gb  staff  - 2570  4 Aug 08:06:54 2023 /Users/gb/Library/Scripts/Postbank/PostbankKonvertiert.csv
    com.apple.FinderInfo      32 
    com.apple.lastuseddate#PS      16 
    com.apple.quarantine      22 
Ja, com.apple.quarantine ist genau der Verdächtige, den ich im Blick hatte – Apples Kennzeichnung, dass eine Datei aus dem Internet geladen wurde. Allerdings hätte ich es genau umgekehrt erwartet – Metadatum erst da und dann fort. Stattdessen ist es andersrum. Was sagt
xattr -l /Pfad/zur/CSV-Datei
(für die Datei nach dem Öffnen)?
„“I don’t care” is such an easy lie. (The Warning, “Satisfied”)“
0
gbkom07.08.2316:21
Vor und nach dem Öffnen gleiche Ausgabe:
xattr -l <Pfad>PostbankKonvertiert.csv 
com.apple.FinderInfo: TEXTttxt
com.apple.lastuseddate#PS: ԕ?d
com.apple.quarantine: 0082;64cc95d4;Numbers;
X-Jo
Und ~/Library/Containers/TextEdit/Container.plist?
Ja, gefunden! Keine Ahnung, warum ich das nicht gesehen hab'. Bei mir ist die Container.plist vom 16.12.2020.
Also laufen BBEdit und TextEdit in der Sandbox.
0
Weia
Weia07.08.2320:27
gbkom
Vor und nach dem Öffnen gleiche Ausgabe:
xattr -l <Pfad>PostbankKonvertiert.csv 
com.apple.FinderInfo: TEXTttxt
com.apple.lastuseddate#PS: ԕ?d
com.apple.quarantine: 0082;64cc95d4;Numbers;
Vor dem Öffnen kann allerdings nicht stimmen, denn weiter oben schriebst Du, dass es da noch gar kein com.apple.quarantine gab:
gbkom
Frisch erstellt, vor dem Öffen mit Numbers:
-rw-r--r--@ 1 gb  staff  - 2570  4 Aug 08:06:54 2023 /Users/gb/Library/Scripts/Postbank/PostbankKonvertiert.csv
    com.apple.FinderInfo      32 
Wie auch immer, nach dem Öffnen gibt es das Quarantänedatum mit dem Vermerk, dass die Datei von Numbers geöffnet wurde/geöffnet werden darf. Wenn es aber vor dem Öffnen überhaupt keinen Quarantäneeintrag gab, dann ist mir unklar, warum Numbers sich weigert, die Datei zu öffnen, TextEdit aber nicht. Doof, denn hätte es da schon einen ursächlichen Eintrag gegeben, hätte man den in dem Skript modifizieren/löschen können.
„“I don’t care” is such an easy lie. (The Warning, “Satisfied”)“
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.