Lister de fichiers de dossiers et sous dossiers, mais avec support carractère et

Résolu
supermotaboy Messages postés 65 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 14 décembre 2005 - 9 oct. 2005 à 20:12
supermotaboy Messages postés 65 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 14 décembre 2005 - 15 oct. 2005 à 15:59
Salut,



J'ai besoin pour un projet de lister les fichiers de dossiers et sous
dossiers (fichiers musicaux). Jusque là tout va bien, les sources pour
faire ça son nombreuses sur ce site. Le probleme vient du fait que
toutes les solutions que j'ai essayé (FSO, utilisation dir et
filelistbox, et autres) ne reconnaissent pas les caractères
étranger.Exemple : 04 - KДДpiФt.mp3 devient 04 - K??pi?t.mp3. et je ne
peux du coup pas l executer, que ce soit en ligne de commande, ou dans
mon cas, l'envoyer a mon prog de lecture audio. Quelqu'un aurait il une
solution?

Le but n'est pas forcément de retrouver le nom a l'identique, mais
juste qu'il soit reconnaissable par n'importe quel autre programme.



Merci d'avance
LTourist

20 réponses

cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
10 oct. 2005 à 22:43
Ce probleme très connu (des Asiatiques :p) vient bien de VB6 qui ne supporte pas l'UNICODE. Si tu veux utiliser les chaines de types unicode il faut utiliser les fonctions de chaine de caractère qui finissent par W comme ChrW(valUnicode). De même pour les API, il te faudra par exemple utiliser:
Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameW" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

au lieu de

Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

(le A final remplacé par W).

Enfin, si tu veux afficher des caractères de ce type dans ta form, il faudra malheureusement utiliser uniquement les contrôles Microsoft Forms 2.0 Object Library en rajoutant la reference ActiveX bien entendu.

Bonne chance !!!


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
3
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
15 oct. 2005 à 01:03
Voila la source de recherche de fichier avec prise en charge UNICODE, amuse toi bien .
http://www.vbfrance.com/code.aspx?ID=34208


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
3
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
9 oct. 2005 à 21:13
Tu as essayé avec la fonction de l'API GetShortPathName pour réduire le nom du fichier à 8 caractères ?

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
supermotaboy Messages postés 65 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 14 décembre 2005
9 oct. 2005 à 21:23
oui mais ça me donne une chaine de caractère vide (enfin en utilisant
le nom donné par fso) J'y avais pensais aussi et deja essayé, désolé
d'avoir oublier de le marquer.

LTourist
0

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

Posez votre question
supermotaboy Messages postés 65 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 14 décembre 2005
9 oct. 2005 à 21:25
En utilisant n'importe quel nom (meme celui copier coller depuis windows)

LTourist
0
supermotaboy Messages postés 65 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 14 décembre 2005
9 oct. 2005 à 21:51
Désolé pour tous ces messages a la suite : J'ai regardé et les
programmes qui arrivent sans probleme a lire ce fichier (wmp et
foobar2000) modifie le non de fichier en Kääpiöt. Je sais pas si ça
peut aider pour mettre sur la voie

LTourist
0
yuri1961 Messages postés 71 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 16 février 2007
10 oct. 2005 à 06:44
Salut LTourist!

Ton probleme va de ton Windows qui ne supporte pas le Cirilic (page de code 866 ou 1251)

Tu as ou bien changer ton Windows ou bien installer les fonts qui
supportent ces symboles (pour utilisation dir et filelistbox only)
0
supermotaboy Messages postés 65 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 14 décembre 2005
10 oct. 2005 à 18:56
Sans vouloir te contredire, ces caractères apparaissent correctement
sous win, donc les polices sont prises en charges non? Il n'y a que vb
qui pose probleme et quelques autres programmes, les autres
transforment les cararctères réticent en des caractères compréhensible
par win. Mais si je les vois sous win, alors il supporte le Cirilic non?

merci de ta reponse ^^
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
11 oct. 2005 à 06:27
Warning : utiliser les contrôles du MS Form 2, c'est bien, mais comment veux tu déployer ton application après ???



Les MS Form 2 sont soumis à licence, et il n'est donc pas possible de
déployer une application utilisant ces contrôles sans avoir acheté la
licence d'utilisation de ces contrôles qui sont vendus avec la version
développeur d'Office, qui est bien chère !

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
supermotaboy Messages postés 65 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 14 décembre 2005
11 oct. 2005 à 18:58
Merci de la solution Warning!! Cette astuce fontionnent-elle pour
toutes les fonctions utilisant les chaines de caractères? En ce qui
concerne la diffusion pour le Form 2.0, je ne devrais normalement pas
avoir de probleme, puisque cette application se destine dans un premier
temps a une portée purement personnelle (pour un projet de pc jukebox
totalement indépendant avec ecran LCD Graphique et telecommande). Si je
peux l'utiliser pour concevoir, je peux alors l'utiliser sur ce meme pc
non? Je ne pense pas forcement avoir besoin de les afficher, mais juste
de les stocker en variables tout au plus, est ce possible sans les Form
2.0?



