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 |
|
|
| INSTR | |
| | Auteur | Message |
---|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: INSTR Mer 10 Mar 2010 - 9:21 | |
| Spécialement pour JL35,
Comme on en a parler sur un autre post, peut-tu me donner un exemple d'utilisation de INSTR. Pas de binaire SVP. | |
| | | Invité Invité
| Sujet: Re: INSTR Mer 10 Mar 2010 - 13:09 | |
| Je peux encore répondre, en attendant que l'on répondre sur le mien: Je veux par exemple remplir une chaine de caractères, tous différents, et aléatoirement: - Code:
-
dim c%,a%,b%,a$,b$ ,c$,cod$ width 0,1200 memo 1:width 1,1100
rem "une chaine de caractères aléatoires de 32 à 255" a$="" for a%=32 to 255 repeat b%=rnd(255-32)+32 until instr(a$,chr$(b%))=0 rem "on regarde si b$ existe dans la chine a$, si oui, on recommence rem "si non il est à rajouter dans a$ a$=a$+chr$(b%) next a% item_add 1,a$
autre exemple: mettre un séparateur, et rechercher les éléments - Code:
-
dim c%,a%,b%,a$,b$ ,c$,cod$ width 0,1200 memo 1:width 1,1100
print_target_is 1 a$="un camembert|une vache" a%=instr(a$,"|") print left$(a$,a%-1) ' résultat: camembert print right$(a$,len(a$)-a%)
Dans cette instruction il manque le 3ème paramètre qui permet de trouver l'élément suivant sans problème ainsi - Code:
-
a$="camembert|vache|lait|poule"
a%=instr(a$,"|") b%=a%+1 a%=instr(a$,"|",b%) ceci permet de trouver le séparateur suivant facilement. Il suffit que la valeur soit supérieur aux séparateurs précédent, pour trouver le prochain. Dommage, ce n'est pas dans Panoramic Salutation |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: INSTR Mer 10 Mar 2010 - 14:58 | |
| Plus simplement, c'est fait pour rechercher une chaîne dans une autre. Par exemple chercher "la" dans "Au clair de la lune": k = INSTR("Au clair de la lune", "la") renvoie k = 13 : position de "la" dans la chaîne.
J'en ai déjà parlé il y a longtemps, mais comme dit Cosmos il manque un paramètre qui serait la position de départ de la recherche dans la chaîne, pour permettre de rechercher des occurences successives. Ca existait en Qbasic: k = INSTR(x, a$, seq$), recherche de seq$ dans a$ à partir de la position x.
Il faut le programmer soi-même: vois mon post 'HTML' dans 'Vos sources...', le sous-programme Instrx. Il existe même dans d'autres basics (freebasic) une instruction InstrRev qui commence la recherche à partir de la fin.
Je suis étonné que tu n'utilises pas cette instruction, moi je l'utilise très fréquemment, il est vrai que je fais souvent de l'analyse de chaînes. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re: INSTR Mer 10 Mar 2010 - 16:47 | |
| je dis peut être une grosse c..., anerie mais tu te servir de "Mid$()" | |
| | | Invité Invité
| Sujet: Re: INSTR Mer 10 Mar 2010 - 16:58 | |
| Mid$() et instr() n'ont rien à voir. On peut trouver une partie d'un texte avec mid$(). C'est de cette façon qu'on procédait au début du basic. Instr() permet de trouver en une seul opération un caractère, ou une partie de texte. Instr donne directement la position du texte à rechercher. Je profite de l'occasion pour mettre en avant une instruction qui passe inaperçue et qui est bien pratique (rien à voir avec instr) c'est insert$(, qui permet d'insérer du texte dans un autre. Cette instruction, je l'ai redécouverte il y a un mois, et c'est quand-même plus simple que de concaténer des morceaux de texte. |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: INSTR Mer 10 Mar 2010 - 17:07 | |
| Ca alors, merci bien Cosmos, l'instruction INSERT$ m'avait complètement échappé, elle va bien me servir celle-là ! Tout ça est quand même utilisé ensemble: Instr, Mid$, Insert$.
Et de même que le Instr manque du paramètre index de départ, Mid$ manque du paramètre implicite: fin de la chaîne à partir de l'index (sans être obligé de donner la longueur). Comme en Basic. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: INSTR Mer 10 Mar 2010 - 17:58 | |
| Je modère mon enthousiasme pour l'instruction INSERT$, après quelques essais rapides... Si je reprends textuellement l'exemple du manuel: - Code:
-
DIM a$, b$ a$ = "bonjouramis" b$ = " les " PRINT INSERT$(a$, b$, 8) END eh bien... ça n'insère rien du tout, ça affiche a$ tel quel. Bon, je mets ça dans les bugs... | |
| | | Invité Invité
| Sujet: Re: INSTR Mer 10 Mar 2010 - 18:14 | |
| Je viens de te répondre dans les bugs. Dommage que cela ne fonctionne pas. Quant à MID$( cela devient une vieille histoire, et comme toi, je voudrais bien qu'elle soit fini. |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: INSTR Mer 10 Mar 2010 - 20:18 | |
| Merci à tous pour vos réponses,
Jusqu'a présent j'utilisais LEFT$,RIGHT$ et MID$ pour bricoler les string($). Grace à vos explications je vois l'utilité de INSTR(). Pour ce qui concerne INSERT$ j'ai déja utilisé cette instruction et elle ne posait pas de problème, (mais il y a longtemps que je ne l'ai pas utilisée). | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: INSTR Jeu 11 Mar 2010 - 8:00 | |
| - Citation :
- Pour ce qui concerne INSERT$ j'ai déja utilisé cette instruction et elle ne posait pas de problème, (mais il y a longtemps que je ne l'ai pas utilisée).
Rectification: je pensais à ITEM_INSERT qui n'a rien à voir avec INSERT$. En fait je n'ai jamais utilisé INSERT$. A+ | |
| | | Contenu sponsorisé
| Sujet: Re: INSTR | |
| |
| | | | INSTR | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |