Problème d'accent

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

8 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
23 avril 2008 à 16:32
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="" />
3
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
23 avril 2008 à 12:23
Salut,

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

ceci devrait tout arranger

 
@+
Cirec

<hr siz="" />
0
Scapmag Messages postés 8 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 21 janvier 2012
23 avril 2008 à 13:17
Merci Cirec
J'essaye ça au plus vite !
0
Scapmag Messages postés 8 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 21 janvier 2012
23 avril 2008 à 13:37
ç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.
0

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

Posez votre question
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
23 avril 2008 à 13:45
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="" />
0
Scapmag Messages postés 8 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 21 janvier 2012
23 avril 2008 à 15:33
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.
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
23 avril 2008 à 16:24
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="" />
0
Scapmag Messages postés 8 Date d'inscription vendredi 4 avril 2008 Statut Membre Dernière intervention 21 janvier 2012
23 avril 2008 à 20:12
Merci Cirec

Je n'ai rien compris mais ça marche
0