Echec de Debug (pb6.40)

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
promadoc
Messages : 11
Inscription : dim. 14/juin/2026 20:22
Localisation : Alger
Contact :

Echec de Debug (pb6.40)

Message par promadoc »

Bonjour à tous,

Regardez ce code:

Code : Tout sélectionner


;SOUS PB 6.40
winpath$="c:\windows\"
filename$="filesys.txt"
fullpath$=winpath$ + filename$

debug fullpath$

;Résultat affiché : "c:\windows\"

filename$ n'est pas affiché

SOUS PB 6.10
j'ai utilisé le même programme sous pb 6.10, ça a marché
Merci
Avatar de l’utilisateur
Mindphazer
Messages : 766
Inscription : mer. 24/août/2005 10:42

Re: Echec de Debug (pb6.40)

Message par Mindphazer »

Aucun problème ici, bien évidemment.
Bureau : Win11 64bits
Maison : Macbook Pro M4 16" SSD 512 Go / Ram 24 Go - iPad Air 128 Go (pour madame) - iPhone 17 Pro Max 256 Go
promadoc
Messages : 11
Inscription : dim. 14/juin/2026 20:22
Localisation : Alger
Contact :

Re: Echec de Debug (pb6.40)

Message par promadoc »

Le problème existe toujours, sinon je n'aurais jamais le remplacer par la version 6.10. Je suis persuadé que vous n'avez pas utilisé le bon exemple.
Avatar de l’utilisateur
Bruce33
Messages : 31
Inscription : dim. 10/sept./2023 14:02

Re: Echec de Debug (pb6.40)

Message par Bruce33 »

Chez moi aussi le code fonctionne comme prévu :

Image

Êtes-vous sûr d'avoir orthographié correctement filename$ à chaque fois ?
Utilisez EnableExplicit et déclarez les variables avec Define pour voir...
promadoc
Messages : 11
Inscription : dim. 14/juin/2026 20:22
Localisation : Alger
Contact :

Re: Echec de Debug (pb6.40)

Message par promadoc »

S'agit il de la version x86 32bits windows? C'est celle là qui déconne à mon niveau (je vais revoir les variables)
Avatar de l’utilisateur
MLD
Messages : 1134
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Echec de Debug (pb6.40)

Message par MLD »

Saluts a tous
chez moi cela fonctionne parfaitement. Windows 10 PB 6.40 X86
Avatar de l’utilisateur
Mindphazer
Messages : 766
Inscription : mer. 24/août/2005 10:42

Re: Echec de Debug (pb6.40)

Message par Mindphazer »

promadoc a écrit : lun. 15/juin/2026 22:15 S'agit il de la version x86 32bits windows? C'est celle là qui déconne à mon niveau (je vais revoir les variables)
Tu n'as pas précisé dans ton message d'origine qu'il s'agissait de la version 32bits...
Cela dit, ça fonctionne très bien ici
Win 11
PB 6.40 32bits
Bureau : Win11 64bits
Maison : Macbook Pro M4 16" SSD 512 Go / Ram 24 Go - iPad Air 128 Go (pour madame) - iPhone 17 Pro Max 256 Go
Avatar de l’utilisateur
Mindphazer
Messages : 766
Inscription : mer. 24/août/2005 10:42

Re: Echec de Debug (pb6.40)

Message par Mindphazer »

promadoc a écrit : lun. 15/juin/2026 17:52 Le problème existe toujours, sinon je n'aurais jamais le remplacer par la version 6.10. Je suis persuadé que vous n'avez pas utilisé le bon exemple.
Si si
Ton exemple.
Copié-collé

En mettant en commentaire les 4 dernières lignes, bien évidemment.
Bureau : Win11 64bits
Maison : Macbook Pro M4 16" SSD 512 Go / Ram 24 Go - iPad Air 128 Go (pour madame) - iPhone 17 Pro Max 256 Go
promadoc
Messages : 11
Inscription : dim. 14/juin/2026 20:22
Localisation : Alger
Contact :

Re: Echec de Debug (pb6.40)

Message par promadoc »

Alors où se trouve l'explication? Y a t il plusieurs versions différentes Pb 6.40 (1) et Pb 6.40 (b)? C'est la seule explication valable puisque ça marche chez quelqu'un et ça ne marche pas chez d'autres?? N'est ce pas un mystère? Je viens de tester avec la version Pb 6.30 résultat : ça fonctionne normalement, j'ai refait le test avec Pb 6.40 et hop! le même faux résultat se reproduit..
Avatar de l’utilisateur
Mindphazer
Messages : 766
Inscription : mer. 24/août/2005 10:42

Re: Echec de Debug (pb6.40)

Message par Mindphazer »

promadoc a écrit : mer. 17/juin/2026 12:56 ça marche chez quelqu'un et ça ne marche pas chez d'autres??
D'autres ? A part toi, personne n'a dit que ça ne marchait pas
Bureau : Win11 64bits
Maison : Macbook Pro M4 16" SSD 512 Go / Ram 24 Go - iPad Air 128 Go (pour madame) - iPhone 17 Pro Max 256 Go
promadoc
Messages : 11
Inscription : dim. 14/juin/2026 20:22
Localisation : Alger
Contact :

Re: Echec de Debug (pb6.40)

Message par promadoc »

Incroyable mais vrai ! Je viens de désinstaller pb 6.30 je retélécharge Pb 6.40 x86. J'ai retesté en utilisant le même exemple cité et ça marche. Je ne comprends pas ce qui s'est passé (pas convaincu) mais la question reste posée: peut être que j'ai fait une erreur d'orthographe? Bref, l'essentiel ça fonctionne et je suis content que ça marche. Merci à vous tous de votre assistance et bonne continuation.
promadoc
Messages : 11
Inscription : dim. 14/juin/2026 20:22
Localisation : Alger
Contact :

Re: Echec de Debug (pb6.40)

Message par promadoc »

Finalement, j'avais raison, voici la preuve que debug ne fonctionne pas quand on utilise GetSystemFolder() (Chemin de window), j'ai oublié de le signaler c'est pour cette raison que vos tests fonctionnait bien, voici le code complet.

Code : Tout sélectionner

;------------------------------------------------------------------------------------------------------
Procedure.s GetSystemFolder (folder)
 *itemid.ITEMIDLIST = #Null
 If SHGetSpecialFolderLocation_ (0, folder, @*itemid) = #NOERROR
    location$ = Space (#MAX_PATH)
    If SHGetPathFromIDList_ (*itemid, @location$)
       ProcedureReturn location$
    EndIf
EndIf
EndProcedure

;------------------------------------------------------------------------------------------------------
Procedure Testdemo()
  filename$="filesys.txt"
  
  ;Récupérer le chemin de windows
  winpath$=GetSystemFolder (#CSIDL_WINDOWS)
  
  ;Chemin du fichier filesys.txt
  fullpath$=winpath$ + "\" + filename$
  
  ;affichage du chemin avec debug 
  Debug "fullpath$="+fullpath$
  
  ;affichage du chemin avec MessageRequester 
  MessageRequester("FullPath$=",fullpath$)
  
  ;Par contre si on n'utilise pas getsystemfolder(), le résultat est tout autre
  winpath$="c:\windows"
  
  fullpath$=winpath$ + "\" + filename$
  
  ;affichage du chemin avec debug 
  Debug "fullpath$="+fullpath$
  
  ;avec MessageRequester...
  MessageRequester("FullPath$=",fullpath$)
EndProcedure

Testdemo()
 
Je vous invite à tester ce code tel qu'il est, merci
promadoc
Messages : 11
Inscription : dim. 14/juin/2026 20:22
Localisation : Alger
Contact :

Re: Echec de Debug (pb6.40)

Message par promadoc »

Pour continuer à utiliser Pb 6.40, j'ai du modifier le code:

Code : Tout sélectionner

;Récupérer le chemin de windows
  winpath$=GetSystemFolder (#CSIDL_WINDOWS)

;Récupérer le lecteur disque de windows
  windrive$=UCase(Left(winpath$,2))
 
;Afficher le chemin complet du fichier 
  fullpath$=windrive$ + "\windows\" +  filesys$
  Debug "fullpath$="+fullpath$
Avatar de l’utilisateur
TazNormand
Messages : 1302
Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)

Re: Echec de Debug (pb6.40)

Message par TazNormand »

Salut

petite correction :

Code : Tout sélectionner

;------------------------------------------------------------------------------------------------------
Procedure.s GetSystemFolder (folder)
 *itemid.ITEMIDLIST = #Null
 If SHGetSpecialFolderLocation_ (0, folder, @*itemid) = #NOERROR
    location$ = Space (#MAX_PATH)
    If SHGetPathFromIDList_ (*itemid, @location$)
       ProcedureReturn RTrim(location$)
    EndIf
EndIf
EndProcedure

;------------------------------------------------------------------------------------------------------
Procedure Testdemo()
  filename$="filesys.txt"
  
  ;Récupérer le chemin de windows
  winpath$=GetSystemFolder (#CSIDL_WINDOWS)
  
  ;Chemin du fichier filesys.txt
  fullpath$=winpath$ + "\" + filename$
  
  ;affichage du chemin avec debug 
  Debug "fullpath$="+fullpath$
  
  ;affichage du chemin avec MessageRequester 
  MessageRequester("FullPath$=",fullpath$)
  
  ;Par contre si on n'utilise pas getsystemfolder(), le résultat est tout autre
  winpath$="c:\windows"
  
  fullpath$=winpath$ + "\" + filename$
  
  ;affichage du chemin avec debug 
  Debug "fullpath$="+fullpath$
  
  ;avec MessageRequester...
  MessageRequester("FullPath$=",fullpath$)
EndProcedure

Testdemo()
 
Les chemins Windows sont limités à 260 caractères, et comme la valeur de retour est remplie d'espaces non significatifs à la fin, tu atteins donc les 260 caractères. J'ai juste ajouté le RTrim() sur la valeur de retour de ta procédure GetSystemFolder.

ça n'explique pas pourquoi le Debug n'affiche pas quand même le chemin complet avec le "filesys.txt"
Image
Image
Avatar de l’utilisateur
Jacobus
Messages : 1638
Inscription : mar. 06/avr./2004 10:35
Contact :

Re: Echec de Debug (pb6.40)

Message par Jacobus »

Essayez comme ceci. (Depuis PB 6.40)
(ce n'est pas le debug qui dysfonctionne)

Code : Tout sélectionner

Procedure.s GetSystemFolder(folder)
  *itemid.ITEMIDLIST = #Null
  If SHGetSpecialFolderLocation_ (0, folder, @*itemid) = #NOERROR
    location$ = Space(#MAX_PATH) 
    If SHGetPathFromIDList_ (*itemid, @location$)
      ProcedureReturn PeekS(@location$) ; lecture de la chaîne en mémoire ou ; RTrim(PeekS(@location$)) aussi
    EndIf
  EndIf
EndProcedure

winpath$ = GetSystemFolder (#CSIDL_WINDOWS)
If Right(winpath$, 1) <> "\"
  winpath$ + "\"
EndIf
filename$ = "filesys.txt"
Debug winpath$ + filename$
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Répondre