Page 1 sur 3
Numéro de canal libre pour ouverture d'un fichier [Résolu]
Publié : mar. 27/mars/2007 10:21
par Kwai chang caine
Bonjour à tous
J'ai vu cette instruction quelque part dans un code et pas moyen de la retrouver
Comment fait on pour obtenir un n° de canal libre pour l'ouverture d'un fichier.
Exemple :
Code : Tout sélectionner
CanalLibre = ?????
OpenFile(CanalLibre, Fichier$)
ReadFile(CanalLibre, Fichier$)
.
.
.
Closefile(CanalLibre)
Merci et bonne journée
Publié : mar. 27/mars/2007 10:33
par Flype
1/ Méthode recommandée :
puis, par exemple, ReadString(CanalLibre)
2/ Sinon, j'ai jamais fait mais ca doit fonctionner :
Code : Tout sélectionner
Canal = 0
While IsFile(Canal)
Canal + 1
Wend
CanalLibre = Canal
Publié : mar. 27/mars/2007 10:52
par Kwai chang caine
Bonjour flype,
Je te remercie beaucoup .
Comme tous les bons "Garde code", toujours à l'écoute et à la surveillance des petits navires en perdition sur l'océan purien.....
Bonne journée
Publié : mar. 27/mars/2007 11:00
par Kwai chang caine
Je viens d'essayer et ça me retourne un grand nombre = 8199832
Ce que je voulais c'est le nombre que normalement on ecrit à la place du #PB_Any.
Car si j'essaye :
Il est pas content Mr Pure

