Reformater le contenu d'un fichier txt en html [RESOLU] - C++ - Programmation
Marsh Posté le 22-06-2006 à 18:13:39
Pour garder les espaces, mettre des non-breakable spaces avec le code html :
Marsh Posté le 22-06-2006 à 18:26:46
vous vous compliquez inutilement, la balise <pre> est la pour ca
Marsh Posté le 22-06-2006 à 19:58:49
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; |
char buffer[1024 + 1]; |
char *buffer=NULL; |
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...)
Marsh Posté le 22-06-2006 à 20:05:08
skelter a écrit : c'est la cat C++ ici, pas C |
Le principe exposé est aussi valable en C++...
Marsh Posté le 22-06-2006 à 20:11:39
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
Marsh Posté le 22-06-2006 à 23:15:14
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"...
Marsh Posté le 22-06-2006 à 23:17:19
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.
Marsh Posté le 22-06-2006 à 17:24:49
Mon probleme est simple, j'ai un fichier texte de ce style :
____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
[U]Mon idée pour l'instant pour le rajout du retour chariot :[/U]
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 édité par Thordax le 23-06-2006 à 13:56:29
---------------
Atari 520 ST 256 Ko