begin process at 2012 05 29 20:18:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Fichier & Disque

 > 

Problème avec l'ouverture totale de certains fichiers!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec l'ouverture totale de certains fichiers!

mercredi 21 février 2007 à 12:13:07 | Problème avec l'ouverture totale de certains fichiers!

ndubien

Membre Club
Bonjour,

J'ai un problème avec l'une de mes fonctions, cette derniere est censée ouvrir tous les fichiers du début à la fin mais lorsqu'elle rencontre le caractère ascii n°26, la fonction s'arrête d'ouvrir le fichier comme si elle se trouvait à la fin de ce dernier et renvoi seulement un morceau du fichier et non le fichier global.

Ma fonction :
void ouvrir(string &phrase) {
 cout <<"\n\nNom du fichier a analyser : ";
 string nom_fichier;
 getline(cin,nom_fichier);
 ifstream fichier(nom_fichier.c_str());
 if (!fichier) {
  cout <<"Erreur, fichier corrompu ou inexistant !\n\n";
  phrase = "Erreur, fichier corrompu ou inexistant !";
 } else {
  stringstream buffer;
  buffer << fichier.rdbuf();
  fichier.close();
  phrase = buffer.str();
 }
}

Pouvez-vous me proposer une fonction semblable mais qui ne s'arrête pas lorsqu'elle rencontre le caractère ascii n°26 (en c++ console win32) ?

Merci d'avance et à bientôt.

Nico
mercredi 21 février 2007 à 13:48:11 | Re : Problème avec l'ouverture totale de certains fichiers!

racpp

Administrateur CodeS-SourceS
Salut,
Sous Windows, il est toujours préférable d'utiliser les APIs faites pour cela.
CreateFile()
ReadFile()
WriteFile()
CloseHandle()
Aucun problème avec caractère ascii 26 ou autre.

mercredi 21 février 2007 à 14:05:22 | Re : Problème avec l'ouverture totale de certains fichiers!

turnerom

Non il n'est pas préférable d'utiliser les APIs !!! Tu peux essayé avec ce code : // read file data using associated buffer's members #include #include using namespace std; int main () { filebuf *pbuf; ifstream filestr; long size; char * buffer; filestr.open ("test.txt"); // get pointer to associated buffer object pbuf=filestr.rdbuf(); // get file size using buffer's members size=pbuf->pubseekoff (0,ios::end,ios::in); pbuf->pubseekpos (0,ios::in); // allocate memory to contain file data buffer=new char[size]; // get file data pbuf->sgetn (buffer,size); filestr.close(); // write content to stdout cout.write (buffer,size); return 0; }
mercredi 21 février 2007 à 14:46:07 | Re : Problème avec l'ouverture totale de certains fichiers!

racpp

Administrateur CodeS-SourceS
turnerom >> SI. Si on code pour Windows il faut penser Windows. On gagne beaucoup en éfficacité. Les APIs permettent  de profiter des nombreuses fonctionnalités de Windows. Les fonctions de la CRT les ignore pour raison de portabilité du code. Rien qu'avec la gestion des fichiers, on voit bien la différence.

mercredi 21 février 2007 à 14:48:48 | Re : Problème avec l'ouverture totale de certains fichiers!

turnerom

Oui mais si on code C++, comme ca a l'air de vouloir etre le cas, il faut coder en C++. Les fonctions CreateFile(), ReadFile(), WriteFile(), CloseHandle(), ... ne sont pas des fonctions du standard C++ mais du standard Windows
mercredi 21 février 2007 à 18:32:13 | Re : Problème avec l'ouverture totale de certains fichiers!

BruNews

Administrateur CodeS-SourceS
Le C++ doit-il mener au chomage par conviction ???

ciao...
BruNews, MVP VC++
mercredi 21 février 2007 à 19:19:49 | Re : Problème avec l'ouverture totale de certains fichiers!
mercredi 21 février 2007 à 19:21:23 | Re : Problème avec l'ouverture totale de certains fichiers!

BruNews

Administrateur CodeS-SourceS
Penses-tu qu'avec du seul C++ on fasse quoi que ce soit, si on se limitait à ça, impossible de bosser.

ciao...
BruNews, MVP VC++
mercredi 21 février 2007 à 19:26:24 | Re : Problème avec l'ouverture totale de certains fichiers!

turnerom

bah !!! La ou je bosse, on ne travail qu'avec de C++ standard, de telle sorte que nos prog compile indiférement sous Win/Linux/Mac. Y'a pas que visual studio dans la vie (que l'on a d'ailleurs banni de chez nous)
mercredi 21 février 2007 à 19:38:36 | Re : Problème avec l'ouverture totale de certains fichiers!

vicenzo

Membre Club
Racpp => Pas d'accord du tout sur ta position extrémiste !

BruNews => C'est grace à la portabilité du C/C++ que je ne suis pas au chomage !!

Sans entrer dans  un débat stérile sur le sujet du choix des api et librairies, il faut nuancer !

Oui, la progammation Windows a son intérêt et ses avantages et en fonction des projets et préférable à du code portable !

Mais, y pas que Windows sur terre, et que lorsqu'on bosse sur des gros projets réseaux, DB, Serveurs, ... a moins d'être masochistes à faire XYZ fois le boulot (un pour windows, un pour unix, ), faut faire du portable..

Pourquoi Java, FireFox, APache (APR, WEB, Tomcat, ...), Oracle, MySql, ..... existe-ils et pourquoi sont ils populaires ?? Parce qu'ils sont portables et minimisent le code spécifiqe à chaque machine.

Mes projet professionnels inpliquent des applications graphiques faites en API Win32. D'autres en c pour des interfaces portables (MS et Unix) temps réel entre gros systémes ...

Faut pas dire , Sur Windows fait automatiquement du win32.. Surtout à un jeune de 15 ans ... Pour une application console qui ne fait pas grand chose, pourquoi pas du C ou du c++ pur ??

Et enfin pour Racpp, pour info, les fonction standard C  et C++ de manipulation de fichiers utilise l'api win32 sous Windows (fopen -> OpenFile(), ....), c'est obligé !

1 2

Cette discussion est classée dans : fichier, ouvrir, problème, fonction, fichiers


Répondre à ce message

Sujets en rapport avec ce message

problème avec fichiers !!! [ par ben01n ] salut tout le mondeje prog sous linux et j'aurais besoin d'aide pour un de mes programmes dont j'ai déposé la source sous le nom "client-serveur en ud reception fichiers par rs232 [ par sergio18 ] Bonjour,Mon Problème: je veux recevoir un fichier Programme d'une commande numérique via RS232.Mais je ne connais pas le nombre de caractere que compo Ouvrir tous les fichiers d'un dossier 1 par1 [ par Buzu ] Je cherche à développer une fonction qui ouvre tous les fichiers d'un dossier spécifié 1 par 1.Existe-t-il une fonction qui renvoie le nombre de fichi problème a propos de seekg() [ par wizzo ] bonjour,j'ai ecris une fonction qui lit un fichier txt avec ifstream, et tt marche bien, à l'exception de la fonction seekg();en effet, j'ai lu partou problème d'écriture dans un fichier [ par gilles89 ] salut tout le monde, je débute en c++ et voulais poser une question:au fait, j'ai un programme qui récupère un nom de fichier que tape l'utilisateur p Taille de fichiers [ par Screderman ] Hello !Je cherche un moyen ( une fonction ) permettant de trouver la taille d'un fichier afin que je puisse le lire en entier avec ma fonction de lect [Dev-Cpp] Multiples fichiers .cpp [ par Rouliann ] Bonjour tout le monde! Je programme actuellement un petit Pacman (que vous pouvez voir ici) et comme je n'avais qu'un fichier .cpp (le fichier main) e Ouverture de plusieurs fichiers dans la meme instance d'un application [ par otofraise ] Boujour a tous,J'ai fait l'association entre un type de document et une application que j'ai developpee.Si je double-clique sur un fichier de ce type, En-tête de fichiers [ par lisandru ] Bonjour, Alors voila mon problème.Je voudrais savoir si il est possible d'insérer un en-tête dans un fichier sans avoir forcement a insérer l'en-tête Lister des fichiers [ par deck_bsd ] Bonsoir à tous, Voila j'ai un problème. A un moment dans mon programme je doit lister les fichier contenut dans un dossier, jusque là aucun problème.


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,685 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales