Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| je ne sais plus remplacer des morceaux de string | |
| | Auteur | Message |
---|
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: je ne sais plus remplacer des morceaux de string Dim 8 Jan 2012 - 0:35 | |
| Bonsoir amis panoramiciens, J'ai un trou de mémoire. Je ne sais plus comment remplacer une partie d'une chaine de caractère par un autre. Par exemple dans le code suivant, je veux remplacer une partie de la séquence de a$, en l'occurence "-27.02&-60&45" par les valeurs de vx, vy, vz, donc il faut que je mette à la place la séquence "-26.41&-59&40.25" - Code:
-
dim a$,vx,vy,vz a$="104&Livre&Roman&-27.02&-60&45&-12&13&-14.1&20.4&19&0.02& vx=-26.41:vy=-59:vz=40.25 Merci d'avance pour votre aide! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: je ne sais plus remplacer des morceaux de string Dim 8 Jan 2012 - 1:23 | |
| soit s1$ la séquence que tu veux remplacer dans a$ par s2$ - Code:
-
k% = INSTR(a$, s1$) a$ = LEFT$(a$, k%-1) + s2$ + MID$(a$,k%+LEN(s1$), 200) 200 est arbitraire, en fait ça prend le reste de la chaîne. La longueur de s2$ peut être différente de celle de s1$. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: je ne sais plus remplacer des morceaux de string Dim 8 Jan 2012 - 1:30 | |
| Tu peux essayer comme ceci: - Code:
-
dim a$,vx,vy,vz a$="104&Livre&Roman&-27.02&-60&45&-12&13&-14.1&20.4&19&0.02& vx=-26.41:vy=-59:vz=40.25
' mes variables de travail pour décomposer a$ en segments dim segments$(20), nseg%, ipos% nseg% = 0 ipos% = instr(a$,"&") : ' on cherche la première occurence du séparateur while ipos%>0 : ' tant qu'il y a un séparateur, faire: segments$(nseg%) = left$(a$,ipos%-1) : ' mémoriser le premier segment a$ = mid$(a$,ipos%+1,len(a$)) : ' éliminer ce segment et son séparateur ipos% = instr(a$,"&") : ' chercher un nouveau séparateur nseg% = nseg% + 1 : ' EDIT ligné oublié - correctif grâce à Bignono end_while ' maintenant, remplacer les 3 segments segments$(3) = str$(vx) segments$(4) = str$(vy) segments$(5) = str$(vz) a$ = "" : ' effacer la variable a$ pour la pureté for ipos%=0 to nseg% : ' en boucle sur tous les segments: a$ = a$ + segments$(ipos%)+"&" : ' reconstituer a$ EDIT suite au post justifié de Extradon ! next ipos% ' et voilà...
Dernière édition par Klaus le Dim 8 Jan 2012 - 9:29, édité 2 fois | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: je ne sais plus remplacer des morceaux de string Dim 8 Jan 2012 - 4:26 | |
| | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: je ne sais plus remplacer des morceaux de string Dim 8 Jan 2012 - 9:19 | |
| Bonjour à tous, Je vous remercie de vos réponses. C'est Klaus qui m'a apporté la bonne solution à mon problème. Bien que son programme ne marche pas, j'ai saisi le principe qu'il a utilisé. Je vais maintenant pouvoir adapter cecci à mon programme! Pour l'exemple et pour que ça serve à d'autres, je met le code revu par moi: - Code:
-
dim a$,vx,vy,vz,seg$(25),n,i a$="104&Livre&Roman&-27.02&-60&45&-12&13&-14.1&20.4&19&0.02&" print a$ vx=-26.41:vy=-59:vz=40.25 n = 0 i = instr(a$,"&") : ' on cherche la première occurence du séparateur while i>0 : ' tant qu'il y a un séparateur, faire: seg$(n) = left$(a$,i-1) : ' mémoriser le premier segment a$ = mid$(a$,i+1,len(a$)) n=n+1 : ' éliminer ce segment et son séparateur ' print a$ i = instr(a$,"&") : ' chercher un nouveau séparateur end_while ' maintenant, remplacer les 3 seg seg$(3) = str$(vx) seg$(4) = str$(vy) seg$(5) = str$(vz) a$ = "" : ' effacer la variable a$ pour la pureté for i=0 to n-1 : ' en boucle sur tous les seg: a$ = a$ + seg$(i)+"&" : ' reconstituer a$ print "segment ";:print i;:print " ";:print seg$(i)
next i print a$ ' et voilà...
Merci encore à toi Klaus | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: je ne sais plus remplacer des morceaux de string Dim 8 Jan 2012 - 10:28 | |
| Ca c'est du Klaus tout craché, il a la méthode classe et il te fait réfléchir quand même un peu sans quoi ça ne serait pas drôle | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: je ne sais plus remplacer des morceaux de string Dim 8 Jan 2012 - 10:32 | |
| - Citation :
- Bien que son programme ne marche pas,
Tu dis qu'il ne marche pas, mais c'est à cause de la lettre manquante ? oO Ou bien c'est dans sa structure ? Bon en tous cas, le principal c'est que le principe soit passé | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: je ne sais plus remplacer des morceaux de string Dim 8 Jan 2012 - 10:41 | |
| Salut Jicehel, La prochaine fois que Klaus me donne une solution qui fait travailler les neurones, je ne dis rien. Comme ça tu vas faire travailler un peu tes méninges! toi aussi! Nah! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: je ne sais plus remplacer des morceaux de string Dim 8 Jan 2012 - 10:43 | |
| Je trouve la méthode de Klaus excellente, il utilise beaucoup moins de variables que moi, je vais revoir ma bibliothèque. En tous cas, je remercie Bigono d'avoir déclenché ce poste, car il nous donne accès aux méthodes de programmation des autres, ce qui nous permet de comparer et de voir d'autres mécanismes que les siens. Pour le fun je vous livre ma mèthode (ressortie de ma bibliothèque) - Code:
-
' Routine de découpage des éléments d'un string ' cette routine crée autant d'éléments dans la variable element$(n) contenu ' dans la variable a$ en utilisant le séparateur indiqué par s$
' au retour de la routine vous pouvez exploitez les variables: ' - nba => nombre de s$ (séparateur) ' - nbe => nombre d'éléments découpés dans a$ ' - element$(n) tout les elements récupérés par la routine de 1 à n
' Règles pour un bon fonctionnement de la routine: ' - Pas de s$ (séparateur) devant et dérrière a$ ' - ne pas utiliser l'espace comme séparateur
dim a,a$,b$,ls,n,nba,ne,nbe,s$:' variables nécéssaires
' initialise les variables a$="01|DUPOND|Jean Marie|123 rue de la paix|75000|PARIS" s$="|"
label dec_string:' label nécéssaire gosub dec_string
width 0,800:list 1:width 1,500:label resultat:gosub resultat:' juste pour présenter le résultat
end ' =============== Routine de découpage des éléments d'un string =============== dec_string: nba=0:ls=len(a$):a=instr(a$,s$):b$=a$ repeat:' boucle pour compter le nb de s$ dans a$ ls=ls-a:b$=mid$(b$,a+1,ls):a=instr(b$,s$):nba=nba+1 until a=0:nbe=nba+1:if variable ("element$")=0 then dim element$(nbe):' création d'une variable par éléments => element$(n) for ne=1 to nba:' boucle de fabrication de element$(ne) ls=len(a$):a=instr(a$,s$):element$(ne)=mid$(a$,1,a-1):a$=mid$(a$,a+1,ls):element$(ne+1)=a$ next ne:return ' ====================== Pour afficher le résultat ============================= resultat: for n=1 to nbe item_add 1,element$(n) next n caption 0, "Nombre de ("+s$+") utilisés:"+str$(nba)+" et Nombre d'élément dans a$:"+str$(nbe) return
L'inconvénient de ma méthode c'est d'avoir dimensionné element$() dans le programme, donc si on réutilise une nouvelle fois avec plus d éléments (nbe) çà marche plus. A+
Dernière édition par Jean Claude le Dim 8 Jan 2012 - 10:50, édité 1 fois | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: je ne sais plus remplacer des morceaux de string Dim 8 Jan 2012 - 10:46 | |
| - Citation :
- Salut Jicehel, Wink
La prochaine fois que Klaus me donne une solution qui fait travailler les neurones, je ne dis rien. Comme ça tu vas faire travailler un peu tes méninges! toi aussi! Nah! Ah nan, moi aussi je vais devoir le faire :/ Remarque y a Nardo ou Cosmos^^ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: je ne sais plus remplacer des morceaux de string Dim 8 Jan 2012 - 11:17 | |
| Oh les petits joueurs !! Nan, l'idée, la vrai c'est que Klaus à donné la méthode à laquelle il pensait, ça prend déjà pas mal de temps et c'est vrai qu'il n'a peut-être pas blindé ça soluce comme je pense qu'il voulait surtout donner le principe du comment faire et à priori, ça a marché ... ^^ | |
| | | Contenu sponsorisé
| Sujet: Re: je ne sais plus remplacer des morceaux de string | |
| |
| | | | je ne sais plus remplacer des morceaux de string | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |