
Insérer des basiles href et target= "_blank" dans un texte
Re: Insérer des basiles href et target= "_blank" dans un tex
Gally, peut etre que ton dernier code basé sur mon code marchera avec pb2web ! Ce serait l'essenciel 

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Insérer des basiles href et target= "_blank" dans un tex
Quand tu auras trouvé, tu me diras. Ca m'interesse de savoir !falsam a écrit :@SPH: Merci ça Fonctionne avec SpiderBasic mais pas avec PB2Web pour une raison que je n'ai pas encore analysé.

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Insérer des basiles href et target= "_blank" dans un tex
Il peut y avoir des fins de lignes qui finissent par un point, genre:
Sinon, voici le miens:
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
Mon code gere de genre de tournure de phrase.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"

Vivement que falsam trouve ce qui est incompatible avec pb2web

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Insérer des basiles href et target= "_blank" dans un tex
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
Moi non plus, je n'ai pas SBnico a écrit :Et le code que j'ai posté est compatible ou pas, je n'ai pas installé SpiderBasic.

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Re: Insérer des basiles href et target= "_blank" dans un tex
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:
et ça marche 
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

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

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



- falsam
- Messages : 7324
- Inscription : dim. 22/août/2010 15:24
- Localisation : IDF (Yvelines)
- Contact :
Re: Insérer des basiles href et target= "_blank" dans un tex
Bonjour Marc56.
A part ça, j'aime les gens comme toi qui s'acharnent sur la recherche d'une solution. Merci
Les fonctionnalités PureBasic liées aux expressions réguliere ne sont pas implémentées dans PB2Web.Marc56 a écrit :je peux pas dire ce qui cloche
A part ça, j'aime les gens comme toi qui s'acharnent sur la recherche d'une solution. Merci

Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Re: Insérer des basiles href et target= "_blank" dans un tex
Encore une petite modification du code de SPH
gallyhc
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 + "*"
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: Insérer des basiles href et target= "_blank" dans un tex
Une autre version
GallyHC
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)
Dernière modification par GallyHC le jeu. 12/mars/2015 17:16, modifié 4 fois.
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: Insérer des basiles href et target= "_blank" dans un tex
Merci falsam,falsam a écrit :A part ça, j'aime les gens comme toi qui s'acharnent sur la recherche d'une solution. Merci
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

"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/

- Mindphazer
- Messages : 695
- Inscription : mer. 24/août/2005 10:42
Re: Insérer des basiles href et target= "_blank" dans un tex
Si je peux me permettre une correction, c'était le 12 septembre 1962Marc56 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/

Bureau : Win10 64bits
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Maison : Macbook Pro M3 16" SSD 512 Go / Ram 24 Go - iPad Pro 32 Go (pour madame) - iPhone 15 Pro Max 256 Go
Re: Insérer des basiles href et target= "_blank" dans un tex
Oups, Merci,Mindphazer a écrit :Si je peux me permettre une correction, c'était le 12 septembre 1962
(et encore quelques uns de mes neurones qui ont foutu le camps entre la lecture et l'écriture)

Re: Insérer des basiles href et target= "_blank" dans un tex
Petite correction pour un problème sur la conversion des url avec juste "www.", il faut forcement avoir "http://" avant pour href=""
GallyHC
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)
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Re: Insérer des basiles href et target= "_blank" dans un tex
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!!!
- 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!!!
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits