Creation de N fichiers... - C++ - Programmation
Marsh Posté le 11-01-2003 à 19:14:44
Les noms de futur fichiers contenus dans le premier fichier, ils sont ligne par ligne, ou bout à bout avec caractère séparateur ?
Avec QBasic du DOS, ça se fait rapidement, a priori.
Marsh Posté le 11-01-2003 à 19:55:28
Ces fichiers feront 0 octets ?
Le C est obligatoire ? C'est pour un exercice ?
Marsh Posté le 11-01-2003 à 21:11:14
Non les fichiers ne feront pas 0 octet car par la suite ils seront remplis.
Et bien oui le C est obligatoire...car je suppose ken C++ c beaucoup plus simple.
Ce ke j'ai donnée tout à l'heure c'etait un exemple...
car concretement j'ai besoin de creer une page HTML avec des liens vers d'autres pages HTML qui contiendront des infos (qui porte le nom contenu ds un fichier).
Marsh Posté le 11-01-2003 à 21:19:54
Je me suis fait mon générateur de pages HTML pour mon site ouèbe en QBasic pour aller vite, et les pages dérivent du nom des photos (photo.htm) que j'ai récupéré par la commande Dir *.jpg > liste.txt.
Ca ressemble pas mal !!
Ca passera en C plus tard (manque de temps entre deux consultation de HFR ).
Marsh Posté le 11-01-2003 à 21:31:27
Ouai c comme sur ton site (y a de tres belle photo au passage).
Mais c pour une autre utilisation.
Marsh Posté le 11-01-2003 à 21:34:11
bon j'avais kkes minutes devant moi alors voila :
Code :
|
Amicalement Qxn
Marsh Posté le 11-01-2003 à 21:37:10
un petit detail neanmoi ton fichier qui contient les données a savoir le
Code :
|
doit contenir les information ligne a ligne ( sur une ligne uniquement un nom rien de plus)
par contre le prog que je t'ai fais comporte kkes limitations (ba vi fo que tu bosse un peu lol ) a savoir que le premier parametre de fopen doit avoir le \0 coller donc tes noms doivent tous avoir la meme taille ( #definie MAX_TAILLE) pask si le "\0" n'est pas juste a coté du nom de fichier le fopen l'acceptera pas mais si tu taff un peu tu peu corriger ca aisement
Marsh Posté le 11-01-2003 à 21:43:23
Je n'est pas demandé que tu me le fasse! Mais merci car bon un exemple vaut bien de longue phrases...
Merci encore Qxn c bien sympa
Marsh Posté le 11-01-2003 à 21:49:20
FabienM a écrit : Je n'est pas demandé que tu me le fasse! Mais merci car bon un exemple vaut bien de longue phrases... |
ba javais rien a faire c pour ca lol mais tu dois juste faire une fonction en plus pour pouvoir créer des fichier de tailles differente ( je l'ai faite en attendant si tu butte je te la file )
j'espere que tu as compris en regardant le code le but final etant que tu comprenne
Marsh Posté le 11-01-2003 à 21:54:50
Pour l'instant juste une petite precision sur
Code :
|
à quoi correspond le "t" comme mode d'ecriture ??
Marsh Posté le 11-01-2003 à 21:56:55
FabienM a écrit : Pour l'instant juste une petite precision sur
|
t= texte
b= binaire
voila man fopen
Marsh Posté le 11-01-2003 à 22:28:11
mais là il va me creer des fichiers ki n'auront pas d'extension ??
à l'execution j'obtiens erreur sur la creation des fichiers et de plus il me retourne 2N fichiers crée alors ke le fichier de depart en contient ke N...
eclaire moi un peu sur cette erreur
Marsh Posté le 11-01-2003 à 22:33:48
Faut l'adapter, c'est une "ligne directrice", une arrête, une épure.
fgets(fichier,MAX_TAILLE,donnee);
strcat(fichier, ".txt" ); // ajoute .txt à la fin du nom du fichier si y a assez d'espace de prévu (à prévoir sinon écrase mémoire)
printf("Création du fichier %s",fichier);
Faudrait ainsi allonger la zone :
char fichier[MAX_TAILLE]; en char fichier[MAX_TAILLE + 4];
On peut aussi préciser où on veut le mettre en ajoutant avant le chemin.
On pourrait voir les 3 premières lignes de ce fichier pour voir si pas de pb de "dimension" ?
Je ne sais plus si fopen peut créer un fichier quand existe pas, ou si ouvre déja existant. Sinon, y a le mode "a" qui crée si existe pas mais ajoute à la fin (append) si existe déja => ""dangereux"".
Pour ne pas compter les fichiers en échec, faudrait faire
if (test == NULL)
{
printf("Erreur lors de la création du fichier %s",fichier);
}
else
{
Nb_fichier ++;
}
Marsh Posté le 12-01-2003 à 00:17:55
CARBON_14 a écrit : Faut l'adapter, c'est une "ligne directrice", une arrête, une épure.
|
ba rien a rajouter l'ami du carbon a tout dis je pense
Marsh Posté le 12-01-2003 à 12:09:34
Merci encore a tous les 2.
PS: ca ne fait pas bien longtemps ke j'ai commencé à prog en C.
Marsh Posté le 12-01-2003 à 12:14:46
le mode "t" n'est pas standard et pour tout dire ne sert à rien.
le mode d'ouverture pas défaut est toujours le mode texte
sur les systemes faisant la différence entre les fichiers textes et les fichiers binaires, le mode "b" permet d'indiquer qu'on veut un mode d'acces binaire
tu veux du texte, pas de "t"
Citation : t= texte |
je sais pas d'ou tu sors ton man toi, mais s'il y figure vraiment "t" il devrait y avoir une indiquation sur la portée de ce mode
Marsh Posté le 12-01-2003 à 21:36:23
++Taz a écrit : le mode "t" n'est pas standard et pour tout dire ne sert à rien.
je sais pas d'ou tu sors ton man toi, mais s'il y figure vraiment "t" il devrait y avoir une indiquation sur la portée de ce mode |
ba pour ne rien te cacher sur mon man aussi ca y est pas et j'avais fais une recherche vite fais sur mon ami google et j'ai trouvé ca :
Citation : The mode parameter serves also to specify whether we want to open the file as text or binary, adding t or b characters to this access mode string. t Text mode. In text mode the end of file is assumed to be at first Ctrl-Z character. Some conversions can occur reading and writing with End Of Line / Feedback characters depending on your compiler and your Operating System. |
bref je t'en paste qu'un bout mais matte a cette url http://www.cplusplus.com/ref/cstdio/fopen.html
javais jamais vu ce t aussi avant de tomber sur ce site
Marsh Posté le 12-01-2003 à 21:45:43
"If t nor b are given, it is used the default method (commonly t)."
Généralement, les gens ne mettent rien quand c'est "t", mais ne précisent que quand c'est "b".
Ca ne simplifie pas les lectures de code !
Marsh Posté le 12-01-2003 à 22:04:52
ben c++.com se plante, j'ai déjà posté à ce sujet
bien que certains manuels décrivent ce mode, il n'est nullement ANSI. pour windows, quand on manipules des ficheirs en mode binaire, on le spécifie, sous *n*x, les fichiers sont de simples suite d'octets, donc lire en "" ou en "b" ne change rien
Marsh Posté le 12-01-2003 à 22:22:22
Comme quoi y a du ménage à faire !!
Quand on n'est pas du métier, on se fie à ce qui est écrit, et on se faire joyeusement "enduire" d'imprécision.
Marsh Posté le 11-01-2003 à 19:12:20
Je souhaiterai creer N fichiers dont le nom est contenu dans un autre fichier.
Par exemple:
un fichier contenant N chaines de caracteres (lundi, mardi, mercredi, etc....)
et au final je souhaiterai obtenir lundi.txt, mardi.txt, etc ...
Comment adapter la commande suivante ?
f = fopen("C:\ ?????.txt", "w" )
Le tout en C.
Merci !