Problème d'accent [Résolu]

Scapmag 8 Messages postés vendredi 4 avril 2008Date d'inscription 21 janvier 2012 Dernière intervention - 23 avril 2008 à 09:30 - Dernière réponse : Scapmag 8 Messages postés vendredi 4 avril 2008Date d'inscription 21 janvier 2012 Dernière intervention
- 23 avril 2008 à 20:12
Bonjour à tous

N'ayant pas trouvé de logiciel qui permet de faire des listes de compressions/decompressions de fichiers RAR à exécuter plus tard, j'ai décidé de le faire moi-même. Mais avec mon petit niveau de débutant, je bloque sur un problème d'accentuation.
Le principe du programme est de créér un fichier bat avec les instructions type RAR X "Fichiers.rar". Mais lorsque le nom du fichier RAR contient un accent ("problème.rar"), le fichier Bat est bien écrit mais lors de son exécution par une instruction shell, les lettres accentuées sont remplacées par d'autres signes.
Avez-vous une solution à mon problème ?
Merci
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 23 avril 2008 à 16:32
3
Merci
dans la précipitation j'ai oublier un truc important :

procedure TForm1.Button1Click(Sender: TObject);
var
Si :STARTUPINFO;
Pi : PROCESS_INFORMATION    ;
begin
  zeromemory(@si,sizeof(STARTUPINFO));
  Si.dwFlags:=STARTF_USESHOWWINDOW;
  Si.wShowWindow:=SW_HIDE;
  If CreateProcess(Nil, 'F:\Program Files\Winrar\Rar.exe X éssais.rar o+',nil,nil,True,
  0,nil,nil,Si,Pi) Then
  Begin
    WaitForSingleObject(pi.hProcess,INFINITE);
    CloseHandle( Pi.hProcess );
    CloseHandle( Pi.hThread );
  End;
  MessageBox(handle,'c''est fini','Fin',MB_OK);
end;

 
@+
Cirec

<hr siz="" />

Merci Cirec 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 73 internautes ce mois-ci

Commenter la réponse de Cirec
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 23 avril 2008 à 12:23
0
Merci
Salut,

essaye de convertir le nom du fichier avec : ExtractShortPathName de l'unité SysUtils.pas

ceci devrait tout arranger

 
@+
Cirec

<hr siz="" />
Commenter la réponse de Cirec
Scapmag 8 Messages postés vendredi 4 avril 2008Date d'inscription 21 janvier 2012 Dernière intervention - 23 avril 2008 à 13:17
0
Merci
Merci Cirec
J'essaye ça au plus vite !
Commenter la réponse de Scapmag
Scapmag 8 Messages postés vendredi 4 avril 2008Date d'inscription 21 janvier 2012 Dernière intervention - 23 avril 2008 à 13:37
0
Merci
ça fonctionne bien seulement si je n'ai pas d'accent sur les 6 premières lettres.

problème.rar donne problè~1.rar qui ne fonctionne pas
probleme d'intérêt.rar donne proble~1.rar qui fonctionne correctement

Peut-être une autre idée ??
En tout cas merci.
Commenter la réponse de Scapmag
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 23 avril 2008 à 13:45
0
Merci
problème.rar et probleme d'intérêt.rar c'est le nom du fichier de sortie
c'est pas des fichiers à compresser ?

 
@+
Cirec

<hr siz="" />
Commenter la réponse de Cirec
Scapmag 8 Messages postés vendredi 4 avril 2008Date d'inscription 21 janvier 2012 Dernière intervention - 23 avril 2008 à 15:33
0
Merci
Merci


Non c'est les fichiers à décompresser dans ce cas.
Dans mon fichier Bat j'ai
RAR X c:\problè~1.rar
RAR X c:\proble~1.rar
J'exécute le bat après et le programme RAR ne reconnais pas le 1er alors que le 2eme fonctionne bien.
Dans mon programme, je peux sélectionnner des fichier RAR à décompresser ou des dossiers à compresser.


Je m'aperçois que je suis peut-être compliqué par rapport à mon faible niveau de Delphi.
Commenter la réponse de Scapmag
Cirec 4231 Messages postés vendredi 23 juillet 2004Date d'inscription 3 août 2018 Dernière intervention - 23 avril 2008 à 16:24
0
Merci
essaye ça :
procedure TForm1.Button1Click(Sender: TObject);
var
Si :STARTUPINFO;
Pi : PROCESS_INFORMATION    ;
begin
  zeromemory(@si,sizeof(STARTUPINFO));
  Si.dwFlags:= STARTF_USESHOWWINDOW;
  Si.wShowWindow:=SW_HIDE;
  CreateProcess(Nil, 'F:\Program Files\Winrar\Rar.exe X éssais.rar o+ ',nil,nil,True,
  0,nil,nil,Si,Pi);
  WaitForSingleObject(pi.hProcess,INFINITE);
  MessageBox(handle,'c''est fini','Fin',MB_OK);
end;

o+  = écraser les fichiers existants
 
@+
Cirec

<hr siz="" />
Commenter la réponse de Cirec
Scapmag 8 Messages postés vendredi 4 avril 2008Date d'inscription 21 janvier 2012 Dernière intervention - 23 avril 2008 à 20:12
0
Merci
Merci Cirec

Je n'ai rien compris mais ça marche
Commenter la réponse de Scapmag

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.