Fichiers de la 3D

Vous avez une idée pour améliorer ou modifier PureBasic ? N'hésitez pas à la proposer.
pat
Messages : 406
Inscription : mar. 24/nov./2009 15:13

Fichiers de la 3D

Message par pat »

Bonjour,

Je souhaite que PB (je suis bien dans le sujet Suggestions et améliorations) puisse corriger et améliorer un demi-bug concernant les fichiers sur la 3D.
Pourquoi demi ? Parce qu'on ne peut pas vraiment dire que cela est quelque chose de vraiment buggé mais si on réfléchit bien, ce mini-bug peut planter le système.
De quoi s'agit-il ?
Faites le test suivant :
Créer un dossier avec le nom : "Mon jeu préféré".
Vous remarquez que dans le nom il y a des accents (ééé).
Mettez-y un programme créé avec PB.
1) Les fichiers exploités par la 3D ne sont pas reconnus.
2) Cela peut parfois planter le programme.

Même chose si vous mettez un accent (ééèîö, etc.) dans le nom du fichier exploité par la 3D.

Et je ne pense pas que Fred puisse me dire, ce coup ci, qu'il n'y a pas de solution pour ce problème.
Je crois savoir (même sûr), que l'instruction IncludePath("---") accepte sans problème les fichiers avec les accents. Il serait temps que ce soit également le cas en ce qui concerne la 3D.
Sûrement que ce post sera verrouillé.
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Fichiers de la 3D

Message par Ar-S »

C'est vrai que ça fait un moment que tu réclames cette correction. Je ne sais pas ce qu'elle entraine comme travail pour la team mais je doute que ce soit un gros morceau.
Par contre je radote encore un peu mais une des règles de bases en info depuis toujours est de ne pas mettre d'accents pour les noms de fichiers ou dossiers. Parce que oui tu as des soucis avec PB mais tu en auras surement avec d'autres logiciels. Ne serait-ce qu'en cas de problème de disque dur, si tu lances une récupération avec un soft comme recuva, il y a des chances pour ça chie. Idem pour les codes html si le document n'est pas en unicode, il faut se taper la conversion é=é etc.. Tant que l'unicode n'est pas utilisé et correctement interprété de partout, évitez les accents pour nommer vos fichiers et dossiers, c'est pas la mer à boire. Et si tu diffuses logiciel PB avec un dossier de datas que tu appelles "données", je me dis que les non francophones selon leur os vont avoir un beau caractère inconnu.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
graph100
Messages : 1318
Inscription : sam. 21/mai/2005 17:50

Re: Fichiers de la 3D

Message par graph100 »

je pense qu'il souligne le fait que si tu publies un jeu, une personne non avertie le rangeras peut-être dans un de ses dossiers perso, et râleras parce que ça ne marcheras pas !
_________________________________________________
Mon site : CeriseCode (Attention Chantier perpétuel ;))
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Fichiers de la 3D

Message par Ar-S »

Mais je n'en doute pas :mrgreen:
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Huitbit
Messages : 939
Inscription : jeu. 08/déc./2005 5:19
Localisation : Guadeloupe

Re: Fichiers de la 3D

Message par Huitbit »

Ar-S a écrit : ...une des règles de bases en info depuis toujours est de ne pas mettre d'accents pour les noms de fichiers ou dossiers...

+1 :wink:
Elevé au MSX !
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Fichiers de la 3D

Message par djes »

Tu as essayé avec la version courte du nom de fichier ? Voir http://msdn.microsoft.com/en-us/library ... s.85).aspx
comtois
Messages : 5172
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: Fichiers de la 3D

Message par comtois »

C'est sans doute un bug d'Ogre

Vu sur le forum d'ogre
Ogre has a bug that prevents it from running from folders with special symbols in path - we found this bug when Live Interior 3D failed to start for French user with "e with grave accent" letter in his name and therefore in his home folder path, and apps from Apple App Store are installed right there.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
pat
Messages : 406
Inscription : mar. 24/nov./2009 15:13

Re: Fichiers de la 3D

Message par pat »

Bonjour à tous,

Merci à tous pour vos réponses respectives.

A comtois :
Effectivement, cela semble un bug d'Ogre, et il est peu probable que PB puisse faire quelque chose.
Mais comment faire pour qu'Ogre corrige le bug ?

