| Au secours ! | |
|
|
Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Au secours ! Dim 1 Nov 2015 - 16:56 | |
| Quelqu' un aurait il déjà la solution ? voilà mon pb : Je cherche une "abc" dans une ligne de caractères encapsulée dans une variables T$. sauf que instr(T$,"abc") me renvoie la première fois où ma chaîne est présente. Si la ligne T$ comprend plusieurs fois la chaîne "abc", pour utiliser Instr il me faut découper la ligne T$ mais là, la position de la deuxième chaîne dans la ligne T$ est faussée. En gros, j' ai : "Le chat de ma voisine est noire et le chien de mon cousin est gris alors que mon chat est roux" et je veux savoir les positions des mots "chat" et "chien" dans la ligne... Si quelqu' un à déjà la solution, il me sauve la nuit... | |
|
| |
Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: au secours Dim 1 Nov 2015 - 17:31 | |
| Bonjour. J'ai déjà eu à programmer ce genre de tests. Voici ma solution: - Code:
-
dim chaine$, position%, x%, true% true%=1
position%=1 while true%=1 x%=instr_pos(chaine$,"chat",position%) if x%=0 then exit_while action à effectuer position%=x%+5 end_while
.............. | |
|
| |
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Au secours ! Dim 1 Nov 2015 - 17:42 | |
| Salut ygeronimi Tu devrai regarder du coté de chez Klaus... KGF a des fonctions intéressantes que Klaus a rajouté récemment pour Cosmos. Un découpage de chaîne avec les positions (si j'ai bien tout compris) Ensuite tu n'as plus qu'a vérifier les fragments que tu cherche et tu aura la position... Regarde ici | |
|
| |
Invité Invité
| Sujet: Re: Au secours ! Dim 1 Nov 2015 - 18:31 | |
| Bonsoir, Il y a une instruction faite pour celà: INSTR_POS(S,C,P) S étant la chaine de caractère C la partie à rechercher P à partir de quelle position.
JL35 et moi l'avons régulièrement demandés. |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Au secours ! Dim 1 Nov 2015 - 18:44 | |
| - Code:
-
dim chaine$, position_chat%, position_chien%,x%,y%,t$ ,t1$,t2$ chaine$ = "Le chat de ma voisine est noir et le chien de mon cousin est gris alors que mon chat est roux" position_chat% = 1 : position_chien% = 1 t$ = "Dans : " + chaine$ + chr$(13) t1$ = t$ + " 'chat' se trouve à la postion : " t2$ = t$ + " 'chien' se trouve à la postion : " while 1 = 1 x% = instr_pos(chaine$,"chat",position_chat%) y% = instr_pos(chaine$,"chien",position_chien%) if x% = 0 and y% = 0 then exit_while message t1$ + str$(x%) : message t2$ + str$(y%) position_chat% = x% + len("chat") : position_chien% = x% + len("chien") end_while
| |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 1 Nov 2015 - 23:55 | |
| Merci les gars ! Je crois que vous venez de me sauver de boucle surbouclées et rebouclées... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Au secours ! Mer 4 Nov 2015 - 16:12 | |
| Si, dans ce programme, tu utilises KGF.dll, tu as aussi la fonction - Code:
-
res% = dll_call3("instr",adr(crit$),adr(chaine$),p%) dans la section de "Gestion de chaînes de caractères". | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 4 Nov 2015 - 18:18 | |
| Merci klaus. Je vais la regarder. Je me bagarre pour récupérer les textes des pages du site Panoramic pour les remettre en pages. Vu que certaines font jusqu' à 2500 lignes.... avec des tableaux etc... C' est joli les éditeurs de html en wysiwyg mais quel chiote avec toutes ces balises inutiles.... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Au secours ! Mer 4 Nov 2015 - 18:36 | |
| Tu récupères les textes comment ? Comme Pédro, tu pourrais utiliser la fonction WB_CopyToMemo, de la manière suivante: - Code:
-
dim WB%, res%, url$ memo 1 : full_space 1 : bar_both 1 WB%=dll_call1("WBCreate",handle(0)) res%=dll_call5("WB_Locate",WB%,0,0,1600,900) : ' <===== à adapter, évidemment... url$="http://......." res%=dll_call2("WB_Url",WB%,adr(url$)) pause 2000 res% = dll_call2("WB_CopyToMemo",WB%,handle(1)) pause 1000 Cela ne récupère que les textes, pas les balises HTML. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 4 Nov 2015 - 20:56 | |
| A la barbare ! Le souci est que si je ne retravaille pas le code avant la récupération cela me donnerait presque un texte sur deux lignes de 3 km de long. Et la pour récupérer les sections, sous sections, tableau et autres... Le code des pages est un code généré par un Wysiwyg et lui il se fout royalement des indentations, saut de lignes et autres mise en page. Ces logiciels placent leurs propres balises de repère et récupère le code grâce à elle. Pour s' y retrouver c' est le souk et je ne parle même pas des balises de formatage de texte qui coupent les mots en deux. A cela vient s' ajouter les problèmes de "Charset" qui varient selon l' éditeur. Panoramic nous sort de l' UTF-8 alos que d' autres sont en ISO-xxxxx. Bref, c' est un joyeux merdier. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Au secours ! Mer 4 Nov 2015 - 21:26 | |
| Pas tout à fait, Ygeronimi. Essaie cette fonction, et tu verras que tu récupères une ligne de mémo pour chaque ligne affichée à l'écran. C'est justement là, l'intérêt de cette fonction. Et elle ne travaille pas par "décodage" du HTML, mais elle renvoie ce que le browser enregistrerait dans un fichier texte si l'on faisait cli droit / enregistrement sous... / format texte. C'est vraiment intéressant. | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 4 Nov 2015 - 22:24 | |
| Effectivement, là, cela devient très intéressant. je cela de près... | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 4 Nov 2015 - 22:42 | |
| | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Au secours ! Mer 4 Nov 2015 - 23:50 | |
| | |
|
| |
Contenu sponsorisé
| Sujet: Re: Au secours ! | |
| |
|
| |
| Au secours ! | |
|