Creation d'un fichier batch avec Delphi 2009

Résolu
thonyboy Messages postés 165 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 16 février 2011 - 2 févr. 2011 à 10:48
thonyboy Messages postés 165 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 16 février 2011 - 3 févr. 2011 à 13:41
Bonjour

J'utilise Delphi 2009 et je cherche à creer un fichier Batch depuis une listbox qui contient les instructions

Quand je fait listbox.SaveToFile('todo.bat') je perd tous les caractères accentués francais.

Du coup je spécifie l'encodage

Var
Enc: tEncoding;

begin
Enc:=Tencoding.getEncoding(850)
listbox.SaveToFile('todo.bat',Enc)

Cette fois, si je fait un type sous dos de mon fichier, tout est OK, j'ai bien mes caractères avec les accents

Helas, il m'est impossible de lancer c:>todo.bat car il y a au début du fichier la signature de l'encodage (BOM) qui fait planter la premiere ligne

Comment faire ?

D'avance merci

5 réponses

WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
2 févr. 2011 à 21:45
ça fonctionne pour moi !

Voici le résultat

C:\Temp>todo

C:\Temp>REM -- test des accents éùàè

C:\Temp>dir c:\temp\déjà\*.*
 Le volume dans le lecteur C s'appelle Système
 Le numéro de série du volume est F470-4D6B

 Répertoire de c:\temp\déjà

02/02/2011  21:40    <REP>          .
02/02/2011  21:40    <REP>          ..
28/01/2011  07:30                 9 Texte.txt
               1 fichier(s)                9 octets
               2 Rép(s)     933 048 320 octets libres

C:\Temp>PAUSE
Appuyez sur une touche pour continuer...


Cordialement.[hr]"L'imagination est plus importante que le savoir." Albert Einstein
3
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
2 févr. 2011 à 20:24
Bonsoir

En partant d'un projet vierge sous Delphi 2009 en mettant un TListbox rempli avec des valeurs ('PAUSE','REM -- test des accents éùàè') et un bouton pour appeler ton code
  Enc:=Tencoding.getEncoding(850);
  listbox1.Items.SaveToFile('c:\temp\todo.bat',Enc) ;

je n'ai pas de problèmes avec le fichier généré.

D'où ma question :
As-tu modifier des options dans ton projet, ou as tu gardé les valeurs par défaut ?

Cordialement.[hr]"L'imagination est plus importante que le savoir." Albert Einstein
0
thonyboy Messages postés 165 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 16 février 2011
2 févr. 2011 à 21:10
Bonsoir

Déjà merci de te pencher sur mon probleme car depuis ce we je ne m'en sort pas.

Je vais refaire un essais demain matin mais je ne penses pas avoir toucher aucune option.Mon niveau sous delphi n'est pâs suffisament avancé.

Ce que je sais c'est que le fichier généré est bon dés lors que je le teste avec un type sous dos.
Par contre quand je veux le lancer ca plante car le BOM fait planter le premier caractere

Est ce que tu as tenter de lancer ton fichier en supposant que ton listbox contient
'dir c:\temp\déjà\*.*' avec les accents c'est important. Ensuite tu ouvre une fenetre cmd et tu essais de lancer le bat.

Bonne soirée

ThonyBoy
0
thonyboy Messages postés 165 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 16 février 2011
2 févr. 2011 à 21:10
Bonsoir

Déjà merci de te pencher sur mon probleme car depuis ce we je ne m'en sort pas.

Je vais refaire un essais demain matin mais je ne penses pas avoir toucher aucune option.Mon niveau sous delphi n'est pâs suffisament avancé.

Ce que je sais c'est que le fichier généré est bon dés lors que je le teste avec un type sous dos.
Par contre quand je veux le lancer ca plante car le BOM fait planter le premier caractere

Est ce que tu as tenter de lancer ton fichier en supposant que ton listbox contient
'dir c:\temp\déjà\*.*' avec les accents c'est important. Ensuite tu ouvre une fenetre cmd et tu essais de lancer le bat.

Bonne soirée

ThonyBoy
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thonyboy Messages postés 165 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 16 février 2011
3 févr. 2011 à 13:41
Bonjour et merci

Situ n'avais pas essayé et affirmé que ca marchait chez toi si serais peut etre encore (donc j'accepte ta réponse)

En fait j'avais fait une erreur qui était juste sous mes yeux... comme bien souvent.

J avais écrit listbox.SaveToFile('todo.bat',Enc.unicode) au lieu de listbox.SaveToFile('todo.bat',Enc)
0
Rejoignez-nous