Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1721 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  parcours fichier HTML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

parcours fichier HTML

n°2178991
jeremyL1
Posté le 06-03-2013 à 15:22:20  profilanswer
 

bonjour à tous
 
contexte :  
 
j'ai un fichier HTML
un dossier contenant des photo
 
le fichier HTML utilise certaines des photos du dossier.
 
but :  
 
Supprimer les photos non-utilisées  
 
démarche envisagée
 
parcours du HTML
récupération de tout les noms des images .jpg
parcours de mon dossier image
 
si l'image de mon dossier n'est pas présente dasn la liste des noms, je la supprime
sinon je passe a la deuxième image du dossier.
 
je me bat mais pas moyen de m'en sortir.
 
pouvez vous m'aider?

mood
Publicité
Posté le 06-03-2013 à 15:22:20  profilanswer
 

n°2179016
crom29
Posté le 06-03-2013 à 16:44:00  profilanswer
 

Je te conseille d'utiliser TinyXML2 (http://www.grinninglizard.com/tinyxml2/index.html)
C'est un parser XML multiplateforme qui fonctionne comme le DOM en javascript. Il va te permettre de récupérer (et modifier?) assez facilement des données dans un document XML.
Et en plus il est très simple à installer : il suffit juste de l'inclure dans le projet comme si c'était un fichier source classique que tu aurait écrit.

 

Pour parcourir les fichiers et dossier, utilise "dirent.h"
Il est lui aussi multiplateforme et est distribué avec le compilateur (pas de fichiers supplémentaires à installer)
Voici le tuto du site du zéro :
http://www.siteduzero.com/informat [...] c-dirent-h

 

EDIT:
Pour supprimer un fichier, il y a une fonction "remove" dans stdio:
http://www.cplusplus.com/reference/cstdio/remove/


Message édité par crom29 le 06-03-2013 à 16:53:23

---------------
Mods: HAF922 | Shinobi XL White    GitHub     Admin de La Colère d'Aurile, serveur RP-Action Neverwinter Nights 2
n°2179020
jeremyL1
Posté le 06-03-2013 à 17:00:41  profilanswer
 

le fait que c'est un fichier HTML que j'ai a traiter ca marchera quand meme avec tinyxml??

n°2179022
gilou
Modérateur
Modzilla
Posté le 06-03-2013 à 17:03:06  profilanswer
 

Ça a besoin d'être fait en C++?
C'est le genre de chose qui se fait rapide en perl, ça.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2179051
crom29
Posté le 06-03-2013 à 18:28:59  profilanswer
 

un fichier HTML réponds aux normes XML et est donc un document XML ;)
 
C'est vrai qu'il existe d'autres langages plus pratiques pour faire ça ^^


---------------
Mods: HAF922 | Shinobi XL White    GitHub     Admin de La Colère d'Aurile, serveur RP-Action Neverwinter Nights 2
n°2179063
gilou
Modérateur
Modzilla
Posté le 06-03-2013 à 19:29:07  profilanswer
 

crom29 a écrit :

un fichier HTML réponds aux normes XML et est donc un document XML ;)
 
C'est vrai qu'il existe d'autres langages plus pratiques pour faire ça ^^

Euh non!
Un tag meta ou link pas fermé par un /> ou un tag fermant c'est pas du XML.
A+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2179073
jeremyL1
Posté le 06-03-2013 à 20:43:13  profilanswer
 

oui ca doit etre fait en c++ car c un morceau d'une application c++ plus importante :)
 
si je lit une ligne que la SPLIT ?
 

n°2179088
gilou
Modérateur
Modzilla
Posté le 06-03-2013 à 22:14:43  profilanswer
 

Citation :

si je lit une ligne que la SPLIT ?

Et en français, ça veut dire quoi?
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2179119
jeremyL1
Posté le 07-03-2013 à 08:27:23  profilanswer
 

pardon pour la réponse non française ;)
 
si je lit une par une les ligne de mon fichier a linstar d'un fichier txt
 
que pour chaque ligne je split avec comme séparateur [" "],  
que je recherche dans mon split l'extension JPG
 

n°2179130
gilou
Modérateur
Modzilla
Posté le 07-03-2013 à 10:20:16  profilanswer
 

C'est pas une mauvaise idée, mais à moins d'en savoir plus sur ton fichier html (qui est peut être généré avec des contraintes particulières), tu ne seras pas certain que ce que tu as trouvé est dans un tag image, en particulier si ton fichier a le tag coupé sur deux lignes:

<p> avec une ligne qui est coupée ainsi <img
 src="smiley.gif" alt="Smiley face" height="42"
 width="42">


A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
mood
Publicité
Posté le 07-03-2013 à 10:20:16  profilanswer
 

