Bonsoir,
Après avoir passé vainement un peu de temps avec 'mon ami Google', je viens à vous avec mon problème.
C'est en voulant afficher le nom d'un fichier contenu dans un fichier zip que je cale.
Voici la procédure de test du problème
Merci de bien vouloir m'aider.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 // ajout dans la clause uses de System.Zip, // la procédure appelée via un bouton : procedure TForm1.BtnFilesInfosClick(Sender: TObject); var Zip : TZipFile; Infos_Fichier : system.Zip.TZipHeader; Nom_de_Fichier_String : string; Nom_de_Fichier_ANSIString : ANSIString; j : integer; begin Zip := TZipFile.Create; Zip.Open('D:\fic.zip', zmread); Infos_Fichier := Zip.FileInfo[0]; // le fichier pointé se nomme é.txt Nom_de_Fichier_String := ''; for j := 0 to Infos_Fichier.FileNameLength - 1 do Nom_de_Fichier_String := Nom_de_Fichier_String + Char(Infos_Fichier.FileName[j]); ShowMessage(Nom_de_Fichier_String); // résultat affiché : '.txt' Nom_de_Fichier_ANSIString := ''; for j := 0 to Infos_Fichier.FileNameLength - 1 do Nom_de_Fichier_ANSIString := Nom_de_Fichier_ANSIString + ANSIChar(Infos_Fichier.FileName[j]); ShowMessage(Nom_de_Fichier_ANSIString); // résultat affiché : ',.txt' { En exécutant en mode pas à pas cette procédure je vois que Infos_Fichier.FileName contient en décimal les valeurs : 130, 46, 116, 120, 116 (ou en hexadécimal : 82, 2E, 74, 78, 74) J'ai remarqué que dans la table ascii étendu le caractère 'é' est codé (en hexadécimal) 82. Comment afficher correctement ce caractère accentué? } end;
Jean-Jacques.







Répondre avec citation
Partager