[Résolu] Chemin pour charger un programme

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

[Résolu] Chemin pour charger un programme

Message par Micoute »

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.
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 !
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Chemin pour charger un programme

Message par TazNormand »

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()
Image
Image
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Chemin pour charger un programme

Message par Backup »

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 :)
G-Rom
Messages : 3641
Inscription : dim. 10/janv./2010 5:29

Re: Chemin pour charger un programme

Message par G-Rom »

Reglage du compilateur PB ? Option du compilateur -> compiler exécuter
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Chemin pour charger un programme

Message par falsam »

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.
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%
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Chemin pour charger un programme

Message par Micoute »

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 !
Avatar de l’utilisateur
TazNormand
Messages : 1297
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Chemin pour charger un programme

Message par TazNormand »

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)
Image
Image
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Chemin pour charger un programme

Message par falsam »

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
Micoute a écrit :sprite, image, son, programme, etc...
Tu fais bien référence à un code 2d ?
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%
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Chemin pour charger un programme

Message par Micoute »

Pour que tout le monde comprenne, je reprend le code de falsam.

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)
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.
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 !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Chemin pour charger un programme

Message par Backup »

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 :mrgreen:

E:\EPB\ .....


avantage de la partition , si votre systeme plante ... un reformatage n'effacera pas vos Purebasic, ni votre boulot
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Chemin pour charger un programme

Message par Micoute »

Dobro a écrit :entre parentheses , evitez d'installer PB dans C:
Hélas, je n'ai pas le choix, parce je ne suis pas parvenu à partitionner mon disque dur !

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 !
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Chemin pour charger un programme

Message par Ar-S »

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)
~~~~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
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Chemin pour charger un programme

Message par Micoute »

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:
Le (X) IncludeFile et IncludeBinary ont changé leur comportement pour les chemins relatifs.
http://www.purebasic.fr/english/viewtop ... 14&t=59459
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 !
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Chemin pour charger un programme

Message par falsam »

ç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.
:arrow: http://s242132022.onlinehome.fr/Downloa ... tetest.zip

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%
Avatar de l’utilisateur
Micoute
Messages : 2584
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Chemin pour charger un programme

Message par Micoute »

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 !
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 !
Répondre