Hallo,
ich hatte mir mal ein AppleScript erstellt, mit dem das Erstellungsdatum auf ein selektiertes Datum im Dokument gesetzt wird.
Nun hatte ich mal wieder angefangen meine Dokumente zu ordnen und mir war aufgefallen, dass nicht immer das Datum auf das selektierte Datum gesetzt wird. Zuerst hatte ich eine fehlerhafte OCR Erkennung in Verdacht. Dann viel mir aber auf, das der Fehler nur auftrat, wenn der Monatsname ausgeschrieben war und der Monat März war.
Im Script trat dann der Fehler “Datum und Uhrzeit sind ungültig” (-30720) auf.
Ich hatte dann geprüft, ob ich das gleiche Datum setzen kann, wenn ich es als String Konstante im Script definiere, was dann auch funktionierte.
Im Moment bin ich etwas ratlos, warum der Datumsstring aus den Dokument nicht akzeptiert wird, wenn ich den String im Script definieren, dann aber ja.
Ich habe mal ein kleines Script erstellt, mit dem der Fehler reproduziert werden kann.
================ Start Script ======================
set d1 to get_date_string()
log “d1=”" & d1 & “”"
get class of d1
log the result
set d2 to “1. März 2011”
log “d2=”" & d2 & “”"
get class of d2
log the result
if d1 = d2 then
log “d1=d2 ist identisch”
else
log “d1=d2 ist ungleich”
end if
try
set theDate to date d1
log "theDate=d1 => " & theDate
on error errorMessage number errorNumber
log "ERROR set Date to d1: " & errorMessage & “(” & errorNumber & “)”
end try
try
set theDate to date d2
log “theDate=d2 =>” & theDate
on error
log "ERROR set Date to d2: " & errorMessage & “(” & errorNumber & “)”
end try
on get_date_string()
tell application “DEVONthink Pro”
try
if not (exists think window 1) then error “No window is open.”
if not (exists content record) then error “Please open a document.”
return selected text of think window 1 as string
on error error_message number error_number
if the error_number is not -128 then display alert “DEVONthink Pro” message error_message as warning
end try
end tell
end get_date_string
================ Ende Script ======================
d1 enthält das Datum aus dem Dokument. d2 ist das identische Datum als String im Script definiert.
Hier noch kurz der Output (Script Editor unter Nachrichten) mit einer Erläuterung.
1: (d1=“1. März 2011”)
2: (text)
3: (d2=“1. März 2011”)
4: (text)
5: (d1=d2 ist identisch)
6: (ERROR set Date to d1: Datum und Uhrzeit sind ungültig: date 1. März 2011.(-30720))
7: (theDate=d2 =>Dienstag, 1. März 2011 um 00:00:00)
1: Datumsstring der aus dem Dokument gelesen wurde
2: Klasse der Variablen d1
3: Datumsstrang aus dem Script
4: Klasse der Variablen d2
5: Ergebnis des Stringvergleiches
6: Fehler, weil d1 nicht in ein Datum gewandelt werden konnte
7: d2 wurde in ein Datum gewandelt
Kann jemand diesen Fehler reproduzieren und kennt die Lösung, warum der String aus dem Dokument nicht als gültiges Datum akzeptiert wird?
Danke,
Roadrunner1106