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

  FORUM HardWare.fr
  Programmation
  C++

  [C] Aide pour creer un nouveau fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] Aide pour creer un nouveau fichier

n°159847
AlexKF
Posté le 15-06-2002 à 15:56:31  profilanswer
 

Bonjour, je cherche à créer, à partir d'une liste de noms dans un fichier texte un certain nombre de fichiers texte (ou de repertoires ca serait encore mieux) portant les différents noms contenus dans le fichier source.
Quels sont les paramétres d'appel de la fonction CreateFile ? En existe-t-il un equivalent pour les répértoires?
J'ai essayer de creer mes fichiers avec cette ligne (pompée sur un précédent post), mais je n'ai qu'une erreur de win2K lors de l'execution:
 
FILE *newfile;
newfile = CreateFile( "C:\Documents and Settings\a\Bureau\FICHIERtest", GENERIC_READ | GENERIC_WRITE,
                                    0, NULL, OPEN_ALWAYS,
                                   FILE_ATTRIBUTE_NORMAL, NULL );
 
 
Merci pour l'aide

mood
Publicité
Posté le 15-06-2002 à 15:56:31  profilanswer
 

n°159856
antp
Super Administrateur
Champion des excuses bidons
Posté le 15-06-2002 à 16:15:12  profilanswer
 

faut mettre des \\ vu que \ indique un début de caractère spécial (\n = retour de ligne, etc...)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°159864
smaragdus
whores, drugs & J.S. Bach
Posté le 15-06-2002 à 16:19:37  profilanswer
 

A priori, je dirais qu'il faut remplacer OPEN_ALWAYS par CREATE_ALWAYS
 
CreateFile permet aussi d'accéder aux répertoires.

n°159890
AlexKF
Posté le 15-06-2002 à 16:52:00  profilanswer
 

Ok, merci pour les réponse, je pense avoir résolu mon prb en utilisant la commande system(mkdir).

n°159904
AlexKF
Posté le 15-06-2002 à 17:23:14  profilanswer
 

Bon, en fait, mon prb n'est pas résolu: je veus créer un dossier (au pire un fichier) qui porte lenom contenu dans la chaine de caractére buffer_carc.Le probleme, c'est que si je met:
 
system("mkdir buffer_carac" )
 
le dossier créé s'appelle buffer_carac; j'ai essayé un truc du genre:
 
system("mkdir %s",buffer_carac)mais ca ne fonctionne pas (c'est pas les bons parametres d'appel).

n°159905
smaragdus
whores, drugs & J.S. Bach
Posté le 15-06-2002 à 17:29:37  profilanswer
 

AlexKF a écrit a écrit :

Bon, en fait, mon prb n'est pas résolu: je veus créer un dossier (au pire un fichier) qui porte lenom contenu dans la chaine de caractére buffer_carc.Le probleme, c'est que si je met:
 
system("mkdir buffer_carac" )
 
le dossier créé s'appelle buffer_carac; j'ai essayé un truc du genre:
 
system("mkdir %s",buffer_carac)mais ca ne fonctionne pas (c'est pas les bons parametres d'appel).  




 
 :pt1cable: Les méfaits du VB sur la jeunesse :lol:

n°159906
antp
Super Administrateur
Champion des excuses bidons
Posté le 15-06-2002 à 17:30:34  profilanswer
 

Y a une fonction CreateDirectory ou un truc du genre, c'est nettement plus propre que passer par System...


Message édité par antp le 15-06-2002 à 17:30:54

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°159927
AlexKF
Posté le 15-06-2002 à 18:03:30  profilanswer
 

Ha ces djeunes......
Vous allez dire que j'abuse, mais quelle est le prototype de CreateFolder, J'ai un éditeur/compilateur tout pouri sans aide sur les foncions :-(

n°159931
antp
Super Administrateur
Champion des excuses bidons
Posté le 15-06-2002 à 18:12:56  profilanswer
 
n°159989
fabsk
Posté le 15-06-2002 à 19:28:25  profilanswer
 

Question bete: a quoi ca sert d'utiliser "CreateFile" pour un truc aussi banal (la, ca en a bien l'air) que les lectures/ecritures dans des fichiers. Autant utiliser "fopen"...

mood
Publicité
Posté le 15-06-2002 à 19:28:25  profilanswer
 

n°160538
LetoII
Le dormeur doit se réveiller
Posté le 17-06-2002 à 10:36:35  profilanswer
 

Ouai, où même ofstream.
Après faut voir ce qu'il veut faire, s'il veut vraiment utiliser des truc spécifiques windows (je crosi pas là :)) ça justifie d'utiliser CreateFile, si non ...


---------------
Le Tyran
n°162795
Profil sup​primé
Posté le 19-06-2002 à 19:18:13  answer
 

si je me trompe dites le moi, mais il me semble que les fonctions de plus bas niveau, et donc les plus rapides sont celles de l'API de windows
 
si son programme n'a pas a etre porté sous unix ou autre chose, pourquoi s'emmerder avec des surcouches telles que std::fstream ou fopen ?

n°162799
LetoII
Le dormeur doit se réveiller
Posté le 19-06-2002 à 19:21:08  profilanswer
 

Là je suis pas sûr


---------------
Le Tyran
n°162802
Profil sup​primé
Posté le 19-06-2002 à 19:31:08  answer
 

C pas compliqué il suffit de regarder le code de la stl.
mais je l'ai pas sur place
 
Mais a mon avis j'ai raison parce que les fichiers de windows ne peuvent etre accédés que par l'API de l'OS, et pas directement en tapant sur le disque physique (au moins sous NT/2000)
Donc tout ce qui fait de l'acces aux fichiers est forcement surcouche de cette API.
Sinon c basé sur un enorme reverse engeneering forcement foireux.
 
Sous un OS open source c possible de court circuiter l'API native par contre.

n°162806
LetoII
Le dormeur doit se réveiller
Posté le 19-06-2002 à 19:34:14  profilanswer
 

Oualb a écrit a écrit :

C pas compliqué il suffit de regarder le code de la stl.
mais je l'ai pas sur place
 
Mais a mon avis j'ai raison parce que les fichiers de windows ne peuvent etre accédés que par l'API de l'OS, et pas directement en tapant sur le disque physique (au moins sous NT/2000)
Donc tout ce qui fait de l'acces aux fichiers est forcement surcouche de cette API.
Sinon c basé sur un enorme reverse engeneering forcement foireux.
 
Sous un OS open source c possible de court circuiter l'API native par contre.  




HeHe tout faux, y a que sous 200,NT et XP qu'on peux aller directement taper sur le disque :D
Sous 9x faut passer par les vxd (et j'ai tjrs pas compris comment ça marchait)


---------------
Le Tyran
n°162810
Profil sup​primé
Posté le 19-06-2002 à 19:44:11  answer
 

sous 2000 NT ET XP on peut aller taper sur le disque physique en donnant un numero de cylindre et de secteur ?
 
alors ca ca m'etonnerait beaucoup !!
 
si tu trouves ca, je veux bien voir un bout de code qui fait ca et qui se prend pas un access denied de la part de l'OS !

n°162819
LetoII
Le dormeur doit se réveiller
Posté le 19-06-2002 à 19:51:36  profilanswer
 

CreateFile("\\.\PHYSICALDRIVE2"....
 
Ensuite tu utilise DeviceIoControl (pour plus de détail voit la msdn, pour l'instant la partie sur  DeviceIoControl de leur site est down)


---------------
Le Tyran
n°162880
kenshiro18​2
Posté le 19-06-2002 à 22:17:13  profilanswer
 

Oualb a écrit a écrit :

si je me trompe dites le moi, mais il me semble que les fonctions de plus bas niveau, et donc les plus rapides sont celles de l'API de windows
 
si son programme n'a pas a etre porté sous unix ou autre chose, pourquoi s'emmerder avec des surcouches telles que std::fstream ou fopen ?  




 
Parce que tu as moins de parametres, donc tu vas gagner du temps en dev.
Parce que les fonctions des lib standards (C et C++) peuvent faire des I/O formattees et non-formattees.
Et puis, tu vas gagner des clopinettes en temps, quand il s'agit de lire 10 chaines de caracteres.
 
Et tant que t'y es, pourquoi pas des I/O asynchrones et des threads ?

n°162882
LetoII
Le dormeur doit se réveiller
Posté le 19-06-2002 à 22:19:09  profilanswer
 

kenshiro182 a écrit a écrit :

 
 
Parce que tu as moins de parametres, donc tu vas gagner du temps en dev.
Parce que les fonctions des lib standards (C et C++) peuvent faire des I/O formattees et non-formattees.
Et puis, tu vas gagner des clopinettes en temps, quand il s'agit de lire 10 chaines de caracteres.
 
Et tant que t'y es, pourquoi pas des I/O asynchrones et des threads ?  




 
:lol:


---------------
Le Tyran

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

  [C] Aide pour creer un nouveau fichier

 

Sujets relatifs
[VB(A)] Créer un assistant de type "Suivant/Précédent"[PHP] - Upload de fichier : recuperation du chemin complet sur mon HD
[PHP] afficher un 'nouveau' pour les derniers enregistrements...Aide su .htaccess
[Shell] Retirer les retour à la ligne d'un fichier (avec sed ?)[php] problème de tableaux!! à l'aide :'(
Aide C++ BUILDER et Requete.[JAVASCRIPT] menu dynamique : besoin d'aide !!!!
[JAVASCRIPT] menu dynamique : besoin d'aide !!!!un petit nouveau aller voire : www........fr.st
Plus de sujets relatifs à : [C] Aide pour creer un nouveau fichier


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