n°2179134
jeremyL1
Posté le 07-03-2013 à 10:39:00  profilanswer
 

le fichier HTML est généré automatiquement en sorti de CATIA...

 

par contre si je split ma ligne

 

je fait un Endwith(".JPG" )

 

et apres je resplit avec comme séparateur [ " ]

 

ainsi

 

string de base <img src="smiley.gif" alt="Smiley face" height="42" width="42">

 

string splité <img | src="smiley.gif" | alt="Smiley | face" | height="42" | width="42">

 

String finissant par " *.gif "    src="smiley.gif"

 

split par [ " ] => smiley.gif

 


Ma question du coup comment avec la bibliothèque STDIO, je doit faire pour lire l'intégralité de ma ligne et la mettre dans un string, et surtout comment passer a la ligne d'apres...


Message édité par jeremyL1 le 07-03-2013 à 10:41:51
n°2179177
gilou
Modérateur
Modzilla
Posté le 07-03-2013 à 12:09:09  profilanswer
 

Qu'est-ce que la librairie stdio vient faire ici? si tu écris en C++, tu as la librairie standard avec getline de disponible.
Sinon, autant faire du C.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2179198
jeremyL1
Posté le 07-03-2013 à 14:51:31  profilanswer
 

Code :
  1. FILE * pFile;
  2. String ^chemin = "c:\\home\\fichier.html";
  3. char* ch = static_cast<char *>(System::Runtime::InteropServices::Marshall::StringToHGlobalAnsi(chemin).ToPointer());
  4. pFile = fopen (ch,"r" );
  5. if (pFile !=NULL)
  6. {
  7.     //traitement
  8.     // comment faire le getline...
  9.    fclose(pFile);
  10. }


 
VOila en gros comment je fait mon ouverture de fichier...

n°2179201
crom29
Posté le 07-03-2013 à 15:04:52  profilanswer
 

pfiou c'est méchament hybride C/C++ ça ^^

 

Si tu veux faire en C, de mémoire c'est comme ça:

Code :
  1. #define BUFFER_SIZE 100
  2. [...]
  3. char* input[BUFFER_SIZE] = {0};
  4. getline(input, BUFFER_SIZE, pFile);
 

@gilou : Merci de la précision pour le "/>" ;)
TinyXML2 fonctionne en tout cas très bien avec le HTML


Message édité par crom29 le 07-03-2013 à 15:06:41

---------------
Mods: HAF922 | Shinobi XL White    GitHub     Admin de La Colère d'Aurile, serveur RP-Action Neverwinter Nights 2
n°2179202
jeremyL1
Posté le 07-03-2013 à 15:09:31  profilanswer
 

ca marche apres le fait que c'est pas un programme robuste, ce n'est aps très grave.
 
mon getline ne focntionne pas ....

n°2179221
gilou
Modérateur
Modzilla
Posté le 07-03-2013 à 17:16:22  profilanswer
 

jeremyL1 a écrit :

Code :
  1. FILE * pFile;
  2. String ^chemin = "c:\\home\\fichier.html";
  3. char* ch = static_cast<char *>(System::Runtime::InteropServices::Marshall::StringToHGlobalAnsi(chemin).ToPointer());
  4. pFile = fopen (ch,"r" );
  5. if (pFile !=NULL)
  6. {
  7.     //traitement
  8.     // comment faire le getline...
  9.    fclose(pFile);
  10. }


 
VOila en gros comment je fait mon ouverture de fichier...

Oui, mais ça c'est pas exactement du C++
C'est un mélange de code C et de C++-managed de Microsoft (truc qui n'est pas exactement du C++, comme on le voit avec String ^chemin) spécifique à Windows.
 
En C++ standard, on va faire:

Code :
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. using namespace std;
  5. ........
  6.   string line;
  7.   ifstream myfile ("c:\\home\\fichier.html" );
  8.   if (myfile.is_open())
  9.   {
  10.     while ( myfile.good() )
  11.     {
  12.       getline (myfile,line);
  13.       // et on traite ensuite la ligne
  14.     }
  15.     myfile.close();
  16.   }


 
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  parcours fichier HTML

 

Sujets relatifs
HTML tableau colspanVBA : Copier/Coller cellule d'un fichier en lecture seule
Supprimer la ligne X d'un fichier txtSignature HTML à l'aide svp - superposition a href sur image
comment enregistrer le chemin d'un fichier pdf dans une BD[Résolu]Copier fichier das un autre avec dossier date et heure
Macro VBA Excel pour écrire dans un fichierCode Html pour une fonction multiplication (débutant)
déplacement fichier sur lecteur réseau 
Plus de sujets relatifs à : parcours fichier HTML


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR