|
|
|
|
||||||
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Bonjour à tous,
Est-ce quelqu'un pourrait m'aider à créer la boucle utilisant les expressions régulières pour extraire du texte se situant entre les chaines : <br><br>x. où x est un nombre variable suivi d'un point. Mon texte ressemble à ceci : <br><br>1. ceci est le texte un. il peut y avoir des , ; : ? etc... et tout autres caractères<br><br>2. ceci est mon deuxieme texte idem pour les caractères<br><br>3. ceci est mon troiseme texte etc... Vous l'aurez compris, mon texte peut contenir n'importe quel caractères excepté biensûr la chaine séparatrice. J'aimerais un boucle du style : R.Expression := '????' <== Là c'est à vous de m'aider While S:=R.Exec(sMonTexte) and s<>'' do showmessage(S); En fait je ne sais pas d'ailleurs comment utiliser les ExprReg pour extraire les sous chaines ?? D'avance merci pour votre aide, dans l'attente de vous lire Amicalement, Bruno |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Bruno Mannina a écrit :
> Bonjour à tous, > > Est-ce quelqu'un pourrait m'aider à créer la boucle utilisant les > expressions régulières pour extraire > du texte se situant entre les chaines : > <br><br>x. > où x est un nombre variable suivi d'un point. > > Mon texte ressemble à ceci : > > <br><br>1. ceci est le texte un. il peut y avoir des , ; : ? etc... et tout > autres caractères<br><br>2. ceci > est mon deuxieme texte idem pour les caractères<br><br>3. ceci est mon > troiseme texte etc... > > Vous l'aurez compris, mon texte peut contenir n'importe quel caractères > excepté biensûr la chaine séparatrice. > > J'aimerais un boucle du style : > > R.Expression := '????' <== Là c'est à vous de m'aider > While S:=R.Exec(sMonTexte) and s<>'' do > showmessage(S); > > En fait je ne sais pas d'ailleurs comment utiliser les ExprReg pour extraire > les sous chaines ?? > > D'avance merci pour votre aide, dans l'attente de vous lire > Amicalement, > Bruno > > Bonjour, Est-ce que l'usage d'une expression régulière est imposée ? Vu la simplicité de la balise, je pense qu'il est bien plus rapide de parcourir la chaine à sa recherche et d'extraire les sous chaines à la volée. Par exemple (écrit en ligne, non testé) Procedure ExtraitInfos(Const Source:String; Dest:TStringList); Const Balise:String = '<br><br>'; Var PDeb,PFin:PChar; S:String; Begin PFin:=PChar(Source); PDeb:=Nil; //Cherche première balise While (PFin^<>#0) and (StrLIComp(PFin,PChar(Balise),Length(Balise))<>0) do Inc(PFin); If PFin^=#0 then Exit; //Aucune balise trouvée Inc(PFin, Length(Balise)); //Saute la balise PDeb:=PFin; //Marque début chaine à garder //Cherche balise suivante et extrait chaine depuis la précédente Repeat While (PFin^<>#0) and (StrLIComp(PFin,PChar(Balise),Length(Balise))<>0) do Inc(PFin); If PFin^=#0 then Break; SetString(S, PDeb, PFin-PDeb); Dest.Add(S); Inc(PFin, Length(Balise)); //Saute la balise PDeb:=PFin; until False; //Si souhaité : accepte la dernière chaine non fermée If Assigned(PDeb) then begin SetString(S, PDeb, PFin-PDeb); Dest.Add(S); End; End; |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Salut Pascal,
En fait c'est parce que il y a le x variable. Est-ce que ton code prend en compte le fait que x varie de 1 à 999 ? la balise est : <br><br>x. il y a aussi un point aprés le x Dans l'attente de te lire, Cordialement, Bruno "Pascal Peyremorte" <p.peyremorte_oter_ces_mots@free.fr> a écrit dans le message de news: fmoigk$aa3$1@sd-6498.dedibox.fr... > Bruno Mannina a écrit : >> Bonjour à tous, >> >> Est-ce quelqu'un pourrait m'aider à créer la boucle utilisant les >> expressions régulières pour extraire >> du texte se situant entre les chaines : >> <br><br>x. >> où x est un nombre variable suivi d'un point. >> >> Mon texte ressemble à ceci : >> >> <br><br>1. ceci est le texte un. il peut y avoir des , ; : ? etc... et >> tout autres caractères<br><br>2. ceci >> est mon deuxieme texte idem pour les caractères<br><br>3. ceci est mon >> troiseme texte etc... >> >> Vous l'aurez compris, mon texte peut contenir n'importe quel caractères >> excepté biensûr la chaine séparatrice. >> >> J'aimerais un boucle du style : >> >> R.Expression := '????' <== Là c'est à vous de m'aider >> While S:=R.Exec(sMonTexte) and s<>'' do >> showmessage(S); >> >> En fait je ne sais pas d'ailleurs comment utiliser les ExprReg pour >> extraire les sous chaines ?? >> >> D'avance merci pour votre aide, dans l'attente de vous lire >> Amicalement, >> Bruno > > Bonjour, > > Est-ce que l'usage d'une expression régulière est imposée ? > Vu la simplicité de la balise, je pense qu'il est bien plus rapide de > parcourir la chaine à sa recherche et d'extraire les sous chaines à la > volée. > > Par exemple (écrit en ligne, non testé) > > Procedure ExtraitInfos(Const Source:String; Dest:TStringList); > Const Balise:String = '<br><br>'; > Var PDeb,PFin:PChar; > S:String; > Begin > PFin:=PChar(Source); > PDeb:=Nil; > //Cherche première balise > While (PFin^<>#0) and (StrLIComp(PFin,PChar(Balise),Length(Balise))<>0) > do > Inc(PFin); > If PFin^=#0 then Exit; //Aucune balise trouvée > Inc(PFin, Length(Balise)); //Saute la balise > PDeb:=PFin; //Marque début chaine à garder > > //Cherche balise suivante et extrait chaine depuis la précédente > Repeat > While (PFin^<>#0) and > (StrLIComp(PFin,PChar(Balise),Length(Balise))<>0) do > Inc(PFin); > If PFin^=#0 then Break; > > SetString(S, PDeb, PFin-PDeb); > Dest.Add(S); > Inc(PFin, Length(Balise)); //Saute la balise > PDeb:=PFin; > until False; > > //Si souhaité : accepte la dernière chaine non fermée > If Assigned(PDeb) then > begin > SetString(S, PDeb, PFin-PDeb); > Dest.Add(S); > End; > End; |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
Bruno Mannina a écrit :
> Salut Pascal, > > En fait c'est parce que il y a le x variable. > Est-ce que ton code prend en compte le fait que x varie de 1 à 999 ? > > la balise est : <br><br>x. il y a aussi un point aprés le x Non. J'avais cru que le "N." faisait partie du texte à récupérer. Si <br><br> n'apparait jamais dans le texte, il peut servir de balise et il suffit d'éliminer les caractères numériques et le point qui suivent. Sinon, ce n'est pas difficile de vérifier la présence de'un entier suivit d'un point après les doubles <br>. Par exemple en remplaçant les deux appels à (StrLiComp(...)= 0 par une petite fonction. |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Salut,
une Expression régulière toute bête comme ci dessous te permet de trouver la chaine complete <br><br>\d{1,3}\. il suffit ensuite d'extraire les nombre \d{1,3}\. Le plus simple est d'utiliser deux objets TRegExpr, un pour la recherche l'autre pour l'extraction Amicalement JJM |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
Re-Bonjour,
alors voilà avec cette expression régulière : const RE = '<br><br>\d{1,2}\.(.+?)<br><br>\d{1,2}\.'; j'obtiens une extraction sur deux, car le résultat de ma premiere extraction posséde le tag de debut de la deuxieme prhrase à extraire et donc, seul al troisième est vu. hum... je sais pas si j'ai été clair. Enfin je veux juste dire que en résultat j'ai <br><br>1. kldsjflksjdlkfsjdlkfjsdf<br><br>2. <br><br>3. qskllqksdkljqlksdjlqksjdlkqjslk<br><br>4. <br><br>5. etc... etc... Comment faire pour que mon expression régulière ne prenne pas le debut des prochaines chaines à Extraire ? Pour info, voici mon bout de code: s := sPhrase; R := TRegExpr.Create; Try R.Expression := RE; if r.Exec (s) then REPEAT showmessage(R.match[0]); UNTIL not R.ExecNext; Finally R.Free; End; Dans l'attente de vous lire, Amicalement, Bruno "Bruno Mannina" <bmannina@free.fr> a écrit dans le message de news: fmmij3$4dh$1@sd-6498.dedibox.fr... > Bonjour à tous, > > Est-ce quelqu'un pourrait m'aider à créer la boucle utilisant les > expressions régulières pour extraire > du texte se situant entre les chaines : > <br><br>x. > où x est un nombre variable suivi d'un point. > > Mon texte ressemble à ceci : > > <br><br>1. ceci est le texte un. il peut y avoir des , ; : ? etc... et > tout autres caractères<br><br>2. ceci > est mon deuxieme texte idem pour les caractères<br><br>3. ceci est mon > troiseme texte etc... > > Vous l'aurez compris, mon texte peut contenir n'importe quel caractères > excepté biensûr la chaine séparatrice. > > J'aimerais un boucle du style : > > R.Expression := '????' <== Là c'est à vous de m'aider > While S:=R.Exec(sMonTexte) and s<>'' do > showmessage(S); > > En fait je ne sais pas d'ailleurs comment utiliser les ExprReg pour > extraire les sous chaines ?? > > D'avance merci pour votre aide, dans l'attente de vous lire > Amicalement, > Bruno > |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
JJM a écrit :
> Salut, > > une Expression régulière toute bête comme ci dessous te permet de trouver la > chaine complete > <br><br>\d{1,3}\. > > il suffit ensuite d'extraire les nombre > \d{1,3}\. > > Le plus simple est d'utiliser deux objets TRegExpr, un pour la recherche > l'autre pour l'extraction > > Amicalement > JJM Bonjour Plus simple, probablement, mais côté efficacité ? Les expressions régulières impliquent une interprétation de l'expression, et vu la simplicité de sa balise, je suis plus porté par une recherche directe, d'où ma proposition - volontairement incomplète : il faut bien lui laisser un bout à faire, sinon il va s'ennuyer. ![]() Bien-sûr, s'il n'a que quelques instances à retrouver, on se fiche de la rapidité et des ressources consommées. Pour la curiosité (je n'ai pas manipulé les unités d'expréssions régulières en Delphi), l'équivalent de ma procédure (lecture dans une chaine et remplissage d'un TSrings) ressemblerait à quoi avec les fonctions d'expressions régulières ? (pour comparer avec ma proposition) |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
> Plus simple, probablement, mais côté efficacité ? C'est clairement moins efficace :-) Mais tellement plus simple et générique.. > (pour comparer avec ma proposition) Il est possible de faire une méthode d'extraction chaine / souchaine du genre (ps c'est plus ou moins du pseudo code non vérifié..) function ExtractEr(Const TheText, aEr, aSubEr : String) : TStrings; Var MyRegExpr1 := TRegExpr; MyRegExpr2 := TRegExpr; MyResult := TStrings; Procedure AddResult(Const Founded : String); begin MyRegExpr2.Text := Founded; if Not MyRegExpr2.Pos(0) then Exit; MyResult.Add(MyRegExpr2.Match[0]); While MyRegExpr2.Next do begin MyResult.Add(MyRegExpr2.Match[0]); end; end; begin MyResult := TStrings.Create; MyRegExpr1 := TRegExpr.create; MyRegExpr2 := TRegExpr.create; Try MyRegExpr2 := Expr := aSubEr MyRegExpr1.Text := ThText; MyRegExpr1.Expr := aEr; While True do begin if Not MyRegExpr1.Pos(0) then break; AddResult(MyRegExpr1.Match[0]); While MyRegExpr1.Next do begin AddResult(MyRegExpr1.Match[0]); end; end Result := MyResult; finally MyRegExpr1.free; MyRegExpr2.free; end; end; Amicalement JJM |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
Pardon, bonjour, :-)
Le pseudo code possède une erreur importante :-) > if Not MyRegExpr1.Pos(0) then break; C'est pas 0 mais I initialisé à 0 au départ et avec la i := Position+1 ensuite , sans quoi ca va boucler à plein tube :-) Amicalement, JJM |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
"JJM" <jjm@pasDeSpamSvp-Delphicenter.net> a écrit dans le message de news:
fmpddh$2ju$1@sd-6498.dedibox.fr... > Salut, > > une Expression régulière toute bête comme ci dessous te permet de trouver > la chaine complete > <br><br>\d{1,3}\. Hélas non car avec cette ER je ne trouve que : <br><br>1. <br><br>2. <br><br>3. <br><br>4. etc... mais pas le texte qui suit. A moins biensur que j'ai loupé quelque chose ?! Amicalement, Bruno |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
"Pascal Peyremorte" <p.peyremorte_oter_ces_mots@free.fr> a écrit dans le
message de news: fmpbi1$s3g$2@sd-6498.dedibox.fr... > Bruno Mannina a écrit : >> Salut Pascal, >> >> En fait c'est parce que il y a le x variable. >> Est-ce que ton code prend en compte le fait que x varie de 1 à 999 ? >> >> la balise est : <br><br>x. il y a aussi un point aprés le x > > Non. J'avais cru que le "N." faisait partie du texte à récupérer. Ok, pas de soucis, > Si <br><br> n'apparait jamais dans le texte, il peut servir de balise et > il suffit d'éliminer les caractères numériques et le point qui suivent. Hélas, je ne peux pas me servir de cette théorie, sinon j'aurai tout simplement remplacer <br><br> par une autre chaine contenant un debut et un fin de balise. > Sinon, ce n'est pas difficile de vérifier la présence de'un entier suivit > d'un point après les doubles <br>. Par exemple en remplaçant les deux > appels à (StrLiComp(...)= 0 par une petite fonction. > Oui effectivement. Amicalement, Bruno |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
> Hélas non car avec cette ER je ne trouve que :
> etc... mais pas le texte qui suit. Il faut la compléter en fonction de ce que tu cherches.. et la balise de fin Amicalement JJM |
|
|
|
#13 |
|
Messages: n/a
Hébergeur: |
Bruno Mannina a écrit :
> "Pascal Peyremorte" <p.peyremorte_oter_ces_mots@free.fr> a écrit dans le >> Sinon, ce n'est pas difficile de vérifier la présence de'un entier suivit >> d'un point après les doubles <br>. Par exemple en remplaçant les deux >> appels à (StrLiComp(...)= 0 par une petite fonction. >> > Oui effectivement. Je suis surpris que cette approche décourage autant. Elle fait peur ? :-) C'est pourtant de loin la plus rapide ! Encore mieux optimisée (qui fera plus rapide ?), ça ressemblerait à : Procedure ExtraitInfos(Const Source:String; Dest:TStringList); Const Balise:String = '<br><br>'; Var PDeb,PFin : PChar; //Debut et fin de texte à garder PLec:PChar; //Lecture de la chaine S:String; //Chaine extraite Function IsBalise:Boolean; Var PSauve:PChar; Begin Result:=StrLIComp(PLec,PChar(Balise),Length(Balise ))<>0; If Result then Begin //Partie fixe balise trouvée PFin:=PLec; //Pointe début balise=fin texte précédent Inc(PLec, Length(Balise)); //Saute la balise fixe While PLec^ in ['0'..'9'] do Inc(PLec); //Saute nombre Result:= (PLec^='.'); //Vérifie présence du point If Result then Inc(PLec); //Saute le point End; End; Begin PDeb:=Nil; PLec :=PChar(Source); //Cherche première balise While Not IsBalise do Begin If PLec^=#0 then Exit; //Aucune balise trouvée Inc(PLec); End; PDeb:=PLec; //Pointe début chaine à garder //Cherche balises suivante While PLec^<>#0 do Begin If IsBalise then Begin //extrait chaine depuis la précédente SetString(S, PDeb, PFin-PDeb); Dest.Add(S); PDeb:=PLec; //Pointe nouveau début End else Inc(PLec); End; //Si souhaité : accepte la dernière chaine non fermée If Assigned(PDeb) then begin SetString(S, PDeb, PLec-PDeb); Dest.Add(S); End; End; |
|
|
|
#14 |
|
Messages: n/a
Hébergeur: |
Bruno Mannina a écrit :
> Re-Bonjour, > > alors voilà avec cette expression régulière : > const > RE = '<br><br>\d{1,2}\.(.+?)<br><br>\d{1,2}\.'; > > j'obtiens une extraction sur deux, car le résultat de ma premiere extraction > posséde le tag de debut de la deuxieme prhrase à extraire > et donc, seul al troisième est vu. hum... je sais pas si j'ai été clair. > Enfin je veux juste dire que en résultat j'ai > > <br><br>1. kldsjflksjdlkfsjdlkfjsdf<br><br>2. > <br><br>3. qskllqksdkljqlksdjlqksjdlkqjslk<br><br>4. > <br><br>5. etc... > etc... > > Comment faire pour que mon expression régulière ne prenne pas le début des > prochaines chaines à Extraire ? Salut, Je ne connais pas assez les expressions régulières pour savoir s'il est possible d'y inclure une partie qui doit être présente mais qui ne sera pas retournée, et surtout qui ne fera pas avancer le pointeur de recherche... Si ce n'est pas possible, la seule solution est d'inclure dans l'expression une seule balise, et récupérer "à la main" le texte entre les balises. Ce n'est plus l'expression trouvée (la balise elle même) qui est importante, mais son emplacement en tant que séparateur. |
|
|
|
#15 |
|
Messages: n/a
Hébergeur: |
Pascal Peyremorte a écrit :
> Var PSauve:PChar; Oubli. Ne sert à rien. Peut être supprimé. (Ca fait désordre !) |
|
|
|
#16 |
|
Messages: n/a
Hébergeur: |
Bruno Mannina a couché sur son écran :
> Bonjour à tous, > > Est-ce quelqu'un pourrait m'aider à créer la boucle utilisant les expressions > régulières pour extraire > du texte se situant entre les chaines : > <br><br>x. > où x est un nombre variable suivi d'un point. > > Mon texte ressemble à ceci : > > <br><br>1. ceci est le texte un. il peut y avoir des , ; : ? etc... et tout > autres caractères<br><br>2. ceci > est mon deuxieme texte idem pour les caractères<br><br>3. ceci est mon > troiseme texte etc... > > Vous l'aurez compris, mon texte peut contenir n'importe quel caractères > excepté biensûr la chaine séparatrice. > > J'aimerais un boucle du style : > > R.Expression := '????' <== Là c'est à vous de m'aider > While S:=R.Exec(sMonTexte) and s<>'' do > showmessage(S); > > En fait je ne sais pas d'ailleurs comment utiliser les ExprReg pour extraire > les sous chaines ?? > > D'avance merci pour votre aide, dans l'attente de vous lire > Amicalement, > Bruno Sinon, il est possible d'utiliser un parser HTML disposant de sélecteurs CSS 3 et de lire les noeuds texte correspondant à un pattern d'imbrication de noeuds : Avec prototype.js (javascript) ca donnerait : mesNoeuds = $$('br + br ') (+ est le sélecteur de noeuds qui sont au même niveau d'imbrication) Chouette non ? -- Pierre Y. |
|
|
|
#17 |
|
Messages: n/a
Hébergeur: |
"JJM" <jjm@pasDeSpamSvp-Delphicenter.net> a écrit dans le message de news:
fmq9pp$apj$1@sd-6498.dedibox.fr... >> Hélas non car avec cette ER je ne trouve que : >> etc... mais pas le texte qui suit. > > Il faut la compléter en fonction de ce que tu cherches.. et la balise de > fin > > Amicalement > JJM Justement je veux tout ce qui se trouve apres la balise de début (toute sorte de caractère) et sans prendre la balise de fin. C'est bien là le problème. Amicalement, Bruno |
|
|
|
#18 |
|
Messages: n/a
Hébergeur: |
"Pascal Peyremorte" <p.peyremorte_oter_ces_mots@free.fr> a écrit dans le
message de news: fmqg7d$fun$2@sd-6498.dedibox.fr... > Pascal Peyremorte a écrit : >> Var PSauve:PChar; > > Oubli. > Ne sert à rien. > Peut être supprimé. > (Ca fait désordre !) Salut Pascal, Merci pour ton code source mais hélas chez moi cela ne fonctionne pas du tout avec mon fichier exemple, en fait il sort un peu n'importe quoi, il ne trouve meme pas la deuxieme balise qui est pourtant tres simple <br><br>2. j'ai mis en fichier join ce que j'utilise pour mon test. Merci encore pour ton aide, Amicalement, Bruno |
|
|
|
#19 |
|
Messages: n/a
Hébergeur: |
> Sinon, il est possible d'utiliser un parser HTML disposant de sélecteurs
> CSS 3 et de lire les noeuds texte correspondant à un pattern d'imbrication > de noeuds : > > Avec prototype.js (javascript) ca donnerait : > > mesNoeuds = $$('br + br ') > > (+ est le sélecteur de noeuds qui sont au même niveau d'imbrication) > > Chouette non ? Je doute qu'avec ce type d'utilisation on puisse tenir compte de la partie variable qui dans le texte et non dans un attribut. Mais comme je ne connais pas hélas... Cependant merci pour cette nouvelle piste. Amicalement, Bruno |
|
|
|
#20 |
|
Messages: n/a
Hébergeur: |
Bruno Mannina a écrit :
> Salut Pascal, > > Merci pour ton code source mais hélas chez moi cela ne fonctionne pas du > tout avec mon fichier exemple, en fait il sort Bonjour, * 2 minutes pour créer un nouveau projet et y mettre : 1 bouton, 1 open dialog 1 memo pour charger le fichier avec LoadFromFile 1 listbox pour mettre le résultat + copie de la routine que j'avais posté * 2 minutes pour voir que : - le premier PDeb=Nil ne sert plus à rien (reporté par delphi), - il faut remplacer <>0 par =0 dans la première ligne de la sous procédure (pardi !) et ça donne : C'est bien gentil de demander "un peu d'aide", mais fais l'effort de chercher un peu, quand même ! Bon, je veux bien faire ton programme entièrement, mais je le facture à qui ? :-) Pascal |
|
|
|
#21 |
|
Messages: n/a
Hébergeur: |
Bruno Mannina a écrit :
>> Sinon, il est possible d'utiliser un parser HTML disposant de sélecteurs >> CSS 3 et de lire les noeuds texte correspondant à un pattern d'imbrication >> de noeuds : >> >> Avec prototype.js (javascript) ca donnerait : >> >> mesNoeuds = $$('br + br ') >> >> (+ est le sélecteur de noeuds qui sont au même niveau d'imbrication) >> >> Chouette non ? > > Je doute qu'avec ce type d'utilisation on puisse tenir compte de la partie > variable qui dans le texte et non dans un attribut. Ce genre de préjugé moi ça me motive ;-) Voilà la version ruby + HPricot un parser [X]HTML qui dispose d'un excellent support des sélecteurs CSS 3 et d'un opérateur "/" vachement mignon : Ceci est le script intégral qui réalise exactement ce que tu veux : #!/bin/env ruby require 'hpricot' doc = Hpricot.parse(File.read("EP0714663.html")) (doc/"br + br + *").each do |n| puts n.to_s.strip end Output (sur STDOUT) : 1. Use for the manufacture of a medicament for potentiating the action of a first component chosen from the group consisting of citalopram, fluvoxamine and paroxetine in increasing the availability of serotonin, norepinephrine and dopamine in the brain, of a combination of a first component and a second component chosen from the group consisting of alprenolol, WAY 100135, WAY 100635, spiperone, pindolol, (S)-UH-301, penbutolol, propranolol, tertatolol, and a compound of the formula 2. A use of claim 1 wherein the first component is citalopram. 3. A use of claim 1 wherein the first component is fluvoxamine. 4. A use of claim 1 wherein the first component is paroxetine. 5. A use of any one of claims 1-4 wherein the second component is chosen from the group consisting of pindolol, penbutolol, propranolol, tertatolol, and 4-(2-hydroxy-3-cyclohexylaminopropoxy)indole. 6. Use for the manufacture of a medicament for treating a pathological condition which is created by or is dependent upon decreased availability of serotonin, norepinephrine or dopamine, of a first component chosen from the group consisting of citalopram, fluvoxamine and paroxetine, in combination with a second component chosen from the group consisting of alprenolol, WAY 100135, WAY 100635, spiperone, pindolol, (S)-UH-301, penbutolol, propranolol, tertatolol, and a compound of the formula 7. A use of claim 6 wherein the pathological condition is depression. 8. A use of claim 6 wherein the pathological condition is obsessive compulsive disease. 9. A use of any one of claims 6-8 wherein the second component is chosen from the group consisting of pindolol, penbutolol, propranolol, tertatolol, and 4-(2-hydroxy-3-cyclohexylaminopropoxy)indole. 10.A pharmaceutical composition which comprises a first component chosen from the group consisting of citalopram, fluvoxamine and paroxetine in combination with a second component chosen from the group consisting of alprenolol, WAY 100135, WAY 100635, spiperone, pindolol, (S)-UH-301, penbutolol, propranolol, tertatolol, and a compound of the formula 11. A composition of claim 10 wherein the second component is chosen from the group consisting of pindolol, penbutolol, propranolol, tertatolol and 4-(2-hydroxy-3-cyclohexylaminopropoxy)indole. Bon courage tout de même, @+ -- Pierre Y. KeyID : 0x7890CFE9 Viadéo : http://www.viadeo.com/invitationpers...221mij222775qk |
|
|
|
#22 |
|
Messages: n/a
Hébergeur: |
Salut Pascal,
C'est vrai j'ai honte, j'aurai pu faire au moins l'effort d'analyser ton prog si gentiment posté. Je m'en excuse encore. Autre chose qui m'a fait zapper un petit peu ton prog c'est que j'avais réussi avec les expressions régulières. Mille excuses une fois encore. Amicalement, Bruno "Pascal Peyremorte" <p.peyremorte_oter_ces_mots@free.fr> a écrit dans le message de news: fmt53e$252$1@sd-6498.dedibox.fr... Bruno Mannina a écrit : > Salut Pascal, > > Merci pour ton code source mais hélas chez moi cela ne fonctionne pas du > tout avec mon fichier exemple, en fait il sort Bonjour, * 2 minutes pour créer un nouveau projet et y mettre : 1 bouton, 1 open dialog 1 memo pour charger le fichier avec LoadFromFile 1 listbox pour mettre le résultat + copie de la routine que j'avais posté * 2 minutes pour voir que : - le premier PDeb=Nil ne sert plus à rien (reporté par delphi), - il faut remplacer <>0 par =0 dans la première ligne de la sous procédure (pardi !) et ça donne : C'est bien gentil de demander "un peu d'aide", mais fais l'effort de chercher un peu, quand même ! Bon, je veux bien faire ton programme entièrement, mais je le facture à qui ? :-) Pascal |
|
|
|
#23 |
|
Messages: n/a
Hébergeur: |
Bruno Mannina a écrit :
> Salut Pascal, > > C'est vrai j'ai honte, j'aurai pu faire au moins l'effort d'analyser > ton prog si gentiment posté. Je m'en excuse encore. > Autre chose qui m'a fait zapper un petit peu ton prog c'est que > j'avais réussi avec les expressions régulières. > > Mille excuses une fois encore. > > Amicalement, > Bruno Bonjour ! Comme "faute avouée est à moitié pardonnée" et qu' "un homme avertit en vaut deux", tu disposes de deux moitiés de pardon ! :-) A+ pour de nouvelles aventures ! Pascal |
|
![]() |
| Outils de la discussion | |
|
|