begin process at 2012 05 30 16:39:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Renseugenement sur write file et readfile


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

Renseugenement sur write file et readfile

lundi 27 mars 2006 à 23:18:32 | Renseugenement sur write file et readfile

julienbornet

Bonjour a tous voila je cherche a savoir quelque chose. Voila, je doit realiser un rpogram ou j'enregistrer des donnes dans un fichier. Jusque la rein de bien nouveau. Bon n'etant pas trop habitue au API ni un pro de la programmation, j'utilisais les fonction fopen pour ouvrir mon fichier et fprintf pour ecrire dedans. Cependant dans le but d'uniformiser ma maniere de coder mais aussi et surtout d'ameliorrer la vitesse d'ecriture des ces donnes , j'ai decider de passer en API. J'tulisie donc CreateFile et WriteFile. Le probleme c'est qu'avant mes donnees enregistrer en txt etait visible dnas le notpad mais mainteant j'obtient des carre. Je suppose que cela veint de la maniere dont la fonction ecrit les donnees. Je voudrais donc savoir s'il existe une otpion de writefile qui permettent d'ecrire des donnes lisibles (sans passer par une editeur de texte maison avec readfile par exemple).

D'avance merci

PS: Pour ceux qui aurait des doutes sur mon codes et je les comprends le voici (ce n'est qu'un exemple)

#include <windows.h>

#include <iostream>

using namespace std;

int main ()

{

int t1[5] = {1,2,3,4,5};

HANDLE fichier;

HANDLE hFile;

DWORD octetsEcrits;

fichier = CreateFile("test.txt", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

if( fichier == INVALID_HANDLE_VALUE)

return false;

if (!WriteFile(fichier, t1 ,sizeof(int)*5,&octetsEcrits,NULL))

{

// erreur;

}

CloseHandle(fichier);

for (int i = 0; i <= 4;i++)

{

cout << t1[i];

}

hFile = CreateFile("test.txt",GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);

if (hFile == INVALID_HANDLE_VALUE)

return false;

int t2[5];

DWORD octetsLu;

if (!ReadFile(hFile,t2,sizeof(int)*5,&octetsLu,NULL))

{

// erreur;

}

CloseHandle(fichier);

cout << endl;

for (int i = 0; i <= 4;i++)

{

cout << t1[i];

}

cin.ignore();

return 0;

}

lundi 27 mars 2006 à 23:47:18 | Re : Renseugenement sur write file et readfile

BruNews

Administrateur CodeS-SourceS
Quand on écrit directement les données elles ne sont pas lisibles (à moins d'être un processeur), mets les en forme ascii dans une chaine si tu y tiens mais c'est moins performant car besoin de conversion dans les 2 sens.

ciao...
[ Lien ]
BruNews, MVP VC++
mardi 28 mars 2006 à 17:05:19 | Re : Renseugenement sur write file et readfile

julienbornet

Ok Brunews, je te remercie du renseignement. Je voulais aussi avoir un deuxieme renseugement, voila j'ai tourver un de tes programme qui compare la vitesse ne d'ecriture dans un fichier de la fonction sprintf et de l'API writefile() . Voiale dans ton programme tu fait le test en ecrivant 6000 fois la meme chaine de caracteres avec ces deux fonction et on peut ainisi comparer leure temps d'execution. Mais voila si on passe a 100000 voir meme 800000 ces deux fonctions devienne equivalente. Peut tu me confirmer ceci? Le gain de writefile ne se ferait il que sur les fichiers de taille modeste.

D'avance merci
mardi 28 mars 2006 à 17:20:43 | Re : Renseugenement sur write file et readfile

julienbornet

pardon c 'est pas la fonction sprintf mais fwrite desole
mardi 28 mars 2006 à 20:05:05 | Re : Renseugenement sur write file et readfile

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
Quand on arrive sur de gros fichiers d'autres facteurs entre en compte, le taux de fragmentation du disque dur par exemple.

Dans tous les cas, on ne va jamais plus vite que par la ligne droite et comme toute autre fonction devra par force finir par appeler WriteFile (en mode protégé on ne touche pas aux périphs autrement que par les fonctions du systeme hote), il est clair que rien n'ira plus vite que l'appel direct de l'API.

ciao...
[ Lien ]
BruNews, MVP VC++
mardi 28 mars 2006 à 20:08:43 | Re : Renseugenement sur write file et readfile

julienbornet

Merci pour tous ces renseignements, j'en prend bonne notes


Cette discussion est classée dans : fichier, int, file, write, readfile


Répondre à ce message

Sujets en rapport avec ce message

Creation de fichier [ par PLUiK ] SalutJai fait une source qui devrait normalement me créer un fichier la voici:[b]#include int WINAPI WinMain (HINSTANCE hThisInstance,HINSTANCE hPrevI prob pour coder fichier sur une matrice [ par Jazz_s ] je voudrais lire un fichier via fstream et ensuite reproduire celui ci parfaitement dans une matrice pour pouvoir jongler facilement par apres avec le wxFILE-->Creer un fichier, l' éditer et l'enregistrer [ par satellite34 ] Bonsoir,Je cherche à creer un fichier, à l' éditer et à l'enregistrer;Je fais ca avec la classe wxFILE;          file = new wxFile();      &n fonction avec un type file* [ par vercd7am ] Bonjour, j'ai ecrit quelques lignes de code pour pouvoir lire un fichier txt. [code=cpp]int main() { int c; FILE *fichier = NULL; fichi les fichier en C [ par abdobergach ] bonjour j'ai un erreur qui je connais pas pouquoi qlq'un m'aider svp,voila l'eerreur: error C2664: 'CreateFileW'*: impossible de convertir le paramètr Premier prog [ par ryder0007 ] Bonjour, Voila j'ai terminer de programmer mon premier programme et je voudrais savoir ce que vous en pensez. Il permet de compter le nombre de caract Problème d'affichage a la lecture d'un fichier avec fonction fstream et stockage dans une chaine [ par curite ] Bonjours, j'ai créer un gestionnaire de mot de passe en c++ je vous montre le code sinon vous allez rien comprendre :p main.cpp [code=cpp] #include enregister un fichier depuis les ressources [ par baby3378 ] Bonjour à tous, Voilà, afin de faciliter l'utilisation d'une application j'ai décidé de stocker les images et dll en ressource dans mon application af Tableau C [ par 3463 ] Salut à tous j'ai vraiment besoin de votre aide !! [code=cpp] # include # include # include # include # include # include # include using nam C dup utilisation [ par Tom59247 ] Bonjour à tous ! Je réalise actuellement un petit programme qui me permet de mettre quelques infos dans un fichier txt. Après quelques recherches j'


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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 : 0,702 sec (3)

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