Creation d'un fichier batch avec Delphi 2009 [Résolu]

Signaler
Messages postés
166
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
16 février 2011
-
Messages postés
166
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
16 février 2011
-
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

Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012

ç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
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012

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
Messages postés
166
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
16 février 2011

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
Messages postés
166
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
16 février 2011

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
Messages postés
166
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
16 février 2011

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)