merci de vos reponses

LTourist
0
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
12 oct. 2005 à 21:26
DarK Sidious> Et c'est pourtant la seule solution, proposé à la fois par miscrosoft et par tous les sites asiatiques.

Informations: http://support.microsoft.com/kb/193540/fr

Bonne journée à tous !


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
0
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
12 oct. 2005 à 21:30
supermotaboy> oui pas besoin de MS Forms 2.0 si tu ne compte pas afficher ces caractères.


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
0
supermotaboy Messages postés 65 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 14 décembre 2005
12 oct. 2005 à 21:41
merci pour le lien Waening, tres utile...Mais je ne comprends pas : si
je souhaite juste les utiliser en tant que variables, je fais comment
alors??? Et si je veux les afficher, l'histoire de license???

LTourist
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
12 oct. 2005 à 21:48
C'est quand même culoté de la part de Microsoft de préconisé d'utiliser leurs contrôles sous licence !



supermotaboy : il suffit que tu ai une référence vers les ms forms pour
que la licence soit demandée et que tu ne puisse pas déployer ton prog
sur un autre pc non équipé d'office.



Les licences sur le MS FORM sont simples : tu as le droit de l'utiliser
en local (sur ton poste) si tu as Office, mais tu ne peux pas les
distribuer avec ton application => les clients doivent
OBLIGATOIREMENT avoir office d'installé pour que ton prog puisse
fonctionner :(



C'est pour cà que je déconseille fortement d'utiliser les MS Form dans
ses projets, j'ai déjà eu ce problème pour mon viewer d'api lorsque
j'ai voulu déployer la première version alpha, et je peux te dire :
devoir revoir toute ta conception à cause d'une license que tu n'a pas
le droit de distribuer, ca calme !

_____________________________________________________________________
DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) tout en français : www.ProgOtoP.com/popapi/
0
supermotaboy Messages postés 65 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 14 décembre 2005
12 oct. 2005 à 22:07
Je trouve bizarre dans ce cas de fournir les librairies et de permettre
de dévelloper dessus sans avoir office d'installé. D'au autre coté un
develloppeur ne doit pas forcément avoir tous les produits microsoft
pour pouvoir dévelloper il est vrai. Et donc j'en ai besoin ou pas si
je veux les assigner a des variables?

LTourist
0
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
13 oct. 2005 à 21:10
Non tu n'en a pas besion, par exemple pour placer le caractère UNICODE &h6521 dans mavar:
Dim MaVar As String
MaVar = ChrW(&H6521)


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
0
supermotaboy Messages postés 65 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 14 décembre 2005
14 oct. 2005 à 19:29
Bah oui mais ça me permet pas d obtenir la bonne chaine de caractère.
D'autre part, j'ai trouvé un exemple de listage de fichier par api, et
j'ai rajouté w a la fin, et ça n'avait pas l'air de fonctionner, je
vias réessayer...Je vous tiens au courant

LTourist
0
supermotaboy Messages postés 65 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 14 décembre 2005
14 oct. 2005 à 19:40
Je confirme que les fonctions findfirstfile et findnextfile n 'existe
pas avec W a la fin.... Et vu que les Forms 2.0 ne comporte pas de
DirBox ou autre, je ne vois pas comment faire.... :(

LTourist
0
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
15 oct. 2005 à 00:19
Bien sur que si ils existent ! Je suis en train de te preparer une source...

Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
0
supermotaboy Messages postés 65 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 14 décembre 2005
15 oct. 2005 à 15:59
alors ça, ça c'est bien beaucoup gentil, merci beaucoup!!! Pourtant
quand je mettais w a la fin, aucun fichier n'etait trouvé (-1 tout le
temps)... Bon je vais regarder ça de plus pres, encore merci!! Et je
pense qu'il n 'y aura pas que moi que ça va arranger!!!

Par contre maintenant j'ai un second probleme a résoudre, auxquels je n
avais pas epnsé. Une fois le chemin récupérer, le nom de fichier est
utilisé pour ouvrir un fichier (dans le cas présent mp3, mais peut
aussi etre ogg ou mpc) pour récuperer ses tags. Seulement pour ça, une
instruction Open est utilisée, et bien sur la fonction ne retourne rien
puisque open ne supporte pas le unicode. Y a t'il un moyen de procéder
ou dois abandonner?

LTourist
0
Rejoignez-nous