Supprimer un bloc de lignes [VBS] - VB/VBA/VBS - Programmation
Marsh Posté le 07-01-2011 à 13:58:52
Un truc du genre ?
Code :
|
Marsh Posté le 07-01-2011 à 14:24:06
gzii a écrit : Un truc du genre ?
|
Oui. C'est ça.
Marsh Posté le 07-01-2011 à 14:27:04
Ben je crois que tu as tous les éléments. Pour le langage je ne peux pas te renseigner, pas envie d'apprendre le VBS.
Marsh Posté le 07-01-2011 à 14:43:48
Pour supprimer une ligne, il n'y a pas de problème. En revanche, je ne vois pas comment dire à partir de la ligne que j'ai trouvé (la ligne de début de bloc), supprimer toutes les lignes (première de bloc incluse) jusqu'à la prochaine ligne vide.
Marsh Posté le 07-01-2011 à 14:45:19
une variable booléenne prendre que tu mets à vrai ou faux comme ce que je t'ai dit, et à vrai en tout début.
Marsh Posté le 07-01-2011 à 19:52:52
Je suis rendu à ça mais malheureusement, ça ne fonctionne toujours pas. Ca supprime tout les lignes de mon fichier. Comment ne supprimer que la portion suivante :
[Office 2007]
UPDATED0001=patch 001
UPDATED0002=Update files
UPDATED0003=Excel 2007
UPDATED0005=Access 2007
Code :
|
Marsh Posté le 08-01-2011 à 02:52:14
C'est pas du tout ce que j'ai écrit.
Pourquoi tu ouvres et tu fermes ton fichier plein de fois ?
C'est quoi ce truc ?!!
Je n'ai pas l'impression que tu comprennes ce que tu fais là. Si ?
Marsh Posté le 08-01-2011 à 13:57:56
La prog n'a jamais été mon fort. ^^
Ce qu'il faut, c'est que j'ouvre le fichier en lecture pour mettre le curseur sur le titre de la section que je cherche et ensuite que je passe en mode écriture pour supprimer les lignes dont je ne veux plus.
Or ce n'est pas ça que j'ai fait.
Où faut-t-il que j'ouvre le fichier en écriture pour faire les modifications nécessaires?
Marsh Posté le 08-01-2011 à 14:14:29
Tu lis un fichier et en écris un qui remplace le premier.
Donc il faudrait, comme dans le premier programme, stocker ce que tu lis et que tu veux dans une variable, et à la fin l'écrire dans le fichier. Ça ça ne change pas.
quand j'ai mis écriture de la ligne, c'est plutôt ajout de la ligne dans la variable.
Maintenant, je pense que ce serait pas mal que tu reviennes un peu en arrière pour apprendre les bases.
Marsh Posté le 13-01-2011 à 09:55:54
Bonjour,
je reviens sur ce sujet car j'ai réussi à faire le script que je voulais. Cependant, je voudrais l'optimiser.
Code :
|
Le soucis est qu'à chaque nouvelle chaine que je veux supprimer, je dois créer une portion de code identique à celle qui est en bleue. Y'aurait-il moyen de faire un tableau de variables (1 variable = 1 chaine StrCheckForString) afin de faire une boucle for?
Si oui, comment? Dans certain cas, j'aurai 2 chaines StrCheckForString, dans d'autres j'aurai 5 chaines.. Ce n'est jamais fixe.
Marsh Posté le 13-01-2011 à 10:46:18
Alors tu met ton fic de départ dans une variable et tu fais ton bloc qui écrit dans une autre, et à la fin remet le nouveau contenu dans la première, et tourne sur un foreach de ton tableau de blocs à supprimer, ou un truc du genre.
Je ne vois pas ce qui te bloque, éventuellement reprend les bases comme je te l'ai déjà dit.
n fois le même bloc de code ça ne se fait pas.
Marsh Posté le 13-01-2011 à 11:16:01
gzii a écrit : Alors tu met ton fic de départ dans une variable et tu fais ton bloc qui écrit dans une autre, et à la fin remet le nouveau contenu dans la première, et tourne sur un foreach de ton tableau de blocs à supprimer, ou un truc du genre. |
n fois le même bloc de code ça ne se fait pas. Je le sais et c'est bien pour ça que je demande. Mais comme je le dis, dès fois j'aurai 3 lignes, dès fois 4 dès fois plus. Donc je ne peux pas faire une boucle, si?
Marsh Posté le 13-01-2011 à 11:47:38
Si, reprend tout depuis le début, là à mon avis tu essaies de copier du code sans trop y comprendre.
Regarde le foreach par exemple sur une doc. Là tu l'utilises déjà.
Marsh Posté le 07-01-2011 à 11:06:50
Bonjour,
je veux supprimer dans un fichier ini, un bloc de lignes donc la première commence par une section et la dernière est une ligne vide.
J'ai déjà fait ce morceau de script qui permet de supprimer une ligne en particulier :
Maintenant, comment supprimer un "bloc"? Dans le fichier INI suivant, je veux supprimer tout ce qui concerne la section Office 2007 :
En gros, je voudrais traduire en code : Je trouve la section Office 2007, tant que la ligne en cours de lecture n'est pas vide, je la supprime.
Merci de votre aide.
Message édité par slr56 le 07-01-2011 à 13:45:44