Recherche de caractères spéciaux à la volée ?

J'avoue que je ne comprends pas non plus la chose. C'est comme si ces fichiers s'étaient dupliqués dans les dossiers fontes.
Je me demande si ce n'était pas un bug à la génération des éléments d'exportation d'un fichier InDesign sur d'anciennes versions ; ce qu'on appelle maintenant "Assemblage" mais qui ne dénommait auparavant "Rassembler les infos pour la sortie".
Bon ap à toi !!!
 
Pourrais-tu me mettre en téléchargement 1 ou 2 de ces fichiers. ?
et mettre le lien ici ! cela me permettrai de faire des test, pour résoudre ce problème...
 
Après quelques recherches je tente avec ce script qui prend en compte les fichiers sans extension.

Retour ????
Bloc de code:
-- renomme les fichiers et les dossiers en supprimant les caractères spéciaux
--ÀÁÂàÄÅàáâàäåÒÓÔÕÖòóôõöÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ()[]{}/%@#",;?!.\
--AAAaAAaaaaaaOOOOOoooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn---------------__
tell application "Finder"
    set lechemin to choose folder with prompt "Sélectionnez le dossier contenant les fichiers et dossiers à traiter"
    my inspecter(lechemin)
end tell

tell application "Finder"
    my inspecter(lechemin)
end tell

on inspecter(lechemin)
    tell application "Finder"
        -- traitement des fichiers :
        set les_fichiers to files of lechemin
        repeat with chaque_fichier in les_fichiers
            -- traitement d'un fichier
            tell application "Finder"
                try
                    set lefichier to chaque_fichier
                    set AppleScript's text item delimiters to {""}
                    set nom to name of chaque_fichier --récupère le nom du fichier
                    set extens to file nom in lechemin --recupere l extension du fichier
                    set lextension to name extension of extens
                    if lextension is not "" then
                        set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
                        set AppleScript's text item delimiters to {"."} --récupère la partie avant le dernier "."
                        set elements to text items of nom
                        set nomcourt to (items 1 thru -2 of elements) as string
                        set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
                    else
                        set nomcourt to nom
                    end if
                on error
                    set lelog to open for access ((path to desktop folder as text) & "les erreurs.txt") as text with write permission
                    write "Le nom du fichier n'a pas pu être extrait : " & lefichier & return to lelog starting at eof
                    close access lelog
                end try
                set pourerreur to lefichier as string
                set nouveaunom to my remplace(nomcourt, pourerreur)
                
                if nomcourt is not nouveaunom then
                    try
                        set a to container of lefichier as string
                        set verifexist to a & nouveaunom & "." & lextension
                        if exists verifexist then
                            set nouveaunom to nouveaunom & "2"
                        end if
                        set name of lefichier to nouveaunom & "." & lextension -- renomme le fichier
                        -- Ecrit un fichier erreur sur le bureau si erreur
                    on error
                        set lelog to open for access ((path to desktop folder as text) & "les erreurs.txt") as text with write permission
                        write "Le fichier n'a pas pu être renommer : " & pourerreur & return to lelog starting at eof
                        close access lelog
                    end try
                end if
                
            end tell
        end repeat
        
        set a to container of lechemin as string
        set aa to lechemin as string
        set sauv to AppleScript's text item delimiters --sauvegarder la variable delimiteur
        set AppleScript's text item delimiters to {":"} --récupère la partie avant le dernier "."
        set nomcourt to (text item -2 of aa) as string
        set AppleScript's text item delimiters to sauv --restaurer la variable delimiteur
        set pourerreur to aa
        
        set nouveaunom to my remplace(nomcourt, pourerreur)
        
        if nomcourt is not nouveaunom then
            try
                set verifexist to a & nouveaunom
                if exists verifexist then
                    set nouveaunom to nouveaunom & "2"
                end if
                set name of lechemin to nouveaunom --renomme dossier
                set lechemin to a & nouveaunom as alias --reconstruit le chemin pour dossier suivant
            on error
                -- Ecrit un fichier erreur sur le bureau si erreur
                set lelog to open for access ((path to desktop folder as text) & "les erreurs.txt") as text with write permission
                write "Le dossier n'a pas pu être reenommer : " & pourerreur & return to lelog starting at eof
                close access lelog
            end try
        end if
        
        -- traitement des dossiers :
        set les_dossiers to folders of lechemin
        repeat with chaque_dossier in les_dossiers
            -- traitement d'un dossier
            my inspecter(chaque_dossier)
        end repeat
    end tell
