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

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Guac
Messages : 21
Inscription : dim. 03/août/2008 18:33

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

Message 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:
Dernière modification par Guac le dim. 03/août/2008 20:30, modifié 1 fois.
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message 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.
Guac
Messages : 21
Inscription : dim. 03/août/2008 18:33

Message 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)
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Message 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)
Guac
Messages : 21
Inscription : dim. 03/août/2008 18:33

Message 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...
poshu
Messages : 1138
Inscription : sam. 31/juil./2004 22:32

Message 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
Guac
Messages : 21
Inscription : dim. 03/août/2008 18:33

Message 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.
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message par comtois »

http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Guac
Messages : 21
Inscription : dim. 03/août/2008 18:33

Message 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:
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Message 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.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Répondre