Problème de Replace

blissdumpweed Messages postés 79 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 8 juin 2004 - 7 mai 2004 à 11:05
blissdumpweed Messages postés 79 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 8 juin 2004 - 7 mai 2004 à 11:42
Voila, j'ai des fichiers dont les lignes commencent toujours pas "N" suivit d'un chiffre qui s'incrémente à chaque nouvelle ligne.
exemple :
N1 G30 G17 X0 Y0 Z0 *
N2 G31 G90 X0 Y0 Z0 *
N10 G17 T1 M6 *

je souhaiterai pouvoir remplacer le nombre qui se trouve, just collé au N et pouvoir incrémenter ainsi chaque N comme je veux.
exemple (incrémentation de 10 en 10):
N1 G30 G17 X0 Y0 Z0 *
N10 G31 G90 X0 Y0 Z0 *
N20 G17 T1 M6 *

Petite info, j'affiche toujours ce fichier dans une RichTextBox avant de le modifier.
Si vous pouviez m'aider !

7 réponses

vialstephane Messages postés 89 Date d'inscription mercredi 29 octobre 2003 Statut Membre Dernière intervention 22 mai 2008
7 mai 2004 à 11:14
Salut,

y'as une fonction en VB qui existe , c 'est REPLACE

Replace(variable$,"caracteres à remplacer", "caractere de remplacement")

@+
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
7 mai 2004 à 11:18
Je n'ai pas bien compris ce que tu veux faire au final mais voici un bout de code qui lit les lignes du fichier 1 à 1 et extrait pour chaque ligne la valeur numérique suivant le "N"
Comme exemple je recrée une ligne en ajoutant simplement 10 à cette valeur et je recolle tout ca dans un autre fichier
Dim L as String,i as long,Nb as long, Restant as String
Dim NouvelleLigne as String
Open "toto.txt" for input as #1
Open "Tata.txt" For Output as #2
While Not EOF(1)
  Line Input #1,L
  i = Instr(L," ")
  Nb = Mid$(L,2,i-2)
  Restant = Mid$(L,i)
  ' Retraiter ta ligne sachant que Nb contient la valeur numérique suivant le "N"
  ' Et que Restant contient le bout de la ligne : Après le "Nxx"
  NouvelleLigne = "N" & Cstr(i+10) & Restant ' Par exemple
  Print #2,NouvelleLigne
Wend
Close

Christophe R.
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
7 mai 2004 à 11:26
Bonjour,

tu pourrais, par exemple faire un split sur chacune des lignes

tu récupères le 1er élément du tableau (rempli par le split) sur lequel tu fais un replace du N par ""

ensuite tu fais ton +10 à ce qu'il reste (c'est à dire le chiffre après le N)

et enfin, tu remets ton N devant et tu reconstruis ta ligne à partir du tableau ...

Est-ce que c'est cette démarche que tu souhaites faire ?

Fanny
0
blissdumpweed Messages postés 79 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 8 juin 2004
7 mai 2004 à 11:26
réponse à vialstephane : oui je connais le replace, c'est ce que j'utilise

en fait mon problème se situe plus au niveau de la méthode Find du RichTextBox, car elle ne me renvoie que le premier résultat, c'est à dire que quand je recherche le caractère N, elle me sortira le premier qu'elle trouve et les autres, bah elle s'en fout !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blissdumpweed Messages postés 79 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 8 juin 2004
7 mai 2004 à 11:28
Fanny, avec cette méthode mon tableau va être immense pce j'ai des fichiers de plus d 700 lignes !
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
7 mai 2004 à 11:37
Euh, je me suis mal exprimée :
tu boucles sur les lignes
comme cela, tu n'as qu'un tableau d'une ligne à chaque fois.

Car de toute façon, tu es bien obligé de stocker qqpart la nouvelle ligne (avec le nouveau N<nb>) pour la remplacer dans ton fichier.
Donc tu traites ligne par ligne, en mettant chaque nouvelle ligne dans un fichier temporaire, et à la fin, tu écrases ton ancien fichier par celui tout beau tout neuf.

Enfin, ce n'était qu'une idée que j'avais eu :)

Fanny
0
blissdumpweed Messages postés 79 Date d'inscription jeudi 15 avril 2004 Statut Membre Dernière intervention 8 juin 2004
7 mai 2004 à 11:42
ok merci, tes idées sont le bienvenue.
Je vais essayer parce que "qui tente rien n'a rien" et "100% des gagnants ont tentés leur chance". Quelle belle philosophie !
0
Rejoignez-nous