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

  FORUM HardWare.fr
  Programmation
  C++

  Reformater le contenu d'un fichier txt en html [RESOLU]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Reformater le contenu d'un fichier txt en html [RESOLU]

n°1392978
Thordax
Shop smart. Shop S-Mart !
Posté le 22-06-2006 à 17:24:49  profilanswer
 

Mon probleme est simple, j'ai un fichier texte de ce style :
 

Citation :

____PDU_Type:_request_(0)
________request:_terminalCapabilitySet_(2)
____________terminalCapabilitySet
________________sequenceNumber:_1
________________protocolIdentifier:_0.0.8.245.0.6_(itu-t(0)_recommendation(0)_h(8)_h245(245)_version(0)_6)
________________multiplexCapability:_h223Capability_(2)
____________________h223Capability
________________________...._0..._transportWithI-frames:_False
________________________...._.0.._videoWithAL1:_False
________________________...._..1._videoWithAL2:_True
________________________...._...1_videoWithAL3:_True
________________________0..._...._audioWithAL1:_False
________________________.1.._...._audioWithAL2:_True
________________________..0._...._audioWithAL3:_False
________________________...0_...._dataWithAL1:_False
________________________...._0..._dataWithAL2:_False
________________________...._.0.._dataWithAL3:_False
________________________maximumAl2SDUSize:_256
________________________maximumAl3SDUSize:_1024
________________________maximumDelayJitter:_200
________________________h223MultiplexTableCapability:_basic_(0)
____________________________basic:_NULL


 
Nota : j'ai volontairement remplacé les espaces par des '_' car sinon on ne voyait pas la "structure" du texte.
 
et je veux le faire passer dans une frame HTML avec la même cohérence (espaces devant, retour-chariot en fin de ligne).
 
Pour les retours-chariot, il faut simplement rajouter la balise <br> en fin de ligne.
 
Pour les espaces devant, par contre, j'en ai aucune idée ! il semblerait que le compilo les efface directement en effectuant le getline :heink:  
 
[U]Mon idée pour l'instant pour le rajout du retour chariot :[/U]
 

Code :
  1. bouclage{
  2. std::ifstream myfile( "test.txt" );
  3. std::getline( myfile, ligne );
  4. ligne += "<br>";
  5. }


 
 
Mes questions sont donc :  
 
- Comment reconnaitre une fin de ligne ?
- Faut il se servir de getline, puis rajouter <br> a la fin et le tour est joué ?
- Comment garder les espaces en début de ligne ?
- Comment boucler l'opération du dessus ? (while(!eof()) marcherait-il dans ce cas de figure ?)

Message cité 1 fois
Message édité par Thordax le 23-06-2006 à 13:56:29

---------------
Atari 520 ST 256 Ko
mood
Publicité
Posté le 22-06-2006 à 17:24:49  profilanswer
 

n°1393050
olivthill
Posté le 22-06-2006 à 18:13:39  profilanswer
 

Pour garder les espaces, mettre des non-breakable spaces avec le code html : &nbsp;

n°1393062
skelter
Posté le 22-06-2006 à 18:26:46  profilanswer
 

vous vous compliquez inutilement, la balise <pre> est la pour ca

n°1393095
Sve@r
Posté le 22-06-2006 à 19:58:49  profilanswer
 

Thordax a écrit :

- Comment reconnaitre une fin de ligne ?


Une ligne se termine toujours par le caractère '\n'. Mais t'as pas vraiment besoin de savoir où est la fin si t'utilises "getline" ou "fgets" car ces fonctions s'arrêtent systématiquement à chaque fin de ligne. Donc getline peut être une bonne solution
 

Thordax a écrit :

- Comment boucler l'opération du dessus ? (while(!eof()) marcherait-il dans ce cas de figure ?)


NON !!! On n'utilise jamais "feof" (nom trompeur) pour détecter une fin de fichier.
Le principe général d'un traitement de fichier est

while (fonction_de_lecture(...) != valeur_spéciale_quand_je_peux_plus_lire)


La valeur spéciale étant dépendante de la fonction que t'utilises (=> man fonction pour plus d'infos)
Exemples

int carac;
FILE *fichier;
while ((carac=fgetc(fichier)) != EOF)
{...}


char buffer[1024 + 1];
FILE *fichier;
while (fgets(buffer, 1024 + 1, fichier)) != NULL)
{...}


char *buffer=NULL;
int taille;
FILE *fichier;
while (getline(&buffer, &taille, fichier)) != -1)
{...}
if (buffer)
    free(buffer);


 
feof sert, une fois que tu peux plus lire, à t'indiquer si tu peux plus lire à cause de la "fin de fichier" ou à cause d'une autre raison (par exemple "disque crashé", "fichier supprimé entre temps", etc...)


Message édité par Sve@r le 22-06-2006 à 20:01:59

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1393098
skelter
Posté le 22-06-2006 à 20:02:59  profilanswer
 

c'est la cat C++ ici, pas C

n°1393099
Sve@r
Posté le 22-06-2006 à 20:05:08  profilanswer
 

skelter a écrit :

c'est la cat C++ ici, pas C


Le principe exposé est aussi valable en C++...


Message édité par Sve@r le 22-06-2006 à 20:05:41

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1393104
skelter
Posté le 22-06-2006 à 20:11:39  profilanswer
 

sans doute mais par respect pour les personne qui connaisse le C++ mais pas le C ca aurait été bien de ne pas expliqué un truc avec du C

n°1393233
Sve@r
Posté le 22-06-2006 à 23:15:14  profilanswer
 

skelter a écrit :

sans doute mais par respect pour les personne qui connaisse le C++ mais pas le C ca aurait été bien de ne pas expliqué un truc avec du C


Mais tout ce que j'ai écrit est compilable par du C++ (même si ça ne fait appel à aucune des notions qu'a apporté le C++ au C). Peut-être le "free" est maladroit quand on ne connait que "new" et "delete[]" mais on est bien obligé de l'utiliser si on fait appel à "getline"...


Message édité par Sve@r le 22-06-2006 à 23:16:47

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1393237
0x90
Posté le 22-06-2006 à 23:17:19  profilanswer
 

On s'en branle, la question n'est pas du C++ c'est de l'HTML ...
et effectivement la solution la plus simple est la balise <pre> autour de ce texte.


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1393613
Thordax
Shop smart. Shop S-Mart !
Posté le 23-06-2006 à 13:55:52  profilanswer
 

Ok merci, resolu.


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

  Reformater le contenu d'un fichier txt en html [RESOLU]

 

Sujets relatifs
[C#/Flash/ RESOLU] Soucis de cache IE avec donnees externes a charger[xsl][Résolu] problème de if
[resolu]Remplir une listbox avec bdd access[RESOLU]erreur de syntax
[HTML]Lien vers un dossierStocker des données dans un fichier
Automatiser une correction pour 500 pages HTMLContenu de site visible et imprimable mais non téléchargeable ??!
Du php dans du html & securité avec chmod et .htaccessprocedure trop longue résolu
Plus de sujets relatifs à : Reformater le contenu d'un fichier txt en html [RESOLU]


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