A voir également:
- [VB] Utilisation d'un fichier externe
- Fichier rar - Guide
- Notice d'utilisation - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier host - Guide
10 réponses
En VB,
Avec 1 comme numéro de fichier et ligne comme variable string :
pour lire une ligne : line input #1, ligne
pour écrire une ligne (en écrasant l'éxistant) : print #1, ligne
Pour ne pas l'écraser, il faut ouvrir le fichier en mode append (pas output) ça écrit à la fin du fichier.
Avec 1 comme numéro de fichier et ligne comme variable string :
pour lire une ligne : line input #1, ligne
pour écrire une ligne (en écrasant l'éxistant) : print #1, ligne
Pour ne pas l'écraser, il faut ouvrir le fichier en mode append (pas output) ça écrit à la fin du fichier.
J'ai relu ton message plusieurs fois et j'avoue que j'ai un peu de mal à comprendre. Pourrais tu poster le code exact en prenant pour example "Check1" comme case à cocher et "COCHER_CASE1" comme ligne dans le fichier.
Excusez, je suis un peu nunuche mais j'ai commencé le VB avant-hier seulement! :-)
Excusez, je suis un peu nunuche mais j'ai commencé le VB avant-hier seulement! :-)
Il n'y a aucun mal à demander quand on ne sait pas! :-)
Bon, je vais essayer de te donner un code à peu près correct.
dim chaine as string
'Si la case n'est pas cochée
if check1.value = unchecked then
'on lit le fichier
Open "c:\nom_fichier" For Input As 1
Line Input #1, chaine
close 1
'si le fichier a la ligne on coche la case
if chaine = "COCHER_CASE1" then
check1.value = checked
end if
else
'si la case est cochée on écrit la ligne dans le fichier
open "c:\nom_fichier" for output as 1
print #1, "COCHER_CASE1"
close 1
end if
Voilà, j'espère que tu vas y voir un peu plus clair :-)
Bon, je vais essayer de te donner un code à peu près correct.
dim chaine as string
'Si la case n'est pas cochée
if check1.value = unchecked then
'on lit le fichier
Open "c:\nom_fichier" For Input As 1
Line Input #1, chaine
close 1
'si le fichier a la ligne on coche la case
if chaine = "COCHER_CASE1" then
check1.value = checked
end if
else
'si la case est cochée on écrit la ligne dans le fichier
open "c:\nom_fichier" for output as 1
print #1, "COCHER_CASE1"
close 1
end if
Voilà, j'espère que tu vas y voir un peu plus clair :-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oui ca marche en effet assez bien. Merci beaucoup :)
J'aurais une autre question:
j'ai remarqué que lorsque le prog ecrit une ligne dans le fichier, il efface tout le reste. Je veux garder le contenu du fichier ainsi que l'ordre des lignes. Ya-til un autre moyen que de le faire écrire la ligne A LA FIN du fichier?
J'aimerais également savoir s'il existe un moyen de remplacer une ligne. Par exemple, remplacer CASE1_COCHEE par CASE1_DECOCHEE. Cela m'aiderait à garder l'ordre de toutes les lignes à l'interieur du fichier.
J'aurais une autre question:
j'ai remarqué que lorsque le prog ecrit une ligne dans le fichier, il efface tout le reste. Je veux garder le contenu du fichier ainsi que l'ordre des lignes. Ya-til un autre moyen que de le faire écrire la ligne A LA FIN du fichier?
J'aimerais également savoir s'il existe un moyen de remplacer une ligne. Par exemple, remplacer CASE1_COCHEE par CASE1_DECOCHEE. Cela m'aiderait à garder l'ordre de toutes les lignes à l'interieur du fichier.
Je ne connais pas de moyen de réécrire à un endroit précis du fichier. A mon avis, le meilleur moyen est de te servir d'un fichier temporaire, dans lequel tu réécris ton fichier ligne par ligne avec les mises à jour. Ensuite tu renommes ce fichier comme l'ancien.
Ainsi tu gardes l'ordre des lignes, et tu peux en remplacer.
Il faut pour cela ouvrir ton fichier en mode append, qui écrit à la fin du fichier.
Ainsi tu gardes l'ordre des lignes, et tu peux en remplacer.
Il faut pour cela ouvrir ton fichier en mode append, qui écrit à la fin du fichier.
J'avoue que cette solution m'embarasse un peu. Le fichier dont je compte me servir est assez long et contient beaucoup de commentaires. Je me vois mal devoir réécrire le fichier entier à chaque modification mineure. N'existe t-il vraiment pas de moyen de remplacer un mot par un autre (à la manière des traitements de texte: "Rechercher et remplacer"), cela m'aurait aidé énormément.
On m'a toujours dit que tout problème avait sa solution :-)
Malheureusement, je ne peux pas t'aider d'avantage. Essaye de poser ta question sur un autre forum, ou de voir les sites qui présentent des astuces pour vb. Ou alors, reformule ta question sur ce forum, peut-être que quelqu'un saura mieux que moi.
Bonne chance!
Malheureusement, je ne peux pas t'aider d'avantage. Essaye de poser ta question sur un autre forum, ou de voir les sites qui présentent des astuces pour vb. Ou alors, reformule ta question sur ce forum, peut-être que quelqu'un saura mieux que moi.
Bonne chance!
OK, merci quand-même pour ton aide :)
J'aimerais encore savoir si il est possible de faire un "alias" (ou appelez le comme vous voulez), pour ne pas avoir à réecrire plusieurs fois la même ligne de code. Par exemple, je définis une fois l'"alias" et lorsque j'en ai besoin dans mon code, je tape le nom de l'alias au lieu de retaper tout le code.
J'aimerais encore savoir si il est possible de faire un "alias" (ou appelez le comme vous voulez), pour ne pas avoir à réecrire plusieurs fois la même ligne de code. Par exemple, je définis une fois l'"alias" et lorsque j'en ai besoin dans mon code, je tape le nom de l'alias au lieu de retaper tout le code.