[Résolu] Chemin pour charger un programme
[Résolu] Chemin pour charger un programme
Bonjour à tous,
je viens à votre secours, parce que je ne comprend pas pourquoi je dois indiquer le chemin complet pour charger quoi que ce soit (sprite, image, son, programme, etc...)
Le problème vient je pense de la version 5.30, j'en suis à la b5, mais ça le fait depuis le début et je suis surpris d'être obligé d'indiquer le même chemin que le programme lui-même !
Si vous avez une solution, pouvez-vous la partager avec moi, s'il vous plaît, je vous en remercierait grandement !
Merci déjà par anticipation.
je viens à votre secours, parce que je ne comprend pas pourquoi je dois indiquer le chemin complet pour charger quoi que ce soit (sprite, image, son, programme, etc...)
Le problème vient je pense de la version 5.30, j'en suis à la b5, mais ça le fait depuis le début et je suis surpris d'être obligé d'indiquer le même chemin que le programme lui-même !
Si vous avez une solution, pouvez-vous la partager avec moi, s'il vous plaît, je vous en remercierait grandement !
Merci déjà par anticipation.
Dernière modification par Micoute le sam. 05/juil./2014 18:34, modifié 1 fois.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
- TazNormand
- Messages : 1297
- Inscription : ven. 27/oct./2006 12:19
- Localisation : Calvados (14)
Re: Chemin pour charger un programme
Salut Micoute
Je ne vois rien d'anormal là-dedans. Quelque soit le langage utilisé, tu es obligé de dire où aller chercher les données. Tu peux très bien installer ton programme dans "Program Files" et aller chercher des données ailleurs.
Pour le chemin de ton application, utilises GetCurrentDirectory()
Je ne vois rien d'anormal là-dedans. Quelque soit le langage utilisé, tu es obligé de dire où aller chercher les données. Tu peux très bien installer ton programme dans "Program Files" et aller chercher des données ailleurs.
Pour le chemin de ton application, utilises GetCurrentDirectory()
Re: Chemin pour charger un programme
il n'a peut etre pas si tord
j'ai pas vérifié , mais ce serait normal que par defaut ça commence par regarder le Path$ du prg ... non ?
bon il y a une fonction pour ça
j'ai pas vérifié , mais ce serait normal que par defaut ça commence par regarder le Path$ du prg ... non ?
bon il y a une fonction pour ça

