Bonjour,
je pense que le titre est assez claire, je voudrais grâce à du code, créer un fichier de type Random, pour après pouvoir écrir dessus et le lire.
Merci d'avance.:D
Version imprimable
Bonjour,
je pense que le titre est assez claire, je voudrais grâce à du code, créer un fichier de type Random, pour après pouvoir écrir dessus et le lire.
Merci d'avance.:D
et tu bloque ou ?
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Sub test() Dim MyRecord As record ' Déclare la variable. Open "FICHTEST" For Random As #1 Len = Len(MyRecord) 'boucle exemple d'écriture MyRecord.i = 123 Put #1, , MyRecord MyRecord.i = 0 ' Raz valeur Get #1, 1, MyRecord Close #1 Debug.Print MyRecord.i End Sub
essaye ceci
Code:
1
2
3
4 'path = chemin du fichier 'numfile = numero du fichier, tu peux l'avoir automatiquement avec : freefile open path for random as #Numfile
Lorsque l'on met :
ça ouvre le fichier mais ça ne le crée pas.Code:
1
2 open "fichier.txt" for random as #1
Merci.:D
Ah ?Citation:
ça ouvre le fichier mais ça ne le crée pas.
Tu as essayé ?
Alors essaye ! (mais n'oublie pas de le fermer....)
Tu veux peut-être dire qu'il reste vide (ce qui est autre chose)...
J'ai essayé, ça ne l'a pas créé mais c'est peut-être un bug, pour le remplir c'es avec put #inFileNumber, 1,3
etc....
Merci à vous.:D
Salut
On peut voir ton code ?
Je vais réessayer de le faire marcher demain et je vous tien au courant je ne peut pas vous donner le code.
Merci.
C'est top secret? La défence nationnale? ;)
Enfait je pouvait pas j'étais pas devant mon ordi, désolé. Enfait quand je l'ai refais ça à marché mais j'ai un otre problème lié :
je veut savoir si un fichier existe et dans ce cas créer le fichier sinon de créer le dossier :
Le problème c'est que la première ligne renvoie toujours un résultat négatif.Code:
1
2
3
4
5
6
7
8
9 If Dir(AppPath & "Résultats") = "Résultats" Then Open Résultats \ frmPeche.Caption For Random As #intFileNum Put #2, 1, frmMsFlexGrid1.Flex1.TextMatrix(1, 1) Put #2, 2, frmMsFlexGrid1.Flex1.TextMatrix(1, 2) Close #intFileNum Else MkDir ("Résultats") End If
Merci.:D
c'est quoi ce charabia ? 8OCitation:
If Dir(AppPath & "Résultats") = "Résultats" Then
Open Résultats \ frmPeche.Caption For Random As #intFileNum
A propos de charabia, celui que j'ai du mal à comprendre, moi, c'est celui-ci :
J'ai vraiment du mal, là......:mouarf:Citation:
je veut savoir si un fichier existe et dans ce cas créer le fichier
Je pense que notre ami a voulu dire :
Je pense que comme çà, il n'y aura au moins pas d'erreur de syntaxe. Et après un IF, on INDENTE !Code:
1
2 If Dir(AppPath & "\Résultats") = "Résultats" Then Open "Résultats\" & frmPeche.Caption For Random As #intFileNum
En tous cas, c'est pas comme cela qu'il ouvrira le bon fichier (Resultats). Que vient faire le titre de la feuille là-dedans ?? C'est le nom du fichier à ouvrir ?
Si Résultat est un répertoire, la fonction Dir ne renverra pas "Resultats", mais le nom du premier fichier (en fait, "." qui est le répertoire courant, si on précise vbDirectory) ou rien si le répertoire est vide (mais pourtant existant).
Si c'est un fichier, cela plantera car le chemin du fichier sera incorrect.
Bref, ça n'a aucune chance de marcher.
En supposant que résultat est un répertoire, et que le titre de la feuille est le nom du fichier, le bon code serait:
La fonction Dir ramènera "." si le répertoire existe, même s'il n'y a aucun fichier dedans. Si le répertoire n'exsite pas, la fonction ramènera une chaine vide.Code:
1
2
3
4
5
6
7 If Dir(AppPath & "\Résultats\*.*", vbDirectory) <> "" Then intFileNum = FreeFile() Open App.path & "\Résultats\" & frmPeche.Caption For Random As #intFileNum Put #intFileNum, ..... ................... Close #intFileNum End If
J'avais bien compris, je souhaitais juste sensibiliser notre ami au fait que nous ne sommes pas là pour jouer au devinettes, avec des erreurs aussi grossières ;)
Comme tu as tout décortiqué (et que, bien sûr, tu as raison), j'en profite pour rajouter que ce doit être App.Path et non AppPath dans le Dir (sauf à avoir défini une chaine pour le path de l'application, ce qui est totalement inutile, et si c'est le cas, on ne sais pas si elle se termine par un \ ou pas)
Damned ! J'ai pourtant relu 3 fois !!Citation:
Envoyé par ThierryAIM
Voilà ce que c'est de ne pas tester TOUT ce qu'on écrit.
;)Citation:
Envoyé par MGD_Software
Désolé si je n'ai pas été explicite, merci à MGD_Software qui m'a aidé et merci à ThierryAIM pour les remarques, que je vais noter pour corriger mes defaux.
Merci à tous.
Bonjour, j'ai un autre problème lié à ce sujet, je ne trouve pas la solution.
ET le message d'erreur est sur la 10ème ligne, autrement dit la 3ème ligne dans le else.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 If Dir("\Résultats\Sortie n°1.txt", vbDirectory) = "Sortie n°1.txt" Then intFileNum = FreeFile() Open "\Résultats\" & frmPeche.Caption For Random As #intFileNum Put #2, 1, frmMsFlexGrid1.Flex1.TextMatrix(1, 1) Put #2, 2, frmMsFlexGrid1.Flex1.TextMatrix(1, 2) Close #intFileNum Else intFileNum = FreeFile() MkDir ("Résultats") Open "\Résultats\" & frmPeche.Caption For Random As #intFileNum Put #2, 1, frmMsFlexGrid1.Flex1.TextMatrix(1, 1) Put #2, 2, frmMsFlexGrid1.Flex1.TextMatrix(1, 2) Close #intFileNum End If
le Message d'erreur est : PATH NOT FOUND
Merci à vous tous.:D
crée le répertoire Résultats.. sous le répertoire courant ... pas sous \ !! voir :Code:MkDir ("Résultats")
en outre je pense que tu devrai préciser l'unité ... c:\ ... ?Code:MkDir ("\Résultats")
En fait, je ne veut pas préciser l'unité parce que, moi par exemple je suis avec un disque dur non pas C:\ mais E:\ et je pense que je ne doit pas être le seul.
Merci.:D