christianmusique
Messages postés5Date d'inscriptionlundi 17 avril 2006StatutMembreDernière intervention 3 septembre 2013
-
1 sept. 2013 à 23:20
christianmusique
Messages postés5Date d'inscriptionlundi 17 avril 2006StatutMembreDernière intervention 3 septembre 2013
-
3 sept. 2013 à 12:37
Bonjour,
J'ai un peu plus de 400 fichiers textes à convertir d'Iso-8859-1 ou de Mac Roman vers Utf-8.
Il y a en fait 3 problèmes à solutionner:
1. lire le fichier texte et reconnaitre le codage utilisé,
2. convertir le code lu en Utf-8
3. récrire le fichier texte avec file encoding=Utf8 et line endings=lf
Je rame sur ce problème et ne trouve pas sur le Web la solution toute faite (sans doute normal).
Je suis sur Mac OS X 10.6.8; j'ai un editeur de texte TextMate, un environnement Mamp; je sais un peu utiliser Automator et le Terminal Unix/Linux
Merci de m'ouvrir quelques pistes
denisbertin
Messages postés247Date d'inscriptionlundi 22 avril 2013StatutMembreDernière intervention13 janvier 20231 3 sept. 2013 à 10:21
En définitive tous le monde devrais savoir programmer avec ceci comme préceptes et définition Le premier programme consiste à lire un fichier en entré effectuer des opérations puis écrire un fichier en sortie.
Dans votre cas c'est vraiment élémentaire, mais ceci étant je programme avec windows sur un ordinateur compatible IBM-PC et je pourrais pas vous fournir
un logiciel fonctionnant sur un Macintosh pour le faire mais si vous êtes intéressé, vous pouvez me contacter sur denisbeelog@gmail.com.
denisbertin
Messages postés247Date d'inscriptionlundi 22 avril 2013StatutMembreDernière intervention13 janvier 20231 3 sept. 2013 à 10:34
procedure trancodage(FileName,file_out:string);
var F,G: text;
ficelle:string;
begin
AssignFile(F, FileName); //Ouvir ce fichier
AssignFile(G, file_out); //Sortir ce ficher
Reset(F); //l'opération de lecture
Rewrite(G); //l'opération d'écriture
While not eof(F) do //Tant que le fin du fichier n'est pas obtenu
begin
Readln(F,ficelle);
//modifier la ficelle de lecture
Writeln(G,ficelle);
end;
CloseFile(G);
CloseFile(F);
end;
christianmusique
Messages postés5Date d'inscriptionlundi 17 avril 2006StatutMembreDernière intervention 3 septembre 2013 3 sept. 2013 à 12:23
Merci pour votre réponse.
Finalement j'ai trouvé une solution en construisant un shell (péniblement car peu d'expérience du bash et du shell en général).
Ci-joint ce shell en bash
#!bin/bash
# conversion fichiers ISO-8859-1 en UTF-8
cd texte
for fichier in *
do
ls -1 "$fichier"
iconv -f ISO-8859-1 -t UTF-8 $fichier > "$fichier.utf"
rm $fichier
mv "$fichier.utf" $fichier
done
cd ..
christianmusique
Messages postés5Date d'inscriptionlundi 17 avril 2006StatutMembreDernière intervention 3 septembre 2013 3 sept. 2013 à 12:37
Une solution avec un petit shell bash de nom ConvISO-UTF.bash
#!bin/bash
# conversion fichiers ISO-8859-1 en UTF-8
cd texte
for fichier in *
do
ls -1 "$fichier"
iconv -f ISO-8859-1 -t UTF-8 $fichier > "$fichier.utf"
rm $fichier
mv "$fichier.utf" $fichier
done
cd ..
Commentaires:
-le shell est rangé sur le répertoire au dessus du répertoire texte,
d'où le cd texte
-le répertoire texte contient les fichiers à convertir; en faire une copie de sécurité avant de lancer ce shell
-le ls -1 pour un seul nom de fichier par ligne
-le iconv fait le gros du boulot; il utilise l'entrée système et la sortie système, d'où le > "$fichier.utf"
-le rm supprime l'ancien fichier
-le mv renomme le fichier converti
Pour créer ce shell, utiliser le Terminal Mac et un éditeur de texte tel pico ou autre. Pour que le shell soit exécutable, taper chmod +x ConvISO-UTF.bash sur la ligne de commande du terminal
Pour exécuter ce shell taper bash ConvISO-UTF.bash sur la ligne de commande du terminal en étant positionné sur le répertoire qui contient ce shell.