A graph100 :
100 % en ligne avec ce que je pense.
Si je publie un programme, une personne non avertie pensera que ce jeu ne fonctionne pas.

A tous les autres :
Comment pouvez-vous être autant de mauvaise foi !
Si Windows accepte les accents dans les fichiers, cela est donc quelque chose de normal que de mettre des accents (sauf, bien sûr les caractères non-autorisés, qui seront de toute façon refusé quand on saisira le nom).
Et, en ce qui concerne les jeux, cela s'adresse à des personnes non averties pour la plupart, qui mettront des accents dans le nom de leur répertoire.
Et quand ces personnes verront que le programme ne fonctionne pas, elles l'élimineront de leur ordinateur.
Et diront que le programme est buggé.
Tout le monde ne connaît pas l'informatique comme c'est le cas des gens qui sont ici.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Fichiers de la 3D

Message par Backup »

pat a écrit : A tous les autres :
Comment pouvez-vous être autant de mauvaise foi !
Si Windows accepte les accents dans les fichiers, cela est donc quelque chose de normal que de mettre des accents (sauf, bien sûr les caractères non-autorisés, qui seront de toute façon refusé quand on saisira le nom).
heu !! réveilles toi , regarde juste sur google :
https://www.google.fr/search?q=l%27empl ... al&spell=1

tu verra que tu n'es pas le seul a rencontrer des problèmes d'accents sur Windows, Linux,etc ..
c'est une évidence, les systèmes d'exploitations sont anglo saxon , et ils n'utilisent pas d'accents a la base !

le fait de passer un OS en Français, ne va pas arranger tout les problemes ..
simplement parceque a la base, les OS sont conçut pour ne pas avoir d'accents !

ecris a Micromoux , ils feront peut etre quelques chose pour les Futur OS ...
du reste , je me demande toujours comment font les israéliens, les arabes, les allemands, les norvegiens etc ...

ha bah oui ... ils font comme nous , ils n'utilisent pas d'accents dans le nom des dossiers,fichiers .. etc ..
voir meme ... qu'ils n'utilisent pas d'espaces ! ils preferent utiliser le signe "_" étonnant non ?
sont trop bizarre ces gens :mrgreen:
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Fichiers de la 3D

Message par djes »

Hey Pat, keep cool... D'abord, on le sait que c'est un bug d'Ogre, sinon Fred l'aurait corrigé depuis belle lurette. Je t'ai demandé si tu avais regardé du côté des noms de fichiers courts, et bien sûr, le lien de chez Microsoft que je t'avais donné ne passe pas sur le forum. Oui, c'est encore la faute de Microsoft, with their stupid way to handle filenames for decades, and I don't speak about their bloatware and garbageous code. The so stupid Microsoft links and websites are not better.

