6 berichten aan het bekijken - 1 tot 6 (van in totaal 6)
  • Q:
    Bijdrager
    marcin

    AppleScript say odracht

    Hi
    Ik wil graag een script schrijven die het volgende doet:

    Laat de gebruiker een tekst-bestand (RTF) kiezen.
    En laat deze uitspreken door say opdracht.

    [code:1:eff93212da]
    set theBestand to (choose file with prompt "Kies een tekstbestand")

    display dialog "U heeft " & theBestand & " gekozen." buttons {"OK"} default button 1

    if button returned of result is "OK" then

    say theBestand

    end if

    [/code:1:eff93212da]

    Deze script geeft een de volgende error:
    Can’t make alias “Macintosh HD:Users:marcin:Desktop:Untitled hallo.rtf” into type string.

    Hoe kan ik aan de say opdracht doorgeven dat hij de inhoud van dit bestand moet uitspreken?
    Of moet eerst TextEdit geactiveerd worden zodat de say opdracht de inhoud kan lezen?

    Alvast bedankt.

    Bijdrager
    macpro

    Wat je zult moeten doen is eerst de inhoud van het bestand lezen en in een string variabele plaatsen.
    Vervolgens kun je de inhoud van die variabele uit laten spreken.

    Ik heb alleen geen idee hoe je dat in AppleScript doet, maar probeer het eens met Google.

    Bijdrager
    Andre

    Even een zetje geven:)
    T’s niet het ideale script!!!!
    Denk dat je hiermee wel wat verder komt.

    [code:1:368b519575]set theBestand to (choose file with prompt "Kies een tekstbestand" of type {"TEXT", "RTF"})

    display dialog "U heeft " & theBestand & " gekozen." buttons {"OK"} default button 1

    if button returned of result is "OK" then

    tell application "TextEdit"
    open theBestand
    set TheText to every paragraph of document 1
    end tell
    say TheText as text
    end if[/code:1:368b519575]

    Script stopt niet.. dus let op welke tekst je pakt….

    Bijdrager
    marcin

    Bedankt voor jullie reacties.

    Andre je script werkt, bedankt.
    Ik heb nog 2 vraag voor je.
    Is het verplicht op bij de say opdracht de “as text” te gebruiken?
    Kan “say” nog andere opties bevatten?

    Het is idd beetje omslachtig om eerst het bestand te openen dan de
    tekstinhoud in een variabele te zetten om vervolgens deze uit te spreken.
    Maar het werkt.

    Nogmaals bedankt

    Bijdrager
    dj bazzie wazzie

    Je kan ook het bestand uitlezen en in een variabele zetten. Het probleem is echter dat open for access (commando waarmee je bestanden kan uitlezen) niet de RTF codering ondersteund(in xcode wel). Om toch een rtf document uit te lezen heeft andre als voorbeeld gegeven om het bestand te openen met text editor.

    Om een text file uit te laten spreken zonder hierbij gebruik te hoeven maken van text editor kan je dit doen met de volgende code.

    [code:1:92c21db305]set theFile to (choose file of type {"public.plain-text"}) as string
    set theFileContents to getContentsOfFile(theFile)
    say theFileContents

    on getContentsOfFile(theFile)
    try
    set fd to open for access file theFile
    set theFileContents to read fd as string
    close access fd
    on error errMSG
    close access file theFile
    display dialog "Bestand kon om de volgende reden niet worden gelezen:" & errMSG buttons {"OK"} default button "OK"
    set theFileContents to ""
    end try

    return theFileContents
    end getContentsOfFile[/code:1:92c21db305]

    de public.plain-text file type heb ik aangemaakt door naar text editor te gaan, vervolgens een nieuwe document te openen en deze omzetten naar platte text (appeltje+shift+T). Hello world! erin getyped en opgeslagen.

    Bijdrager
    marcin

    Oke thx,
    zo kan het natuurlijk ook.
    Dat op deze manier TextEdit niet opgestart hoeft te worden is top.
    Het is idd ook handig om on error te gebruiken in het gevan de gebruiker iets fout doet.
    Nogmaals bedankt.

6 berichten aan het bekijken - 1 tot 6 (van in totaal 6)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.