Re: [AS] lire un fichier

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Alexis Gottlieb
Date:  
À: La liste AppleScript Francophone
Sujet: Re: [AS] lire un fichier

Le 18 déc. 08 à 09:35, yves-marie omnes a écrit :

>>
> Merci Alexis ta solution permet parfaitement de faire ce que je veux
> je l'ai
> intégré dans mon script et je me suis fendu (non sans mal) d'une
> interface
> applescript studio.
> Cependant j'ai constaté que plus fichier été gros plus l'exécution
> du script
> été longue comme si le fichier été entièrement logiquement en ne
> lisant que
> les 300 premier bits le script devrait s'éxecuter dans un temps donné
> quelque soit la poids du fichier
>
> Quelqu'un a t'il un éclaircissement a ce sujet
>


En effet, la version actuelle lit le fichier en entier. Ceci devrait
être réparé dans une future version...

Pour pallier à cet inconvénient, tu peux lire le début du fichier avec
read et appliquer find text au texte lu :

-- au lieu de find text "aTAKE=t" in monFichier for 300 :
set s to read monFichier before data -- ou for 300
find text "aTAKE=t" in s

Cordialement,
Alexis

>
>
>
>> Bonjour,
>>
>> La commande "find text" du complément de pilotage Satimage.osax peut
>> vous intéresser. Elle permet de chercher du texte dans une variable
>> ou
>> dans un fichier.
>>
>> set sonDirect to false
>> try
>> find text "aTAKE=t" in monFichier for 300 -- cherche "aTAKE=t"
>> uniquement dans les 300 premiers caractères du fichier monFichier.
>> set sonDirect to true
>> end try
>> if sonDirect then
>> --etc
>> end if
>>
>> Pour pouvoir utiliser la commande "find text" dans un script
>> AppleScript, il faut télécharger Satimage.osax (qui est gratuit) à
>> l'adresse suivante :
>> http://www.satimage.fr/software/fr/downloads/downloads_companion_osaxen.html
>> puis suivre les instructions d'installation du fichier "lisez-moi"
>> joint au téléchargement...
>>
>> Cordialement,
>> Alexis Gottlieb
>> Satimage
>>
>> Le 17 déc. 08 à 16:00, yves-marie omnes a écrit :
>>
>>>
>>> bonjour a tous
>>>
>>> je me remet doucement a applescript et j'ai bien du mal
>>>
>>> voila ce que je souhaite faire
>>>
>>> l'idée est de réaliser une compilation de fichier son specifiques
>>> extrait dans grande nombres.
>>> je m'explique
>>> a la fin d'un tournage de long metrage on se retrouve avec un nombre
>>> de fichiers son tres impressionnants (entre 6000 et 10000 ) la plus
>>> part de ces fichiers sont des sons direct (liés a une image) et
>>> d'autres sont des sons seuls. il est tres interresant pour nous de
>>> pouvoir extraire de la masse des fichier sons uniquement les sons
>>> seuls.
>>>
>>> pour ça j'ai d'abord ecrit un script qui ouvre le dossier principale
>>> du projet puis ouvre le premier dossier et enfin controle le nom du
>>> premier fichier pour verifier si ces un son seul si oui il en fait
>>> une copie le tout dans deux boucle imbriqué.
>>>
>>> cela fonctionne tres bien mais
>>> pour controller si un son est sons seul il suffit d'examiner le nom
>>> de fichier. en effet un fichier audio de cinema (enregistré avec le
>>> cantar ) va se presenter comme ça
>>> MI6862==  29   0    t 1==_1.WAV et un son seul comme ça
>>> MI6862==  29   0    W 1==_1.WAV vous remarquez que la difference
>>> reside dans le "t" ou le "w" donc avec le script que j'ai fait cela
>>> fonctionne.
>>> mais il arrive assez souvent que le fichier audio n'utilise comme
>>> nom que ça version courte c'est a dire MI6862.WAV des lors il n'est
>>> plus possible d'utliliser le nom pour trouver les sons seul.
>>> dans ce cas il n'y a qu'une solution ouvrir le fichier audio et lire
>>> l 'entete du fichier ou l'on va retrouver a coup sur les
>>> indications. voici un exemple de ce que donne comme resulat ce petit
>>> script

>>>
>>> try
>>> set monFichier to choose file {}
>>> open for access monFichier
>>> read monFichier before data
>>> --set x to result as text
>>>
>>> on error
>>> display dialog "Erreur à l'ouverture du fichier"
>>> close access monFichier
>>> end try
>>>
>>> resultat
>>> "RIFFB3u
>>> aSCENE= 29 / 0
>>> aTAKE=t 2
>>> aTAPE=0529
>>> aSPEED=025.000-ND
>>> aTAG=MI6863
>>> aTYP=mxdn
>>> aCHNL=Xb
>>> aNOTE=
>>> film$
>>>
>>> mais voila cela ne fonctionne pas toujours et il semble difficile
>>> d'exploiter ce resultat comme une chaine de caractere afin de
>>> verifier si aTAKE = "t" ou "w"
>>>
>>> ci joint le script qui fonctionne sur les noms de fichier
>>>
>>> tell application "Finder"
>>> set n to 1
>>> set m to 1
>>> set dossource to select folder (choose folder with prompt
>>> "selectionnez un dossier projet Cantar")
>>> set nomdossource to name of dossource
>>> log nomdossource
>>> set AppleScript's text item delimiters to "."
>>> set extdos to get the last text item of nomdossource
>>> log extdos
>>> if (extdos = "CA1") then
>>> set doscopy to select folder (choose folder with prompt
>>> "selectionnez un dossier pour compiler vos sons seuls")
>>> set nbsource to count item of dossource
>>> repeat until n = nbsource + 1
>>> set nbfiles to count item of item n of dossource
>>> repeat while m < nbfiles + 1
>>> set nomfile to name of item m of item n of dossource
>>> set ext to name extension of item m of item n of dossource
>>> if ext = "WAV" then
>>> set AppleScript's text item delimiters to " "
>>> set nbitem to count text items of nomfile
>>> if (nbitem = 1) then
>>> display dialog "ce fichier a un nom court cantar vous devez le
>>> transformer en nom long"
>>> else
>>> set x to get the last text item of nomfile
>>> set AppleScript's text item delimiters to ""
>>> set y to get the first text item of x as text
>>> log y
>>> if (y = "w") then
>>> beep
>>> duplicate item m of item n of dossource to doscopy
>>> end if
>>> end if
>>> end if
>>> if (m = nbfiles) then
>>> set m to 1
>>> exit repeat
>>> else
>>> set m to m + 1
>>> end if
>>> end repeat
>>> set n to n + 1
>>> end repeat
>>> else
>>> display dialog "ce dossier ne semble pas etre un dossier de projet
>>> cantar"
>>> end if
>>> end tell
>>>
>>>
>>>
>>> merci a ceux qui prendrons le soin de me lire et peut etre m'aider
>>>
>>>
>>> yves-marie
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Applescript_fr mailing list
>>> Applescript_fr@???
>>> http://listes.patpro.net/mailman/listinfo/applescript_fr
>>
>> _______________________________________________
>> Applescript_fr mailing list
>> Applescript_fr@???
>> http://listes.patpro.net/mailman/listinfo/applescript_fr
>>
>
>
> _______________________________________________
> Applescript_fr mailing list
> Applescript_fr@???
> http://listes.patpro.net/mailman/listinfo/applescript_fr


_______________________________________________
Applescript_fr mailing list
Applescript_fr@???
http://listes.patpro.net/mailman/listinfo/applescript_fr