Voici le lien court pour aller jeter un oeil sur les fonctions qui permettent de transformer les chemins longs en chemins courts (version DOS), c'est à dire sans toute la clique d'accents et autres trucs non gérés correctement par Windows (et oui, c'est bien Windows le coupable, ça fonctionne sur les autres OS depuis belle lurette aussi) :
http://lc.cx/NUy
Le lien réel (enlève l'espace) : http: //msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx

Et voici la fonction, GetShortPathName(), http://lc.cx/NUt , dont un exemple est donné (bien sûr) sur la page de GetFullPathName() : http://urls.fr/w7h

Malheureusement... !!! Microsoft a crû bon de *permettre* (LOL) à certains sysops de ne pas autoriser les noms courts sur leurs systèmes. Du coup cette astuce peut ne pas fonctionner et on se retrouve au point de départ.

Conclusion : quand on code sur un OS assez ancien comme Windows, ou qu'on utilise des API codées par des centaines de programmeurs (et souvent avec les pieds), il faut se tenir paré à tout un tas de petites incompatibilités, des petites choses qui ne devraient jamais arriver, mais qui arrivent fatalement. Ici, tu sais qu'il y a un souci avec les noms accentués, donc tu dois prévenir les utilisateurs, et tout simplement ne pas leur permettre d'installer dans un tel dossier. Ce sera beaucoup mieux que ces programmes qu'on a tous vu, qui s'installent n'importe comment, et qui laissent traîner des dossiers aux noms tronqués n'importe où.
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: Fichiers de la 3D

Message par GallyHC »

Bonjour,

J'ai fait la procedure de conversion des nom long vers court cela ce passe ici (http://www.pbfrance.com/?url=source&cmd=viewer&val=23), apres on clique sur le bouton "Code-Source" orange.

Cordialement,
GallyHC
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Fichiers de la 3D

Message par djes »

Merci GallyHC ! Ca ne fonctionnait pas ici, j'ai corrigé un peu, si ça ne te dérange pas :

Code : Tout sélectionner

; ****************************************************************************
; By GallyHC : http://www.pbfrance.com/?url=source&cmd=viewer&val=23
; ****************************************************************************

#MAX_PATH_LENGTH  = 256

; ****************************************************************************
; ****************************************************************************

Procedure.s getShortPath(sPath.s)
; ROUTINE DE RECHERCHE DES NOMS COURTS D'UN PATH.
  Define result.i
  Define tmpShortPath.s{#MAX_PATH_LENGTH}

  result = FileSize(sPath)
  If result <> -1
  	result = GetShortPathName_(sPath, @tmpShortPath, #MAX_PATH_LENGTH)
  	If result > 0
    	ProcedureReturn Mid(tmpShortPath, 1, result)
    EndIf
  Else
  	Debug "Can't open " + sPath
 	EndIf

EndProcedure

; ****************************************************************************
; ****************************************************************************
;
; EXEMPLE AVEC "C:\Windows\System32\GroupPolicy\User".
;
Filename.s = "C:\Windows\System32\GroupPolicy\User"
Debug getShortPath(Filename)
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: Fichiers de la 3D

Message par GallyHC »

Bonjour,

@DJes > pas de problème je prend toute les corrections :). je vais même mettre a jour sur le site.

Cordialement,
GallyHC

PS : pas con cela :

Code : Tout sélectionner

; ****************************************************************************
; By GallyHC : http://www.pbfrance.com/?url=source&cmd=viewer&val=23
; ****************************************************************************
Je vais même surement l'ajouter en automatique sur PBFrance :).
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Fichiers de la 3D

Message par djes »

:)
Mesa
Messages : 1092
Inscription : mer. 14/sept./2011 16:59

Re: Fichiers de la 3D

Message par Mesa »

J'ai essayé de rendre la procédure la plus robuste possible.

Attention, si on utilise un chemin avec lecteur (c:\chemin...) alors #MAX_PATH_LENGTH =260, voir le code ci-dessous.

Code : Tout sélectionner



; **************************************************************************** 
; **************************************************************************** 

Procedure.s getShortPath(sPath.s) 
  ; ROUTINE DE RECHERCHE DES NOMS COURTS D'UN PATH. 
  Protected Longueur.q
  Protected tmpShortPath.s{260} ; D'après la doc de microsoft = x:\ + 256 + 0 = 260 caractères
  ;http://msdn.microsoft.com/en-us/library/windows/desktop/aa365247%28v=vs.85%29.aspx#maxpath
  
  If FileSize(sPath) = -2 ; Est-ce bien un chemin ?
    Longueur=GetShortPathName_(sPath, 0, 0) ;Longueur du chemin
    If Longueur < 261 
      If GetShortPathName_(sPath, @tmpShortPath, Longueur) > 0
        ProcedureReturn Mid(tmpShortPath, 1, Longueur)
      Else
        ProcedureReturn ""  ; Ne devrait jamais arriver jusqu'ici, mais bon...
      EndIf ;if >0
    Else
      MessageRequester("Attention", "Les noms de chemins supérieurs à 260 caractères ne sont pas pris en compte. Veuillez utiliser Unicode.")
      ProcedureReturn ""    
    EndIf  ; If Longueur < 261 
  Else 
    MessageRequester("Attention", "Ceci n'est pas un Chemin : " + sPath )
    ProcedureReturn "" 
  EndIf ;If FileSize(sPath) = -2
  
EndProcedure 

; **************************************************************************** 
; **************************************************************************** 
; 
; EXEMPLE AVEC "C:\Windows\System32\GroupPolicy\User". 
; 
Path.s = "C:\Windows\System32\GroupPolicy\User" 
Debug Path
Debug getShortPath(Path)
Debug"--------------------------------------------------------------"
Path.s = "C:\Windows\System32\GroupPolicy\User\exemple.exe" 
Debug Path
Debug getShortPath(Path)

M.
Répondre