Publié : mar. 27/mars/2007 11:11
par Backup
c'est normal, puisqu'en faisant #PB_Any
tu delegue a PureBasic la gestion du numero , donc t'a pas a t'en occuper !
tu a deux mode , soit tu utilise tes propre numero
Code : Tout sélectionner
OpenFile(0, "Test.txt")
WriteStringN(0, " This is a PureBasic file test")
WriteString(0, "Now it's on ")
WriteString(0, "the same line.")
CloseFile(0)
soit tu fais confiance a PureBasic avec #PB_Any
Code : Tout sélectionner
num=OpenFile(#PB_Any, "Test.txt")
WriteStringN(num, " This is a PureBasic file test")
WriteString(num, "Now it's on ")
WriteString(num, "the same line.")
CloseFile(num)
voila tous simple !
ton
ne peux pas marcher car entre de Run le #PB_Any
change !! il est remis a jour en temps reel !
Publié : mar. 27/mars/2007 11:38
par Kwai chang caine
Bonjour DOBRO
Content de te reparler
Ayai, je viens a peu pres de comprendre............
En fait, j'ai toujours mis mes propres numéros, depuis le debut.
Mais comme j'ouvre un fichier dans une procedure que je risque de réutiliser dans un autre code, je voulais etre sur de ne pas utiliser un canal deja utilisé.
C'est dur a comprendre comment un chiffre par exemple "0" peut remplacer un "8199832"
Il est drolement intelligent le pure
J'avais cru voir une fonction qui donnais directement le n° de canal, mais j'y pense c'est peut etre pour VB
Car je suis obligé d'en faire aussi un peu.
Encore grand merci au 2 grands garde-cote
Bonne journée
Publié : mar. 27/mars/2007 12:20
par Flype
ca n'a rien de compliqué ou de si intelligent. c'est très simple.
c'est juste toi qui te prend la tete comme d'hab.
[EDIT]
c'est pas méchant - tu me fais juste rire.
Publié : mar. 27/mars/2007 14:06
par Backup
Flype a écrit :ca n'a rien de compliqué ou de si intelligent. c'est très simple.
c'est juste toi qui te prend la tete comme d'hab.
[EDIT]
c'est pas méchant - tu me fais juste rire.
oouaip il est pas pres de sortir du temple le Kwai chang

Publié : mar. 27/mars/2007 14:06
par Kwai chang caine
Ouuuaih, on se refait pas, et surtout a mon age
Je crois que je trainerais ça toute ma vie......
Si un jour je me reincarne apres cette triste vie, je serais informaticien comme toi, avec noir de formule dans ma tete.
Et je parlerais tous les languages machine, et peut etre que ce jour la, je prendrais un petit navire sous mon aile, pour lui dire que c'est pas compliqué l'informatique.
Tu sais on a pas du tout la meme vue du haut d'un paquebot ou tu es que du bas d'une barque lorsque je regarde en me faisant peter 3 vertebres le pont du paquebot.
Vous aurez beau etre modeste,mon admiration pour vous n'en ai que plus grande.
Des fois j'ai beau ramer, ramer, ramer mais j'en ai marre d'etre une barque
Je veux etre un paquebot
Je veux etre un paquebot
Je veux etre un paquebot
Je veux etre un paquebot
Je veux etre un paquebot
Je veux etre un paquebot
Je veux etre un paquebot
Je veux etre un paquebot
...................................
Bonne croisiere....a vous deux
Publié : mar. 27/mars/2007 14:09
par brossden
Le code de Flype fonctionne trés bien j'ai ci dessous simplement mis son code dans un bout de soft pour le démontrer.
Tu peux mettre le ";" devant n'importe quelle ligne commençant par Openfile(....)
Code : Tout sélectionner
Procedure CanalLibre()
Canal = 0
While IsFile(Canal)
Canal + 1
Wend
ProcedureReturn Canal
EndProcedure
OpenFile(0,"c:\toto$$0.$$$")
OpenFile(1,"c:\toto$$1.$$$")
OpenFile(2,"c:\toto$$2.$$$")
OpenFile(3,"c:\toto$$3.$$$")
;OpenFile(4,"c:\toto$$4.$$$") << Ce Fichier n'est pas ouvert en canal 4 !
OpenFile(5,"c:\toto$$5.$$$")
OpenFile(6,"c:\toto$$6.$$$")
Canal = CanalLibre()
MessageRequester("Numéro du premier Canal Libre", "Vous pouvez ouvrir le Canal : "+Str(Canal)+". Il est disponible")
For n=0 To 6
If n=Canal
n+1
EndIf
CloseFile(n)
File.s="c:\toto$$"+Str(n)+".$$$"
DeleteFile(File)
Next
Publié : mar. 27/mars/2007 14:53
par Kwai chang caine
Bonjour BROSSDEN
Effectivement ça marche nickel, comme ça on peut connaitre directement le n° du canal de libre.
Je confirme, pour tout à l'heure, ya une fonction en VB toute prete.
Et c'est la que je l'ai vu, et je me melange les pinceaux
Code : Tout sélectionner
Public Sub AjoutDonnee(strContent As String, strChemFich As String)
Dim F As Integer
F = FreeFile '1er numéro libre
Open strChemFich For Append As #F 'ouvert en ajout
Print #F, strContent ' écrit dans le fichier dont le numéro est F
Close #F
End Sub
Pour une fois que VB fait quelque chose de plus simple
Une fois n'est pas coutume, il est bon de le souligner et de rendre a césar .....
Je te remercie beaucoup denis
Avec toutes ces aides la traversée de la manche a la rame parait moins longue
Bonne journée a tous
Publié : mar. 27/mars/2007 15:38
par Flype
Kwai chang caine a écrit :Je te remercie beaucoup denis
ah bon où çà

Publié : mar. 27/mars/2007 16:21
par Kwai chang caine
J'ai peut etre encore fait une bourde
Mais je croyais de mémoire que le prénom de BROSSDEN etait denis.
Si je me suis trompé, je lui fait toutes mes excuses.

Publié : mar. 27/mars/2007 17:39
par Flype
ah peut être - autant pour moi

c'est juste que pour moi denis c'est denis...
Publié : mar. 27/mars/2007 23:24
par Frenchy Pilou
Je veux etre un paquebot
C'est pas si bien que cela un paquebot, cela pollue à mort!
Un simple voilier c'est bien mieux