end inspecter

tell application "Finder"
    activate
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell

on remplace(mavar, pourerreur)
    set aremplacer to {203, 231, 229, 136, 128, 129, 136, 135, 137, 136, 138, 140, 241, 238, 239, 205, 133, 152, 151, 153, 155, 154, 233, 131, 230, 232, 143, 142, 144, 145, 130, 141, 237, 234, 235, 236, 147, 146, 148, 149, 244, 242, 243, 134, 157, 156, 158, 159, 216, 132, 150, 40, 41, 91, 93, 123, 125, 47, 37, 64, 35, 34, 44, 59, 63, 33, 46, 92}
    set par to {65, 65, 65, 97, 65, 65, 97, 97, 97, 97, 97, 97, 79, 79, 79, 79, 79, 111, 111, 111, 111, 111, 69, 69, 69, 69, 101, 101, 101, 101, 67, 99, 73, 73, 73, 73, 105, 105, 105, 105, 85, 85, 85, 85, 117, 117, 117, 117, 121, 78, 110, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 95, 95}
    set nbar to count aremplacer
    set new to mavar
    
    set lesblancs to count character in new
    repeat
        if character lesblancs of new is not " " then
            exit repeat
        end if
        set new to text 1 thru (lesblancs - 1) of new
        set lesblancs to count characters in new
    end repeat
    repeat
        if character 1 of new is not " " then
            exit repeat
        end if
        set new to text 2 thru lesblancs of new
        set lesblancs to count characters in new
    end repeat
    
    
    set nb to count characters in new
    set mavar to new
    try
        repeat with i from 1 to nb
            set a to character i in new
            set lavaleur to ASCII number a
            repeat with j from 1 to nbar
                if item j of aremplacer is lavaleur then
                    set newcar to ASCII character (item j of par)
                    if i = 1 then
                        set new to newcar & (text 2 thru nb of new)
                        set avant to ""
                    else
                        set avant to text 1 thru (i - 1) of new
                    end if
                    if i = nb then
                        set new to avant & newcar
                    else
                        set new to avant & newcar & text nb thru -(nb - i) of mavar
                    end if
                    
                end if
            end repeat
        end repeat
    on error
        -- Ecrit un fichier erreur sur le bureau si erreur
        set lelog to open for access ((path to desktop folder as text) & "les erreurs.txt") as text with write permission
        write "Le caractère n'a pas pu être remplacer : " & pourerreur & return to lelog starting at eof
        close access lelog
    end try
    set mavar to new
end remplace
 
Que donne le nouveau script ?
Chez moi sur ton dossier font pas de problème !
 
Bon !
je n'avais jamais vu de fichier sans extension...

J'avoue que je ne comprends pas non plus la chose. C'est comme si ces fichiers s'étaient dupliqués dans les dossiers fontes.
C'est parce que ces fichiers sans extension sont un reliquat des temps pré-Xtoriques.

Les polices PostScript contenaient une description vectorielle des caractères mais ne pouvaient pas s'afficher à l'écran (du moins pas avant la sortie de Adobe Type Manager, qui permettait une rastérisation à la volée des polices Type 1).
Elles étaient donc accompagnées de fichiers de police bitmap pour les corps les plus courants, enregistrés sous forme de ressources normalement regroupées dans une valise de polices, et portaient le même nom que la police vectorielle à laquelle elles étaient associées.
(On parlait de polices écran et de polices imprimantes.)

Pour peu que le support de la resource fork ait disparu (passage par d'autres système de fichiers, mise à jour du système, etc.), ces fichiers bitmap se retrouvent vides (il n'y avait rien dans la data fork). Ils n'ont plus d'utilité et peuvent être supprimés.

P.S. Je dis tout ceci sur base de ce que je lis dans vos échanges. Mon vieux système ne peut décompacter le dossier de polices pour vérifier comment elles se présentent.
 
  • J’aime
