Page 2 sur 3

Re: Insérer des basiles href et target= "_blank" dans un tex

Publié : mer. 11/mars/2015 18:35
par SPH
Gally, peut etre que ton dernier code basé sur mon code marchera avec pb2web ! Ce serait l'essenciel :P

Re: Insérer des basiles href et target= "_blank" dans un tex

Publié : mer. 11/mars/2015 18:39
par SPH
falsam a écrit :@SPH: Merci ça Fonctionne avec SpiderBasic mais pas avec PB2Web pour une raison que je n'ai pas encore analysé.
Quand tu auras trouvé, tu me diras. Ca m'interesse de savoir ! 8)

Re: Insérer des basiles href et target= "_blank" dans un tex

Publié : mer. 11/mars/2015 20:17
par nico
Il peut y avoir des fins de lignes qui finissent par un point, genre:
la$="texte : http://www.clubic.com et https://manga.be florence et les autres.C'est pourquoi"

Sinon, voici le miens:

Code : Tout sélectionner

InitNetwork()

Procedure.s URL(Texte.s)
  Protected Count.l, Mot1.s, Mot2.s, Site.s, a.l
  Protected Result.s, EnTete$
  
  Result = Trim(Texte)
  Count = FindString(Texte, " ")
  
  For a = 1 To Count + 1
    Mot1 = StringField(Texte, a, " ")
    Mot1 = LCase(Mot1)
    If FindString(Mot1, ".") > 0 And Left(Mot1, 1) <> "."
      Debug Mot1
      If Left(Mot1, 4) <> "http"
        Mot2 = "http://" + Mot1
      Else
        Mot2 = Mot1
      EndIf 
      
      Site = GetURLPart(Mot2, #PB_URL_Site) 
      
      EnTete$ = GetHTTPHeader(Mot2)
      If FindString(EnTete$, "HTTP/1.1 200 OK")
        Result = ReplaceString(Result, Mot1, "<a href='" + Mot2 +"' target='_blank'>" + Site  +"</a>", #PB_String_NoCase)
      EndIf
      Mot1 = "" : Mot2 = "" : Site = ""
    EndIf
  Next a
  
  Result = ReplaceString(Result, "'", Chr(34))
  
  ProcedureReturn Result
EndProcedure


la$="texte : www.clubic.com et https://manga.be florence et les autres"

Debug URL(la$)


Re: Insérer des basiles href et target= "_blank" dans un tex

Publié : mer. 11/mars/2015 20:38
par SPH
nico a écrit :Il peut y avoir des fins de lignes qui finissent par un point, genre:
la$="texte : http://www.clubic.com et https://manga.be florence et les autres.C'est pourquoi"
Mon code gere de genre de tournure de phrase. :P

Vivement que falsam trouve ce qui est incompatible avec pb2web :idea:

Re: Insérer des basiles href et target= "_blank" dans un tex

Publié : mer. 11/mars/2015 20:47
par nico
Et le code que j'ai posté est compatible ou pas, je n'ai pas installé SpiderBasic.

Re: Insérer des basiles href et target= "_blank" dans un tex

Publié : mer. 11/mars/2015 20:51
par SPH
nico a écrit :Et le code que j'ai posté est compatible ou pas, je n'ai pas installé SpiderBasic.
Moi non plus, je n'ai pas SB :|

Re: Insérer des basiles href et target= "_blank" dans un tex

Publié : jeu. 12/mars/2015 10:19
par Marc56
Hello,

J'ai cherché pourquoi ma version (avec les regex) ne fonctionne pas dans SB (1.0 B2 x86): les fonctions liées à la gestion des expressions régulières sont bien moins nombreuses que celle dans la version 5.31

Command Index (SB 1.0 B2)

CreateRegularExpression
ExtractRegularExpression
FreeRegularExpression
IsRegularExpression
MatchRegularExpression
RegularExpressionError
ReplaceRegularExpression

Sommaire des commandes (PB 5.31)

CountRegularExpressionGroups
CreateRegularExpression
ExamineRegularExpression
ExtractRegularExpression
FreeRegularExpression
IsRegularExpression
MatchRegularExpression
NextRegularExpressionMatch
RegularExpressionError
RegularExpressionGroup
RegularExpressionGroupLength
RegularExpressionGroupPosition
RegularExpressionMatchLength
RegularExpressionMatchPosition
RegularExpressionMatchString
RegularExpressionNamedGroup
RegularExpressionNamedGroupLength
RegularExpressionNamedGroupPosition
ReplaceRegularExpression

On n'a pas notamment les deux commandes en gras, que j'avais utilisé.

J'ai donc adapté mon petit code en me basant sur l'exemple de l'aide sur la commande de base ExtractRegularExpression() et réalisé ceci:

Code : Tout sélectionner

Buffer$ = "Cliques sur ce lien https://www.youtube.com/?hl=fr&gl=FR ou sur http://youtube.com ou www.google.fr"
Regexp$ = "(www|https?://)([^\s]+)"

If CreateRegularExpression(0, Regexp$)
  Dim Result$(0)
  NbFound = ExtractRegularExpression(0, Buffer$, Result$())
  For k = 0 To NbFound-1
    Debug Result$(k)
  Next
Else
  Debug RegularExpressionError()
EndIf
et ça marche :D

PS. Mon expression régulière est rudimentaire, puisqu'elle cherche:
- Commence par www ou http:// ou https://
- Suivi de n'importe quoi sauf un 'espace' (= espace ou saut de ligne, saut de page, retour chariot ou tab)

Off Topic/Forum: Je viens de faire l'essai avec PB2Web (v20150302) (je n'utilise pas, mais j'ai installé pour faire le test)
(L'exemple de base de pb2web fonctionne, donc ma config est ok (apache 2.2.25 sur Windows 8.1))

Même programme mais en ajoutant la ligne 'IncludeFile "c:\pb2web\p2w.pbi"' comme demandé par le message
et j'ai un message d'erreur 'Script error.
file:///C:/Users/Marc/AppData/Local/Temp/application.js
0'
Donc effectivement il y a quelque chose qu'il ne digère pas alors que Spider et PB sont OK
application.js est bien généré, mais comme j'y connais rien en js, je peux pas dire ce qui cloche :?: :?
:wink:

Re: Insérer des basiles href et target= "_blank" dans un tex

Publié : jeu. 12/mars/2015 11:39
par falsam
Bonjour Marc56.
Marc56 a écrit :je peux pas dire ce qui cloche
Les fonctionnalités PureBasic liées aux expressions réguliere ne sont pas implémentées dans PB2Web.

A part ça, j'aime les gens comme toi qui s'acharnent sur la recherche d'une solution. Merci :)

Re: Insérer des basiles href et target= "_blank" dans un tex

Publié : jeu. 12/mars/2015 12:35
par GallyHC
Encore une petite modification du code de SPH

Code : Tout sélectionner

Define i.i
Define.s stxt, result, text ="texte : http://www.clubic.com et https://manga.be florence et les autres et www.koakdesign.info"

Repeat
  i = FindString(text, " ", 1)
  If i = 0
    stxt = text
    text = #NULL$
  Else
    stxt = Mid(text, 1, i - 1)
    text = Right(text, Len(text) - i)
  EndIf
  If LCase(Left(stxt, 7)) = "http://" Or LCase(Left(stxt, 8)) = "https://" Or LCase(Left(stxt, 4)) = "www."
    result + "<a href=" + Chr(34) + stxt + Chr(34) + " target=" + Chr(34) + "_blank" + Chr(34) + ">" + stxt + "</a>"
  Else
    result + stxt
  EndIf
  If text <> #NULL$
    result + " "
  EndIf
Until text = #NULL$


Debug "*" + result + "*"
gallyhc

Re: Insérer des basiles href et target= "_blank" dans un tex

Publié : jeu. 12/mars/2015 14:27
par GallyHC
Une autre version

Code : Tout sélectionner

EnableExplicit

Procedure.s urlifier(stext.s)
;
  Define.i i, urlnum
  Define.s stemp, result

  If stext <> #NULL$
    urlnum = CountString(stext, " ")
    For i=0 To urlnum
      stemp = StringField(stext, i + 1, " ")
      If LCase(Left(stemp, 7)) = "http://" Or LCase(Left(stemp, 8)) = "https://" Or LCase(Left(stemp, 4)) = "www."
        result + "<a href=" + Chr(34) + stemp + Chr(34) + " target=" + Chr(34) + "_blank" + Chr(34) + ">" + stemp + "</a>"
      Else
        result + stemp
      EndIf
      If i < urlnum
        result + " "
      EndIf
    Next i
    ProcedureReturn result
  EndIf

EndProcedure

Define Buffer.s = "Cliques sur ce lien https://www.youtube.com/?hl=fr&gl=FR ou sur http://youtube.com ou encore www.koakdesign.info"
Debug urlifier(Buffer)

Buffer = "https://www.youtube.com/?hl=fr&gl=FR http://youtube.com ou encore www.koakdesign.info"
Debug urlifier(Buffer)

Buffer = "Cliques sur ce lien www.koakdesign.info"
Debug urlifier(Buffer)

Buffer = "Cliques"
Debug urlifier(Buffer)
GallyHC

Re: Insérer des basiles href et target= "_blank" dans un tex

Publié : jeu. 12/mars/2015 14:30
par Marc56
falsam a écrit :A part ça, j'aime les gens comme toi qui s'acharnent sur la recherche d'une solution. Merci :)
Merci falsam,

En fait je fais ça (et bien d'autres choses) en grande partie aussi pour (essayer de) me créer des nouveaux synapses (puisqu'il parait qu'on en fait tout le temps contrairement à ce qu'on croyait avant, mais c'était avant) La "quinquagénitude" est déjà passée (52 le mois prochain) il faut donc agiter les neurones sinon ils rouillent vite :?
Donc, je me suis remis à la programmation et suis en train de reprendre un certain nombre de petits programmes juste pour leur ajouter des fonctionnalités que je n'avais jamais essayé dans d'autres environnement (le multi-tache, le drag-n-drop). Le deuxième objectif étant la programmation Zen: Le minimum de lignes de code et le plus épuré/lisible possible :wink:

"We choose to go to the moon. We choose to go to the moon in this decade and do the other things, not because they are easy, but because they are hard, because that goal will serve to organize and measure the best of our energies and skills, because that challenge is one that we are willing to accept, one we are unwilling to postpone, and one which we intend to win, and the others, too."
- JFK - discours du 12 septembre 1952 -
« Nous avons choisi d'aller sur la Lune. Nous avons choisi d'aller sur la Lune au cours de cette décennie et d'accomplir d'autres choses encore, non pas parce que c'est facile, mais justement parce que c'est difficile. Parce que cet objectif servira à organiser et à offrir le meilleur de notre énergie et de notre savoir-faire, parce que c'est le défi que nous sommes prêt à relever, celui que nous refusons de remettre à plus tard, celui que nous avons la ferme intention de remporter, tout comme les autres. »
Source: http://fr.wikipedia.org/wiki/We_choose_ ... o_the_Moon

s/go to the moon/programming/
s/decade/now/
:mrgreen:

Re: Insérer des basiles href et target= "_blank" dans un tex

Publié : jeu. 12/mars/2015 15:33
par Mindphazer
Marc56 a écrit : - JFK - discours du 12 septembre 1952 -
« Nous avons choisi d'aller sur la Lune. Nous avons choisi d'aller sur la Lune au cours de cette décennie et d'accomplir d'autres choses encore, non pas parce que c'est facile, mais justement parce que c'est difficile. Parce que cet objectif servira à organiser et à offrir le meilleur de notre énergie et de notre savoir-faire, parce que c'est le défi que nous sommes prêt à relever, celui que nous refusons de remettre à plus tard, celui que nous avons la ferme intention de remporter, tout comme les autres. »
Source: http://fr.wikipedia.org/wiki/We_choose_ ... o_the_Moon

s/go to the moon/programming/
s/decade/now/
:mrgreen:
Si je peux me permettre une correction, c'était le 12 septembre 1962 :-)

Re: Insérer des basiles href et target= "_blank" dans un tex

Publié : jeu. 12/mars/2015 15:37
par Marc56
Mindphazer a écrit :Si je peux me permettre une correction, c'était le 12 septembre 1962 :-)
Oups, Merci,
(et encore quelques uns de mes neurones qui ont foutu le camps entre la lecture et l'écriture) :mrgreen:

Re: Insérer des basiles href et target= "_blank" dans un tex

Publié : jeu. 12/mars/2015 22:40
par GallyHC
Petite correction pour un problème sur la conversion des url avec juste "www.", il faut forcement avoir "http://" avant pour href=""

Code : Tout sélectionner

EnableExplicit

; +--------------------------------------------------------------------------+
; |                                                                          |
; +--------------------------------------------------------------------------+

Procedure.s TextToURL(stext.s)
;
  Protected i.i       = 0
  Protected urlnum.i  = 0
  Protected stemp.s   = #NULL$
  Protected result.s  = #NULL$

  If stext <> #NULL$
    urlnum = CountString(stext, " ")
    For i=0 To urlnum
      stemp = StringField(stext, i + 1, " ")
      If LCase(Left(stemp, 7)) = "http://" Or LCase(Left(stemp, 8)) = "https://" Or LCase(Left(stemp, 4)) = "www."
        If LCase(Left(stemp, 4)) <> "www."
          result + "<a href=" + Chr(34) + stemp + Chr(34) + " target=" + Chr(34) + "_blank" + Chr(34) + ">" + stemp + "</a>"
        Else
          result + "<a href=" + Chr(34) + "http://" + stemp + Chr(34) + " target=" + Chr(34) + "_blank" + Chr(34) + ">" + stemp + "</a>"
        EndIf         
      Else
        result + stemp
      EndIf
      If i < urlnum
        result + " "
      EndIf
    Next i
    ProcedureReturn result
  EndIf

EndProcedure

; +--------------------------------------------------------------------------+
; |                                                                          |
; +--------------------------------------------------------------------------+

Define Buffer.s = "Cliques sur ce lien https://www.youtube.com/?hl=fr&gl=FR ou sur http://youtube.com ou encore www.koakdesign.info"
Debug TextToURL(Buffer)

Buffer = "https://www.youtube.com/?hl=fr&gl=FR http://youtube.com ou encore www.koakdesign.info"
Debug TextToURL(Buffer)

Buffer = "Cliques sur ce lien www.koakdesign.info"
Debug TextToURL(Buffer)

Buffer = "Cliques"
Debug TextToURL(Buffer)
GallyHC

Re: Insérer des basiles href et target= "_blank" dans un tex

Publié : dim. 15/mars/2015 0:27
par SPH
je ne sais pas du tout si je suis hors sujet mais je voulais parler des ameliorations du tchat :

- Faire un /help
- Faire un note edit obligatoire !!
- retirer la visualisation des ip
- faire une balise de la grosseur des fonts
- changer la couleur des textes (SI c'est possible bien sur...)
- Interdire de prendre un pseudo deja pris!!!