2 Stimmen

Applescript druckt "fehlender Wert" anstelle von leerem String

Ich verwende dieses Applescript, um die Erinnerungen aus einer Liste namens "Städte" auf meinem Desktop mit GeekTool anzuzeigen, aber aus irgendeinem Grund wird für jede Erinnerung in dieser Liste ohne Inhalt im Körper "fehlender Wert" ausgegeben. Wie kann ich das verhindern?

set theList to {}
set theOutput to ""

tell application "Erinnerungen"
    repeat with i from 1 to (count of every reminder of list "Städte")
        if reminder i of list "Städte" is not completed then
            set theList to theList & {name, body} of reminder i of list "Städte"
        end if
    end repeat
    repeat with i from 1 to (count of every item of theList)
        set theOutput to (theOutput & item i of theList as string) & return
    end repeat
    return theOutput
end tell

Das gewünschte Ergebnis lautet:

Istanbul - besucht im März 2008 Las Vegas Kyoto - besucht im Februar 2012

Aktuell sieht es so aus:

Istanbul besucht im März 2008 Las Vegas Kyoto besucht im Dezember 2012

0voto

ughoavgfhw Punkte 39353

Dies geschieht, weil der Wert eines leeren Körpers fehlender Wert ist, der beim Umwandeln in einen String zu "fehlender Wert" wird. Um dies zu vermeiden, können Sie explizit auf einen fehlenden Wert im Erinnerung vor dem Hinzufügen zu theList überprüfen.

wiederhole mit i von 1 bis (Anzahl der Erinnerungen der Liste "Städte")
    setze dieErinnerung to Erinnerung i der Liste "Städte"
    wenn dieErinnerung nicht erledigt ist dann
        wenn der Inhalt der dieErinnerung nicht fehlender Wert ist dann
            setze theList to theList & {Name, Inhalt} der dieErinnerung
        sonst
            setze theList to theList & {Name der dieErinnerung, ""}
        end if
     end if
 end wiederhole

Wenn Sie keine leere Zeile zwischen Erinnerungen ohne Inhalt wünschen, können Sie einfach {Name der dieErinnerung} im else-Zweig verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X