Page 1 sur 1

[Résolu] question de grooos débutant concernant les fichiers

Publié : dim. 03/août/2008 18:46
par Guac
Bonjour à tous, je débute sur PureBasic, et pour l'instant ça me plaît bien.
Par contre j'ai un peu de mal avec les manipulations de fichiers.
Ca peut paraître con, mais je suis incapable de trouver le chemin des fichiers créés avec createfile() ou openfile().

Ces fichiers sont bien créés, je peux y accéder et manipuler leur contenu, les effacer ...

Mais j'ai quand même bien envie de savoir où ils se cachent les petits malins, sachant que j'ai effectué une recherche sur C:\ approfondie et dans tous les modes possibles, sans aucun résultat.

De plus, lorsque je cherche à leur donner un chemin précis à la création, genre createfile(1,"C:\....mon chemin") ça veut pas compiler...

Alors kezako ?
S'il vous plaît :roll:

Publié : dim. 03/août/2008 19:15
par poshu
*ooooh, le gros débutant! montrons-le du doigt! montrons-le du doigt!*

Bon, plus sérieusement, y'a pas de mal à être débutant, je code en pure depuis des années et j'en suis toujours à ce stade.

Par contre, sur ce coup, je ne comprends pas ta question: tu ne peux pas utiliser la fonction openfile() ou createfile() sans donner les arguments qui contiennent le chemin vers ton fichier...

Le plus simple serait de poster un bout de code pour qu'on te règle ça.

Publié : dim. 03/août/2008 19:31
par Guac
Merci pour ta réponse rapide.

Alors...
Quand je fais ça :
  • CreateFile(0,"texte.txt")
    WriteStringN(0,"je suis un petit fichier bien caché ^^")
    ReadFile(0,"texte.txt")
    Debug ReadString(0)
    CloseFile(0)
C'est bon, ça compile, je lis... enfin ça fonctionne quoi.
Mais je sais pas du tout où ce fichier est créé, j'ai cherché partout, je l'ai pas trouvé.


Maintenant si je fais ça :

  • CreateFile(0,"C:\texte.txt")
    WriteStringN(0,"je suis un petit fichier bien caché ^^")
    ReadFile(0,"C:\texte.txt")
    Debug ReadString(0)
    CloseFile(0)
Ben... ça compile pas... "file object not iniatialized".
Remarque là au moins je sais pourquoi je le trouve pas mon fichier dans ce cas là. 8)

Publié : dim. 03/août/2008 19:44
par case
tu n'as pas referme le fichier avant de le lire

Code : Tout sélectionner

CreateFile(0,"C:\texte.txt")
WriteStringN(0,"je suis un petit fichier bien caché ^^")
;---------- 
closefile(0)
;----------
ReadFile(0,"C:\texte.txt")
Debug ReadString(0)
CloseFile(0)

Publié : dim. 03/août/2008 19:56
par Guac
Merci Case.
Mais ça compile toujours pas.

ERROR line 2
ERROR file object not initialized

Y'aurait pas une manière particulière de spécifier les paths des fois ?
Parce que j'ai beau tout essayé, je comprends pas pourquoi le 1er code fonctionne et pas le 2e, si ce n'est que le chemin doit pas être reconnu...

Et j'ai rien trouvé sur les chemins dans l'aide.
Je râle pas hein... je me doute que ça vient de moi...

Publié : dim. 03/août/2008 20:08
par poshu
Bon, dans le premier cas, quand tu met juste un nom de fichier, le fichier se crée dans le répertoire depuis lequel le logiciel a été exécuté....

Pour le deuxième, chez moi il marche très bien. Chez toi, l'erreur provient du fait qu'il n'a pas créé le fichier en ligne 1: mettre un if permettrait d'être averti.

Pour identifier les causes du problème: y a-t-il déjà un fichier texte.txt à la racine de ton C:? Serait il en lecture seule? As tu les droits d'écriture en C:? Autre solution?

Code : Tout sélectionner

If CreateFile(0,"C:\texte.txt")
  WriteStringN(0,"je suis un petit fichier bien caché ^^")
  CloseFile(0)
  ReadFile(0,"C:\texte.txt")
  Debug ReadString(0)
  CloseFile(0)
Else
  Debug "Impossible de créer le fichier"
EndIf

Publié : dim. 03/août/2008 20:28
par Guac
OK !
C'est bon !

Merci Poshu !

Quand tu m'as parlé de droits, j'me suis dis que j'étais vraiment un a****i de n'y avoir pas pensé...

J'ai lancé PureBasic en administrateur et c'est passé.

Par contre, comment ça se fait que le 1er code où je n'ai pas spécifié de chemin fonctionnait, je suppose que PureBasic crée les fichiers en mémoire et pas sur le disque si on ne lui précise pas de chemin, ça expliquerait pourquoi j'ai jamais pu trouver ce fichier alors même que je pouvais lire son contenu.

J'ai bon M'sieur ?

Sinon, ya pas un moyen d'extraire le path d'un fichier ?
J'ai rien trouvé à ce sujet.

Merci encore.

Publié : dim. 03/août/2008 20:49
par comtois

Publié : dim. 03/août/2008 20:58
par Guac
Rooooooo...

Et dire que je l'ai lu dans tous les sens cette liste Filesystem, et j'ai pas pris la peine lire le texte en tête en entier.
( Remarque c'est vicieux quand même, on voit une belle liste et on se concentre dessus ).

Méa culpa... :oops:

Publié : dim. 03/août/2008 21:06
par comtois
sur le site que je t'ai indiqué ,c'est vraiment la toute dernière version de la doc, c'est pas forcément celle que tu as avec le logiciel. Tu trouveras peut-être cette fonction dans la bibliothèque misc chez toi ?

mais t'inquiète, la toute dernière version de la doc sera dispo avec la 4.30 qui arrive à grand pas.