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

thonyboy 166 Messages postés mercredi 23 avril 2003Date d'inscription 16 février 2011 Dernière intervention - 2 févr. 2011 à 10:48 - Dernière réponse : thonyboy 166 Messages postés mercredi 23 avril 2003Date d'inscription 16 février 2011 Dernière intervention
- 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
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
WhiteHippo 1270 Messages postés samedi 14 août 2004Date d'inscription 5 avril 2012 Dernière intervention - 2 févr. 2011 à 21:45
3
Merci
ç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

Merci WhiteHippo 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de WhiteHippo
WhiteHippo 1270 Messages postés samedi 14 août 2004Date d'inscription 5 avril 2012 Dernière intervention - 2 févr. 2011 à 20:24
0
Merci
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
Commenter la réponse de WhiteHippo
thonyboy 166 Messages postés mercredi 23 avril 2003Date d'inscription 16 février 2011 Dernière intervention - 2 févr. 2011 à 21:10
0
Merci
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
Commenter la réponse de thonyboy
thonyboy 166 Messages postés mercredi 23 avril 2003Date d'inscription 16 février 2011 Dernière intervention - 2 févr. 2011 à 21:10
0
Merci
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
Commenter la réponse de thonyboy
thonyboy 166 Messages postés mercredi 23 avril 2003Date d'inscription 16 février 2011 Dernière intervention - 3 févr. 2011 à 13:41
0
Merci
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)
Commenter la réponse de thonyboy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.