UN PROGRAMME POUR INDENTER LES FICHIER EN .CPP, .H, .C, .JAVA

slashbeastleo93 Messages postés 4 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 17 mai 2003 - 17 mai 2003 à 10:56
slashbeastleo Messages postés 7 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 26 mars 2004 - 18 mai 2003 à 20:04
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/10771-un-programme-pour-indenter-les-fichier-en-cpp-h-c-java

slashbeastleo Messages postés 7 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 26 mars 2004
18 mai 2003 à 20:04
ok, merci, mais c'est a vous de le modifier, car je suis pas trop experimenter....
lol
trinitacs Messages postés 249 Date d'inscription mardi 16 juillet 2002 Statut Membre Dernière intervention 7 août 2003 2
17 mai 2003 à 15:44
Il est possible d'améliorer ton code.

Tout d'abord je le trouve très long pour ce qu'il fait.

Tu n'est pas obligé d'indiqué la taille d'un tableau à passer à une fonction si il n'a qu'une dimension.

Tes fonctions sont beaucoup trop longues.

Tu devrai mettre de l'ordre avec des objet.

Si tu utilises la classe string (basic_string) ton code se grandement plus performant (rapidité + robuste)

Tu lit le fichier d'une mauvaise manière. Lire octect par octect c'est un peu bourrin. Met le pointeur à la fin du fichier, demande la position de celui-ci et tu auras la taille du fichier en octect. Ensuite tu alloue un tableau dynamiquement au lieu de la faire d'une manière statique qui n'est pas très fiable. Si le fichier fait plus de 1 000 000 d'octetc il y aura un e erreur à l'éxécution.
Pour résoudre ce problème allou le dynamiquement en fonction de la taille.
Et enfin pour le lire utilise la fonction in.read( taille );

Voici un code qui résume ce que j'ai dis pour lire le fichier:
---------------
// read a file into memory
#include
#include <fstream>
using namespace std;

int main () {
int length;
char * buffer;

ifstream is;
is.open ("test.txt", ios::binary );

// get length of file:
is.seekg (0, ios::end);
length = is.tellg();
is.seekg (0, ios::beg);

// allocate memory:
buffer = new char [length];

// read data as a block:
is.read (buffer,length);

is.close();

cout.write (buffer,length);

return 0;
}
---------------
tiré de cplusplus.com dans la doc de ifstream.
slashbeastleo93 Messages postés 4 Date d'inscription vendredi 16 mai 2003 Statut Membre Dernière intervention 17 mai 2003
17 mai 2003 à 10:56
alors que pensez vous de mon programme ?
Rejoignez-nous