Problème d'accent

Résolu
Signaler
Messages postés
8
Date d'inscription
vendredi 4 avril 2008
Statut
Membre
Dernière intervention
21 janvier 2012
-
Messages postés
8
Date d'inscription
vendredi 4 avril 2008
Statut
Membre
Dernière intervention
21 janvier 2012
-
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

8 réponses

Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
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="" />
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
Salut,

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

ceci devrait tout arranger

 
@+
Cirec

<hr siz="" />
Messages postés
8
Date d'inscription
vendredi 4 avril 2008
Statut
Membre
Dernière intervention
21 janvier 2012

Merci Cirec
J'essaye ça au plus vite !
Messages postés
8
Date d'inscription
vendredi 4 avril 2008
Statut
Membre
Dernière intervention
21 janvier 2012

ç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.
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
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="" />
Messages postés
8
Date d'inscription
vendredi 4 avril 2008
Statut
Membre
Dernière intervention
21 janvier 2012

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.
Messages postés
3826
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
10 mai 2021
46
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="" />
Messages postés
8
Date d'inscription
vendredi 4 avril 2008
Statut
Membre
Dernière intervention
21 janvier 2012

Merci Cirec

Je n'ai rien compris mais ça marche