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.![]()
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.![]()
et tu bloque ou ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 open "fichier.txt" for random as #1
Merci.![]()
Ah ?ç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.![]()
Je vais réessayer de le faire marcher demain et je vous tien au courant je ne peut pas vous donner le code.
Merci.
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.![]()
c'est quoi ce charabia ?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à......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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !!Envoyé par ThierryAIM
Voilà ce que c'est de ne pas tester TOUT ce qu'on écrit.
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.![]()
crée le répertoire Résultats.. sous le répertoire courant ... pas sous \ !! voir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part MkDir ("Résultats")
en outre je pense que tu devrai préciser l'unité ... c:\ ... ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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.![]()
Partager