Gambas France BETA


Pas de compte ? Incription

[Résolu] Créer et écrire dans un fichier.

Ce sujet est résolu.

1
AuteurMessages
Foromus#1 Posté le 8/1/2010 à 12:17:00
Bonjour,

Après maintes recherches, j'ai bien trouvé comment lire un fichier (texte). En revanche, je n'ai pas trouvé comment écrire dedans, encore moins comment le créer.
A première vue, il faut d'abord un "open", mais ensuite ?
J'ai vu, dans le tuto sur Open, qu'il fallait d'abord créer le fichier avant toute chose, ce qui se conçoit. Cela dit, il me paraît guère logique de devoir écrire une routine (avec "create" ou quelque chose du genre), qui va créer le fichier, et qui en fait ne servirait qu'une fois. A l'instar d'autres langages, il est tout à fait logique de prendre les dispositions qui permettent d'écrire dans un fichier, quitte à le créer s'il n'existe pas.
Est-ce raisonnable de demander aux intervenants qui m'ont déjà beaucoup aidé, le code (relativement complet), pour créer un fichier "Monfichier.txt" et qui contiendra respectivement les lettres "a", "b", "c"...

Merci de votre aide et de votre indulgence !
jlouis#2 Posté le 8/1/2010 à 12:28:00
Bonjour Foromus,

ceci devrait t'aider... tuto
Foromus#3 Posté le 8/1/2010 à 13:03:00
Bonjour,

Comme dit dans mon post "j'ai trouvé comment lire un fichier.txt". C'est exactement ce tuto que j'ai lu, il est d'ailleurs ouvert su ma machine, prêt à servir !

Merci.
jeanyvon#4 Posté le 8/1/2010 à 13:28:00
Gambas? Ma! Et gustohello!
c'est pour lire!
DIM monfichier AS File, montext AS String
monfichier = OPEN "/home/Fichier_gambas/ecriredansunfichier/fichier" FOR READ WRITE

WHILE NOT Eof(monfichier)
LINE INPUT #monfichier, montext
TextEdit1.Text = montext
WEND
CLOSE #monfichier

Pour écrire c'est presque pareil..... :lol!:
voir : aide sur OPEN
A+
JY
Vieillir? On peut retarder mais pas y échapper!
Foromus#5 Posté le 8/1/2010 à 13:48:00
Bonjour,

Effectivement, l'aide sur Open, je l'ai déjà lue ! Je dirais même que j'ai commencé par là puisque toute intervention lecture / écriture sur un fichier commence par l'ouvrir....
C'est d'ailleurs dans cette aide que j'ai appris que les entrés / sorties peuvent être - ou non - "buffurisées"...
C'est assurément très intéressant, je n'en doute pas un seul instant, mais en l'occurrence, mon problème présent, c'est de trouver un code qui va me créer un fichier.txt contenant "a" et "b", et un autre code qui va ouvrir ce fichier et me permettre d'y retrouver et de lire "a" et "b". Bref, un truc qui me permette de stocker des données et de pouvoir les retrouver le lendemain, quand je vais rallumer mon ordinateur...
Bien entendu, pour le secundo, j'ai déjà la réponse, il me manque que le primo...

Merci de votre attention.
jeanyvon#6 Posté le 8/1/2010 à 14:06:00
Gambas? Ma! Et gustoHo! excuse moi, j'aurais dû tout écrire même avec le nom de tes variables que je ne connais pas :suspect:
Peut être aussi que je devrais lire à ta place l'aide de gambas c'est une des rares pages qui soit claire et bien faite! :evil:
Mais comme on dit vaut mieux donner que prendre. Tiens, si tu sais faire un copier-coller tu dois pouvoir y arriver......
fichier1 = OPEN "//home/fichier_gambas/monfichier.txt" FOR CREATE
WRITE #fichier1, mavariablestring
CLOSE #fichier1
Vieillir? On peut retarder mais pas y échapper!
spheris#7 Posté le 8/1/2010 à 15:11:00
foromus,
En fait ce qu'il faut savoir c'est que :

fichier1 = OPEN "//home/fichier_gambas/monfichier.txt" FOR CREATE

Create, c'est pour le creer, et s'il existe on ecrase l'ancien

Read, c'est pour le lire

Append, c'est pour ecrire a la fin.

donc voici le code complet :

PUBLIC SUB creerfichier()
DIM monfichier AS File
DIM maligne AS String
monfichier = OPEN "/home/toto.txt" FOR CREATE
PRINT #monfichier, "a"
PRINT #monfichier, "b"
CLOSE #monfichier
END

PUBLIC SUB ecrire_a_la_fin()
DIM monfichier AS File
DIM maligne AS String
monfichier = OPEN "/home/toto.txt" FOR APPEND
PRINT #monfichier, "a"
PRINT #monfichier, "b"
CLOSE #monfichier
END

PUBLIC SUB lirefichier()
DIM monfichier AS File
DIM maligne AS String
monfichier = OPEN "/home/toto.txt" FOR READ
WHILE NOT Eof(monfichier)
LINE INPUT #monfichier, maligne
PRINT maligne
WEND
CLOSE #monfichier
END
Foromus#8 Posté le 8/1/2010 à 15:37:00
Merci pour ces renseignements, je devrais pouvoir faire quelque chose avec ça.
Au passage, je comprends les accès d'agacements face à des gens qui comprennent difficilement. Cela dit, n'ayant jamais été confronté au problème - je n'ai, hélas, rien à apprendre aux autres, je n'ai évidemment pas l'expérience ni le ressenti.
Sans vouloir excuser ma médiocrité, je dirais quand même que si Open, Read, Append sont de vieilles connaissances, Create (en tant que commande fichier) est totalement nouveau. Il faudra donc que je fasse avec.
Pour le Copier / Coller, je vais me documenter.
Je vous remercie très sincèrement, et prends bonne note du désagrément causé et j'en suis réellement affligé.
jeanyvon#9 Posté le 8/1/2010 à 15:50:00
Gambas? Ma! Et gustoC'est le ton qui agace!! :lol!:
Ce n'est pas les manques de connaissance: nous y sommes tous confrontés :drunken:
Vieillir? On peut retarder mais pas y échapper!
spheris#10 Posté le 8/1/2010 à 17:25:00
Foromus,
Rassure toi, nous sommes tous logés à la même enseigne.
Pas de souci à se faire sur l'apprentissage du langage, nous sommes soutenus par des pros, je te le dis en connaissance de cause !
;) ;) ;)

remarque : il me semble sans vouloir dire de bêtise que tu n'as pas a créer le fichier.
si tu le défini en APPEND et qu'il n'existe pas, il sera créé automatiquement.
manu#11 Posté le 8/1/2010 à 18:22:00
Avec Gambas ca roule !Foromus :

Je dirais comme Spheris, pas de soucis sur ton apprentissage, on est tous passer par là... Donc no problème :roll:

Je te conseil un tuto que j'ai fais après quelques semaines (ou quelques mois peut être ... :cyclops: ) de découverte de Gambas. Pour toi il a deux interets, il te prouve que l'on peut faire un trucs avec gambas qui ressemble à quelque chose assez rapidement et il y a du code pour memoriser des calculs dans un fichier texte (creation, lecture suppression...).

Le tutos à peu d'interets, tout est dans les sources.... Il s'agit d'un projet de calculette.

le liens est ICI

Bonne continuation
Jeanne d'arc, elle a frit, elle a tout compris ! ;)

Config :
Manjaro linux (excellent !)
XFCE 4.1 (simple et efficace)
Gambas 3 dans les dépots (confort total)
1