Réactions: Vinzzz25
@baron:coucou:
OK! merci pour ces infos (que le temps passe !) cela ne nous rajeuni pas :bigtears:
chez moi ouverture sans problème... :)
 
Dernière édition:
  • J’aime
Réactions: baron
Merci Baron. CQFD !!
Et c'est donc pour ça que je tente de les supprimer « a la mano » pour conserver celles qui sont encore en activité sur certains fichiers.
Pour le contenu du dossier de fontes, moi j'ai ça. Pas toi ? :

Capture d’écran 2021-11-09 à 16.25.54.jpg

Et après lancement du dernier script, j'ai ce message :

Capture d’écran 2021-11-09 à 16.27.00.jpg
 
avec un fichier "les erreurs.txt" ?
Si un fichier "les erreur.txt" existe déjà sur le bureau, l'erreur est ajoutée à la suite dans le même fichier.
l'idéal est de supprimer le fichier avant chaque lancement du script.

EDit: la seule possibilité que je vois serait qu'un fichier ai comme nom exclusivement des espaces !
 
Dernière édition:
Pas compris le coup des smiley à la place des D par contre… Ah si un deux points+un D = :D !

J'ai relancé pour un gros dossier qui tourne depuis un moment. Je te dis ça dès que ca ressort un txt.
 
Dernière édition:
Pour les smiley c'est que le site traduit les 2 points suivi de D ( c'est le raccourci du smiley) pour l'éviter ilm faut le mettre dans un bloc code (comme je met les scripts), mais si tu fais un copier, coller dans un fichier texte tu retrouves bien ton texte initial !

Pour le gros dossier, pas de problème il faut attendre la fin, et ensuite voir si un fichier "les erreurs.tx" à été créé, puisque s'il est créé il y a bien une erreur mais le script continu...
 
Je suis obligé de laisser le script tourner et quitter mon bureau mais j'ai une assez bonne nouvelle.
Si ça ne bouge pas, grace à ton très beau boulot, on est passé de :

Capture d’écran 2021-09-15 à 17.48.44.jpg

à :

Capture d’écran 2021-11-09 à 17.31.28.jpg
 
  • J’aime
Réactions: Vinzzz25
Enfin une bonne nouvelle ! LOL

Je croise les doigts pour que cela continu ...
A plus tard pour la suite du feuilleton ! :D
 
  • J’aime
Réactions: Vinzzz25
Cette erreur est due à une demande du script au processeur, mais il à été trop long à répondre...
Soit problème d'encombrement du processeur de l'ordi, soit une demande qui ne peut pas être traitée !

Vu d'ici, il m'est impossible de trouvé l'origine...

Il n'y a pas de fichier d'erreur ?
quelle ligne du script était surlignée ? (si tu as pensée à regarder!)
 
Dernière édition:
Pour les signes > et < je peux te les ajouter au traitement à remplacer par quoi ?

Pour les fichiers fontes pas de caractères spéciaux ! ils ont déjà été renommés, je le vois car les fichiers sans extension sont renommés avec un point à la fin !

Est-ce que c'est ce point qui bloque? ou le fait qu'il n'y ai pas d'extension ?
éventuellement ajouter une extension bidon (ttf) ou autres ???
 
Dernière édition:
Pour les signes > et <, y aurait-il un moyen de ne rien mettre à la place ? Si on met un espace, ça risque de faire plusieurs espaces à la suite et créer un bug.

Pour le fichiers polices, oui, c'est le point à la fin qui pose problème. J'ai sélectionné TOUS les fichiers avec une telle extension et je les ai supprimés. Donc on ne s'en souci plus.

Par contre, j'ai des fichiers bizarres qui se continuent à se créer, comme celui ci. Ca te dirait quelque chose ?

Capture d’écran 2021-11-10 à 11.39.08.jpg
 
Ton fichier "bizarre" ne s'est pas créé !
ce fichier existait à priori sans extension et 3 caractères ont été remplacé par -, _ et _

pour le reste je regarde ...
donc: ajout du traitement des caractères > et < qui doivent être supprimés
Les fichiers sans extension seront traiter puis renommer sans le point.