simgoku
Messages postés38Date d'inscriptiondimanche 4 juin 2006StatutMembreDernière intervention28 mai 2008
-
28 mai 2008 à 13:34
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 2012
-
28 mai 2008 à 16:11
Bonjour a tous,
J'ai déja posté a propos des fichiers texte pour en savoir un petit peu
plus, mais la j'ai une demande bien particuliére et je ne trouve nulle
part comment faire.
Voila mon fichier texte :
#Port COM
(numero du port)
#Nombre d'entrees
(nombre d'entrées)
#Nombre de sorties
(nombre de sorties)
#Nom des entrees,numero des entrees,label
entree1,1,gestion d'une pompe
entree2,2,gestion de patatra
.
.
.
#Nom des sorties,numero des sorties, label
idem que pour les entrées
Je souhaiterai pouvoir modifier ce fichier a partir d'un menu d'option,
mais je ne vois pas comment fair pour avoir acces a telle o telle ligne
du fichier, comment écraser ce qu'il y'avait a la place enfin voila je
ne vois vraiment pas par ou commencer...et puis comment lire telle ou
telle ligne par la suite pour l'affichage de mon interface..
J'ai essayé output et print mais ca m'ecrase tout le fichier...
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 28 mai 2008 à 14:15
fichtrans = chmBEH & "transit.beh"
chmBEH est une variable qui contient le chemin du fichier et transit.beh est le nom de mon fichier
je n'ai fait qu'un copier/coller d'un bout de code d'un de mes programmes
tu peux donc le remplacer par ce que tu veux
du genre
fichtrans = "c:\ test.text"
en effet le write est bien l'opération d'écriture qui dans ma sub écrase l'ancien fichier
il faut donc commencer par la deuxieme sub qui elle lit le fichier texte et le met dans le tableau.
ensuite on fait dans ce tableau toutes les manipes que l'on veut
puis ensuite on réécrit le tableau modifié dans le fichier texte avec la premiere sub
c'est vrai qu'en toute logique j'aurais du écrire la sub de lecture avant celle d'écriture
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 28 mai 2008 à 13:53
Public Sub ecrittransit()
fichtrans = chmBEH & "transit.beh"
Open fichtrans For Output As #1
For I = 0 To UBound(TabTrans, 2)
For j = 0 To UBound(TabTrans, 1)
If j = UBound(TabTrans, 1) Then
Write #1, Trim(TabTrans(j, I))
Else
Write #1, Trim(TabTrans(j, I)),
End If
Next j
Next I
Close #1
End Sub
Public Sub littransit()
fichtrans = chmBEH & "transit.beh" ' mets dans la variable le chemin et le nom du fichier
On Error Resume Next
test = Dir(fichtrans, vbDirectory)
If Err <> 0 Then GoTo FinEcritTransit
If test = "" Then GoTo FinEcritTransit
ReDim TabTrans(20, 0)
Open fichtrans For Input As #1 'ouvre le fichier transit.beh en lecture
Do While Not EOF(1) 'boucle jusqu'à la fin du fichier
For I = 0 To 20
Input #1, TabTrans(I, UBound(TabTrans, 2))
Next I
ReDim Preserve TabTrans(20, UBound(TabTrans, 2) + 1) 'agrandit le tableau d'une ligne
Loop
Close #1
ReDim Preserve TabTrans(20, UBound(TabTrans, 2) - 1) 'supprime la derniere ligne créée en trop
Exit Sub
FinEcritTransit:
Err.Clear
ecrittransit
End Sub
voici un exemple qui lit et /ou ecrit un fichier texte qui se présente sous la forme
"texte", "texte","texte"
"texte", "texte","texte"
si tu le lis avec le notepad
ce que j'ai mis en rouge c'est pour le cas où, en lecture, le fichier n'existerais pas
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
Vous n’avez pas trouvé la réponse que vous recherchez ?
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 28 mai 2008 à 15:41
si ton tableau est resté à deux dimmensions ça devrait être du style tabtrans(i, x)
de plus utilise plutot si tu incrémente par rapport au tableau
for i = 0 tu ubound(tabtrans,1)
ou
for i = 0 tu ubound(tabtrans,2)
suivant que tu veux exporer la colone ou la rangée du tableau
si il n'a qu'une dimmension ce sera
for i = 0 tu ubound(tabtrans)
maintenant ton Text2(i) peut également être la cause du probleme
est ce bien un groupe de controle et combien il y en a ?
car dans ce cas si il y en as moins de vingt ça plante fort logiquement
ta boucle for doit alors etre faite par rapport à l'index de ton text2
si par exemple tu as textbox2(0), textbox2(1),textbox2(2)
ce sera
for i = 0 to 2
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
simgoku
Messages postés38Date d'inscriptiondimanche 4 juin 2006StatutMembreDernière intervention28 mai 2008 28 mai 2008 à 15:52
C'est bon finalement je m'en suis sorti!!!
J'aurai voulu savoir aussi, esqu'il est possible de rajouter des
commentaires dans le fichier texte? genre on met des #, on compare le #
avec le texte et si il detecte un diéze il n'écrit pas ou un truc du
genre?
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 28 mai 2008 à 16:11
ça doit être possible en effet
mais je pense qu'il est plus simple de considérer le fichier texte comme n'étant que des données un commentaire n'étant qu'une donnée parmi tant d'autres
j'avais fait un truc de ce genre avec un tableau contenant 20 colones alors que je n'en avais besoin que de 12 et dans la vingtieme je mettais un caractere de controle.
par contre évite le # comme caractere de controle car il est utilisé par VB6 et tu risque d'avoir des erreurs difficiles à trouver
[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE