FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Gestion d'un système client-serveur.
Sub de conversion Html -> Texte Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Sub de conversion Html -> Texte Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Sub de conversion Html -> Texte Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Sub de conversion Html -> Texte Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Sub de conversion Html -> Texte Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Sub de conversion Html -> Texte Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Sub de conversion Html -> Texte Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Sub de conversion Html -> Texte Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Sub de conversion Html -> Texte Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Sub de conversion Html -> Texte Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Sub de conversion Html -> Texte Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Sub de conversion Html -> Texte Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Sub de conversion Html -> Texte Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Sub de conversion Html -> Texte Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Sub de conversion Html -> Texte Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment :
Cartes Pokémon EV6.5 : où trouver le ...
Voir le deal

 

 Sub de conversion Html -> Texte

Aller en bas 
2 participants
AuteurMessage
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Sub de conversion Html -> Texte Empty
MessageSujet: Sub de conversion Html -> Texte   Sub de conversion Html -> Texte EmptySam 19 Juil 2014 - 15:25

Une petite sub de conversion, j'utilisais un programme externe gratuit (HtmlAsText) mais on peut très bien le faire en Panoramic pur (ni programme externe, ni dll) pour un usage simple.
Le résultat est du texte brut avec suppression des balises, remplacement de quelques caractères spéciaux (à compléter éventuellement), les seules balises prises en compte sont les sauts de ligne, pour la clarté du résultat.
Après, on analyse le résultat pour chercher ce qu'on veut.
(voir une application dans 'présentation et bavardage...', 'surveillance du forum').

L'astuce principale qui facilite bien les choses est de lire intégralement le fichier source dans une seule variable.
C'est possible grâce à la commande FILE_READBUF n,V$,c (lecture de c octets du fichier n dans V$) qui par bonheur n'est pas limitée en taille de lecture et est très rapide. C'est fait en principe pour les fichiers texte, ça marche aussi pour les fichiers binaires, avec l'inconvénient majeur de se bloquer sur le caractère '26' (=&h1A), qu'on ne trouve heureusement pas dans les fichiers html (qui sont des fichiers de type texte).
(pour du binaire, il y a une dll de l'ami Klaus qui fait ça très bien, sans perte).
A partir de là c'est très facile d'analyser le contenu de la variable obtenue avec des INSTR()

Cette sub est très améliorable, je n'ai supprimé que les balises et les scripts, mais il y a des structures html qui passent à travers, il faudrait l'essayer avec divers types de fichiers pour peaufiner.

Voici:
Code:

SUB Html2Txt(f$,ft$)
' conversion fichier html f$ en fichier texte brut dans ft$
DIM_LOCAL a$,s$,ba$,k%,k1%,ns%,csp$(20),crm$(20)
DATA "Carspe": ' caractères spéciaux, à remplacer (à compléter éventuellement)
DATA " ","<",">","&",""","»","F": ' caractère à remplacer
DATA " ","<",">","&",CHR$(34),CHR$(13)+CHR$(10)+CHR$(187): ' caractère(s) de remplacement
ns% = 0: RESTORE: READ a$: WHILE a$<>"Carspe": message a$: READ a$: END_WHILE: READ a$
WHILE a$<>"F": ns%=ns%+1: csp$(ns%) = a$: READ a$: END_WHILE
FOR k% = 1 TO ns%: READ a$: crm$(k%) = a$: NEXT k%
' lecture intégrale du fichier htm dans la variable a$
FILEBIN_OPEN_READ 9,f$: k% = FILEBIN_SIZE(9): FILEBIN_CLOSE 9
FILE_OPEN_READ 9,f$: FILE_READBUF 9,a$,k%: FILE_CLOSE 9
k% = INSTR(a$,"</head>"): IF k%=0 THEN message "Pas de balise </head>": EXIT_SUB
a$ = MID$(a$,k%+7,LEN(a$))
' suppression des balises <script...>...</script> et <style...>...</style> et de
' leur contenu
k% = INSTR(a$,"<script")
WHILE k%>0
    k1% =INSTR(a$,"</script>"): a$ = LEFT$(a$,k%-1)+MID$(a$,k1%+9,LEN(a$))
    k% = INSTR(a$,"<script")
END_WHILE
k% = INSTR(a$,"<style")
WHILE k%>0
    k1% =INSTR(a$,"</style>"): a$ = LEFT$(a$,k%-1)+MID$(a$,k1%+8,LEN(a$))
    k% = INSTR(a$,"<style")
END_WHILE
' suppression de toutes les balises (on garde les sauts de lignes, pour lisibilité)
k% = INSTR(a$,"<")
WHILE k% > 0
    k1% = INSTR_POS(a$,">",k%): ba$ = MID$(a$,k%,k1%-k%+1): ' balise trouvée
    IF LEFT$(ba$,3) = "<br": ' saut de ligne
        a$ = LEFT$(a$,k%-1)+CHR$(13)+CHR$(10)+MID$(a$,k1%+1,LEN(a$))
    ELSE
        a$ = LEFT$(a$,k%-1)+MID$(a$,k1%+1,LEN(a$)): ' suppression
    END_IF
    k% = INSTR(a$,"<")
END_WHILE
' remplacement des caractères spéciaux
FOR k% = 1 TO ns%
    s$ = csp$(k%): k1% = INSTR(a$,s$)
    WHILE k1%>0
        a$ = LEFT$(a$,k1%-1)+crm$(k%)+MID$(a$,k1%+LEN(s$),LEN(a$))
        k1% = INSTR(a$,s$)
    END_WHILE
NEXT k%
FILE_OPEN_WRITE 9,ft$: FILE_WRITELN 9,a$: FILE_CLOSE 9
END_SUB


Dernière édition par JL35 le Sam 19 Juil 2014 - 17:16, édité 2 fois
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Sub de conversion Html -> Texte Empty
MessageSujet: Re: Sub de conversion Html -> Texte   Sub de conversion Html -> Texte EmptySam 19 Juil 2014 - 16:48

Merci JL35, je n'essayerais pas de l'améliorer cette semaine (on me reproche déjà d'être trop sur l'ordi...) mais dans 10 jours, je pense que je creuserais un peu, c'est une sub très pratique.
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Sub de conversion Html -> Texte Empty
MessageSujet: Re: Sub de conversion Html -> Texte   Sub de conversion Html -> Texte EmptySam 19 Juil 2014 - 16:58

Bonjour Jicehel, déjà une petite modif: suppression en plus des balises <style...> </style> et de leur contenu, sans intérêt pour le but cherché.
Pour ce qui est de la page d'accueil du forum (= 12 pages imprimées en htm, un vrai fouillis), il n'y a plus de données parasites dans le fichier résultat.

Et puis ils ont raison, profite un peu de tes vacances, tu devrais être à la plage là  Very Happy 

Je répète que le but est d'obtenir du texte brut, sans mise en page (ou alors minimum pour que ce soit lisible, et surtout facile à analyser. Ça peut effectivement être très pratique, et en plus sous forme de sub.
On peut certainement faire quelque chose de plus subtil et plus joli, mais ça risque de se transformer très vite en usine à gaz !
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 51
Localisation : 77500
Date d'inscription : 18/04/2011

Sub de conversion Html -> Texte Empty
MessageSujet: Re: Sub de conversion Html -> Texte   Sub de conversion Html -> Texte EmptySam 19 Juil 2014 - 22:34

C'est vrai, après, je pense que l'on peut faire une procédure mère avec des paramètres pour choisir le mode de récupération genre RecuperePageHTML(Chemin,ModeDeSortie), avec ModeDeSortie pouvant être "TexteBrut", "TexteMisEnForme" (Pour la taille de la police, le gras, italique, souligné, ...), "TexteHTML" (Des pavé de texte avec des balises HTML) et je ne sais encore quels autres modes. Le premier "TexteBrut" appelerait ta porcédure
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Sub de conversion Html -> Texte Empty
MessageSujet: Re: Sub de conversion Html -> Texte   Sub de conversion Html -> Texte EmptyDim 20 Juil 2014 - 0:15

C'est certain qu'on peut faire tout ça, perso je ne le ferai pas, ça me paraît bien complexe a priori de respecter la mise en forme du texte, et de faire tenir ça dans une sub, ça fait un paquet de paramètres à analyser.
Mais bon, c'est possible, et si on en a l'usage, ce qui n'est pas mon cas, toujours a priori, pourquoi pas.
Revenir en haut Aller en bas
Contenu sponsorisé





Sub de conversion Html -> Texte Empty
MessageSujet: Re: Sub de conversion Html -> Texte   Sub de conversion Html -> Texte Empty

Revenir en haut Aller en bas
 
Sub de conversion Html -> Texte
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Conversion TSL/RVB
» Conversion texte en rtf
» Conversion de fichiers texte OEM vers ANSI
» Conversion txt en rtf
» Conversion RGB/HSV

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: