Problème d'initialisation de code pour lire un fichier

Codes specifiques à MacOS X
selzig
Messages : 68
Inscription : sam. 11/juil./2009 9:34

Problème d'initialisation de code pour lire un fichier

Message par selzig »

Bonjour,

sous OS X avec PureBasic 5.6.1 ce code fonctionne dans une procédure :

Code : Tout sélectionner

If ReadFile(0, FileAndPathName.s)
  TailleInit.l = Lof(0) 
EndIf
Mais ce code-là ne fonctionne pas.

Code : Tout sélectionner

FileID.l = ReadFile(#PB_Any, FileAndPathName.s) 
Debug FileID.l
If FileID.l
   TailleInit.l = Lof(FileID.l)  ;ligne générant l'erreur
EndIf
Debug >>7775240
[15:53:26] Waiting for executable to start...
[15:53:26] Executable type: MacOSX - x64 (64bit, Unicode)
[15:53:26] Executable started.
[15:55:25] [ERROR] The specified #File is not initialised.
[15:55:46] The Program was killed.

Merci de vos lumières. Cordialement. Gilles
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: Problème d'initialisation de code pour lire un fichier

Message par Zorro »

tu compiles en 64 bits ? si c'est le cas, alors c'est peut etre bien normal :)
voir Doc , la difference entre un .l (.L) et un .I (.i)
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
selzig
Messages : 68
Inscription : sam. 11/juil./2009 9:34

Re: Problème d'initialisation de code pour lire un fichier

Message par selzig »

Merci.
C'était effectivement le problème.
Cordialement. Gilles
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Problème d'initialisation de code pour lire un fichier

Message par falsam »

Quand le typage d'une variable est défini, il est inutile de le préciser dans la suite du code

Code : Tout sélectionner

FileID.l = ReadFile(#PB_Any, FileAndPathName.s) 
Debug FileID
If FileID
   TailleInit = Lof(FileID)  ;ligne générant l'erreur
EndIf
Proprement le code devrait se présenter de cette manière.

Code : Tout sélectionner

Define FileID.l, FileAndPathName.s

FileID = ReadFile(#PB_Any, FileAndPathName) 
Debug FileID
If FileID
   TailleInit = Lof(FileID)  ;ligne générant l'erreur
EndIf
Configuration : Windows 11 Famille 64-bit - PB 6.03 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
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: Problème d'initialisation de code pour lire un fichier

Message par Zorro »

Perso , je prefere garder le type d'une variable
tout le long du code

donc une variable : FileID.i
gardera son type dans tout mon code !!

car definir le type au debut d'un code de 8000 ou 20000 lignes c'est
pas vraiment le top , car lorsque tu tombes 2 ans plus tard sur la variable "FileID" tu sais plus vraiment quel type elle a

alors que si tu vois "FileID.l" c'est clair :)

c'est pour ça que je n'utilise jamais le Define .....
je prefere voir le type dans le nom de la variable .. :)

donc :

Code : Tout sélectionner

FileID.i = ReadFile(#PB_Any, FileAndPathName.s)
Debug FileID.i
If FileID.i
   TailleInit = Lof(FileID.i) 
EndIf
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Répondre