Re: Chemin pour charger un programme
Reglage du compilateur PB ? Option du compilateur -> compiler exécuter
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Chemin pour charger un programme
Normalement je stocke mes ressources dans un dossier media ou asset.
J'ai fait un test avec la 5.30 en incluant une image dans le même dossier que le code et je n'ai pas à indiqué le chemin de mon image ni même utilisé GetCurrentDirectory() et je n'ai rien changé à la configuration de l'ide : Je n'ai pas le souci que rencontre Micoute.
Mon code Pure Punch utilise une image et un son qui se trouve dans le même dossier que le code.
J'ai fait un test avec la 5.30 en incluant une image dans le même dossier que le code et je n'ai pas à indiqué le chemin de mon image ni même utilisé GetCurrentDirectory() et je n'ai rien changé à la configuration de l'ide : Je n'ai pas le souci que rencontre Micoute.
Mon code Pure Punch utilise une image et un son qui se trouve dans le même dossier que le code.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Chemin pour charger un programme
Je vous remercie de vos conseils avisés, mais ça ne règle rien à mon problème et je suis toujours obligé de taper le chemin entier et comme chantait Joe : qu'il est long ton chemin papa !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
- TazNormand
- Messages : 1297
- Inscription : ven. 27/oct./2006 12:19
- Localisation : Calvados (14)
Re: Chemin pour charger un programme
Peux-tu être un peu plus explicite ?
si tu as sauvegardé ton code source dans un dossier, disons C:\MicouteProg, et que tu stockes tes "ressources" dans ce dossier, ton programme ne va pas chercher dans ce dossier, tu es obligé de le préciser ?
un petit bout de code pour nous montrer ton problème serait le bienvenu (genre un chargement d'un fichier texte bidon)
si tu as sauvegardé ton code source dans un dossier, disons C:\MicouteProg, et que tu stockes tes "ressources" dans ce dossier, ton programme ne va pas chercher dans ce dossier, tu es obligé de le préciser ?
un petit bout de code pour nous montrer ton problème serait le bienvenu (genre un chargement d'un fichier texte bidon)
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Chemin pour charger un programme
J'ai fais une installation de la version 5.30 Beta 6 dans un nouveau dossier et je n'ai pas rencontré ton souci.
Peux tu refaire une installation de Pure Basic dans un nouveau dossier ? Exemple : C:\Program Files (x86)\PureBasic530
Peux tu refaire une installation de Pure Basic dans un nouveau dossier ? Exemple : C:\Program Files (x86)\PureBasic530
Tu fais bien référence à un code 2d ?Micoute a écrit :sprite, image, son, programme, etc...
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Chemin pour charger un programme
Pour que tout le monde comprenne, je reprend le code de falsam.
Je pense que là, toute le monde à compris : comme les 2 programmes appelés se trouvent dans le même répertoire que le programme principal, on ne devrait pas avoir à indiquer le chemin !
Chose curieuse, avant, avec la version 5.22 LTS, ça fonctionnait très bien, mais plus maintenant, là je pense au fichier de préférence chargé à l'initialisation de l'EDI (Environnement de Développement Intégré) qui a été modifié par la dernière version installée.
J'espère avoir été assez explicite et je vous remercie à nouveau pour le temps précieux que vous dépensez pour moi.
Code : Tout sélectionner
;*****************************************************************************
;*
;* July-August 2014 PurePunch contest
;* PureBasic 5.22
;* 50 lines of 80 chars, 2 months delay
;*
;* Name : Where is the turtle
;* Author : falsam
;* Date : Jul 02, 2014 - Update Jul 04, 2014
;* Notes : Search and click on a turtle. A turtle found adds time and a tree.
;*
;*****************************************************************************
Structure x:s.i:x.i:y.i:a.i:EndStructure
Global fg,f1,f2,Dim m(15),NewList s.x(),ct,tf,ti,ns,li,i,ev,mr,ac=-1,bs,bo
Procedure f(w):Protected fc.b, mx, my
mx=WindowMouseX(w):my=WindowMouseY(w):MouseLocate(mx,my)
If mx>0 And mx<WindowWidth(w,1)-1 And my>0 And my<WindowHeight(w,1)-1
ReleaseMouse(0):fc=1:Else:fc=0:ReleaseMouse(1):EndIf
ProcedureReturn fc:EndProcedure
Procedure r(i,j):ProcedureReturn Random(i,j):EndProcedure
Procedure ps(f,p):SetSoundFrequency(0,f):SoundPan(0,p):PlaySound(0):EndProcedure
fg=LoadFont(-1,"Arial",20):f1=LoadFont(-1,"Arial",16)
f2=LoadFont(-1,"Arial",50,256)
InitSprite():InitKeyboard():InitMouse():InitSound():UsePNGImageDecoder()
OpenWindow(0,0,0,800,600,"Turtle",13107201):AddWindowTimer(0, 0, 1000)
OpenWindowedScreen(WindowID(0),0,0,800,600):LoadSound(0,"C:\Programmation\Pure Punch 2014\falsam\s.wav")
For i=0 To 15:m(i)=LoadSprite(-1,"C:\Programmation\Pure Punch 2014\falsam\s.png",8):ClipSprite(m(i),i*64,0,64,64):Next
ClipSprite(m(8),0,130,64,64):ClipSprite(m(9),65,130,64,64)
ClipSprite(m(10),129,130,64,64):ClipSprite(m(11),0,360,15,23)
ClipSprite(m(12),0,280,48,48):ClipSprite(m(13),200,280,32,32)
ClipSprite(m(14),280,280,32,32):ClipSprite(m(15),280,130,32,32)
Repeat:Repeat:ev=WindowEvent():If ev=13110 And ti>0:ti=ti-1:EndIf:
If ev=13116:End:EndIf:Until ev=0
FlipBuffers():ExamineKeyboard():ExamineMouse():ClearScreen($18D3D3D3)
If ac=-1:ac=0:ct=10:ns=1:tf=0:ti=5:li=1:ps(44100,0):EndIf
If ns=1:ClearList(s()):For i=0 To ct:AddElement(s())
s()\s=m(r(7,0)):s()\x=r(692,64):s()\y=r(472,128):s()\a=r(255,128):Next
SelectElement(s(),0):s()\s=m(8):s()\x=r(448,128):s()\y=r(384,128):s()\a=255:ns=0
EndIf:ForEach s():DisplayTransparentSprite(s()\s,s()\x,s()\y,s()\a):Next
SelectElement(s(),0):DisplayTransparentSprite(m(12),380,540)
DisplayTransparentSprite(m(13),610,5):DisplayTransparentSprite(m(14),710,5)
DisplayTransparentSprite(m(15),515,5):If KeyboardReleased(19):ac=-1:EndIf
If f(0):DisplayTransparentSprite(m(11),MouseX(),MouseY()):EndIf
If MouseButton(1):If mr=0:mr=1
If SpriteCollision(m(11),MouseX(),MouseY(),m(12),380,540):ac=-1
ElseIf ac<>-2:If SpriteCollision(m(11),MouseX(),MouseY(),m(8),s()\x,s()\y)
tf+1:ps(r(50000,10000),r(300,100)-200):ti+2:ns=1:ct+1
Else:ac=2:EndIf:EndIf:EndIf:Else:mr=0:EndIf
If tf>49 And bo=0:li+1:bo+1:EndIf:If tf>79 And bo=1:li+1:bo+1:EndIf
If ti=0 And ac<>-2 Or ac<>-1:ac=2:mr=0:EndIf
If ac=2:If li>0:li-1:ac=0:s()\s=m(9)
Else:ti=0:ac=-2:ps(4700,0):s()\s=m(10):EndIf:EndIf
StartDrawing(ScreenOutput()):DrawingMode(1):DrawingFont(FontID(f2))
If ac=-2:RotateSprite(m(12),1,1):DrawText(200,280,"GAME OVER!",$18808080): EndIf
DrawingFont(FontID(fg)):DrawText(10, 10, "Where is the turtle",$000000)
DrawText(560,5,Str(li),$000000):DrawText(650,5,Str(tf),$000000)
DrawText(750,5,Str(ti),$000000):DrawingFont(FontID(f1))
DrawText(20,560,"falsam - PurePunch Contest 2014",$000000)
DrawText(610,560,"Escape key : End",$000000)
StopDrawing():Until KeyboardPushed(1)
Chose curieuse, avant, avec la version 5.22 LTS, ça fonctionnait très bien, mais plus maintenant, là je pense au fichier de préférence chargé à l'initialisation de l'EDI (Environnement de Développement Intégré) qui a été modifié par la dernière version installée.
J'espère avoir été assez explicite et je vous remercie à nouveau pour le temps précieux que vous dépensez pour moi.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Chemin pour charger un programme
entre parentheses , evitez d'installer PB dans C:\ ..... vu qu'avec Height l'ecriture dans C:\ pose probleme
de preference utilisez une partition ex : E:\
ensuite utilisez un dossier par Version de Purebasic
exemple ;
E:\Purebasic_3.92\x86\..... ;pour Purebasic 32bits
E:\Purebasic_3.92\x64\..... ;pour Purebasic 64bits
E:\Purebasic_400\x86 ;pour Purebasic 32bits
E:\Purebasic_400\x64 ;pour Purebasic 64bits
ect ....
et un seul dossier EPB
E:\EPB\ .....
avantage de la partition , si votre systeme plante ... un reformatage n'effacera pas vos Purebasic, ni votre boulot
de preference utilisez une partition ex : E:\
ensuite utilisez un dossier par Version de Purebasic
exemple ;
E:\Purebasic_3.92\x86\..... ;pour Purebasic 32bits
E:\Purebasic_3.92\x64\..... ;pour Purebasic 64bits
E:\Purebasic_400\x86 ;pour Purebasic 32bits
E:\Purebasic_400\x64 ;pour Purebasic 64bits
ect ....
et un seul dossier EPB

E:\EPB\ .....
avantage de la partition , si votre systeme plante ... un reformatage n'effacera pas vos Purebasic, ni votre boulot
Re: Chemin pour charger un programme
Hélas, je n'ai pas le choix, parce je ne suis pas parvenu à partitionner mon disque dur !Dobro a écrit :entre parentheses , evitez d'installer PB dans C:
Avant quand j'installais Windows sur mon HDD, je bootais sur mon CD-ROM qui me proposait de formater mon disque, de le partitionner et de choisir la partition où je voulais installer mon OS, mais là, rien. Donc C: sur toute la ligne et je ne sais même pas comment je vais pouvoir faire pour partitionner mon disque, c'est dire que j'ai régressé, vu que je n'en suis plus à mon premier disque dur !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
Re: Chemin pour charger un programme
Tu peux toujours tenter de créer une petite partition (selon la place qu'il te reste) en faisant un
clique droit / gérer sur ton poste de travail (ordinateur sur OS > xp) puis en choisissant gestion des disques.
Pour ton soucis de path je n'ai pas installé la 5.30 donc tout ce qui a été dit au dessus est logique. Vu que Falsam a essayé avec la 5.30 sans problème ça doit venir de ton installation. (ou du paramétrage de l'ide)
clique droit / gérer sur ton poste de travail (ordinateur sur OS > xp) puis en choisissant gestion des disques.
Pour ton soucis de path je n'ai pas installé la 5.30 donc tout ce qui a été dit au dessus est logique. Vu que Falsam a essayé avec la 5.30 sans problème ça doit venir de ton installation. (ou du paramétrage de l'ide)
~~~~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
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳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
Re: Chemin pour charger un programme
Merci énormément Ar-s pour cette manip, ça m'a permis de créer une partition réservée à la programmation, mais ça n'a pas réglé le problème !
Par contre j'ai lu ceci sur le forum anglais:
Par contre j'ai lu ceci sur le forum anglais:
http://www.purebasic.fr/english/viewtop ... 14&t=59459Le (X) IncludeFile et IncludeBinary ont changé leur comportement pour les chemins relatifs.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !
- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Chemin pour charger un programme
ça serait quand même bien si tu pouvais poster un code simplifié avec lequel tu rencontres ce problème.
Pourrais tu télécharger le fichier ci-dessous. Il contient un code tres simple qui charge une image et l'affiche dans un environnement 2D.
http://s242132022.onlinehome.fr/Downloa ... tetest.zip
Décompresse le dossier et exécute le code sans rien changer et dire si ça fonctionne.
Pourrais tu télécharger le fichier ci-dessous. Il contient un code tres simple qui charge une image et l'affiche dans un environnement 2D.

Décompresse le dossier et exécute le code sans rien changer et dire si ça fonctionne.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Chemin pour charger un programme
Merci falsam, je ne comprend plus, car là, sa fonctionne parfaitement !
Peut-être est-ce du au fait que j'ai créer une nouvelle partition dans laquelle j'ai installé PureBasic et recopié tout mes fichiers, ce qui m'oblige à changé environ 6000 chemins, du coup, je suis très occupé et ça m'amuse !
Peut-être est-ce du au fait que j'ai créer une nouvelle partition dans laquelle j'ai installé PureBasic et recopié tout mes fichiers, ce qui m'oblige à changé environ 6000 chemins, du coup, je suis très occupé et ça m'amuse !
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Un homme doit être poli, mais il doit aussi être libre !