Manipulation de fichiers en c/c++

Résolu
cs_PeaceLove Messages postés 6 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 28 juillet 2005 - 21 juil. 2005 à 11:04
cs_PeaceLove Messages postés 6 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 28 juillet 2005 - 22 juil. 2005 à 09:41
Bonjour tout le monde.

j'ai un repertoire contenant 30 fichier de 1.raw jusqu'a 29.raw
pour pouvoir utiliser ces fichiers avec la bibliothéque graphique vtk
il faut que je modifie l'extention de ces fichiers en .0
si quelqu'un peut m'aider.......................

MERCI BEAUCOUP

14 réponses

cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012 1
21 juil. 2005 à 11:17
Pour renomer un fichier tu peux utiliser la fonction MoveFile() de l'API Windows.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/movefile.asp

@+
Arnotic,
Admin CS, MVP Visual C++
3
cs_PeaceLove Messages postés 6 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 28 juillet 2005
21 juil. 2005 à 11:29
merci
je vais essayer
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
21 juil. 2005 à 11:47
Lu,

Coder a la dur, voila ce que ca donne. Tu n'as plus qu'a modifier les valeur des 3 define selon tes besoins.
Tu n'as plus qu'a copier/coller le code :


#include
<windows.h>
#include <stdio.h>

#define FIRST_FILE 1
#define LAST_FILE 3
#define FILE_PATH "E:\\fic\"


int main()
{
int i;
char szBuff[512];
char Cmd[512];

printf("DEBUT DE RENOMMAGE\n\n");


for(i=FIRST_FILE; i<=LAST_FILE; i++)
{
strcpy(szBuff, FILE_PATH);
strcat(szBuff, itoa(i,Cmd,10) );
strcat(szBuff, ".raw");

strcpy(Cmd, "rename ");
strcat(Cmd, szBuff);
strcat(Cmd, " ");
strcat(Cmd, itoa(i,szBuff,10) );
strcat(Cmd, ".0");


printf("%s\n", Cmd);


system(Cmd);
}


printf("\nFIN DE RENOMMAGE\n\n");


return 0;
}

Shell
0
cs_Arnotic Messages postés 933 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 9 janvier 2012 1
21 juil. 2005 à 13:46
system() a banir.

@+
Arnotic,
Admin CS, MVP Visual C++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_PeaceLove Messages postés 6 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 28 juillet 2005
21 juil. 2005 à 13:53
ok merci beaucoup
0
cs_PeaceLove Messages postés 6 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 28 juillet 2005
21 juil. 2005 à 14:10
ca marche pas quand je reviens au rep les noms de fichier ne sont pas modifiés
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
21 juil. 2005 à 17:17
int main()

{

char File[512+1];

char FileNew[512+1];



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

{

sprintf(File, "Fichier%i.txt", i);

sprintf(FileNew, "Fichier%i.txt", i);

ChangeExtension(FileNew, "ram");

MoveFile(File, FileNew);

}

system("pause");

return 0;

}



void ChangeExtension(char *FileInit, char *Ext)

{

char *Buff = FileInit;
//On initialise un pointeur avec l'adresse du premier élement du tableau

while(*Buff++) //Tant que l'on n'est pas en fin de chaîne

;

Buff-=4; //On revient au niveau du point (-4 (3caractère+\0))

strcpy(Buff, Ext); //Et on copie la nouvelle extension

//à présent FileInit à changer d'extension

}



Je ne garantie rien pour la propreté et même la correcteté :) lol du
code ( surtout niveau des pointeurs ) mais ca change l'extension (
seulement pour les fichiers qui ont une extension de 3 lettres, pour
les autres modifier le Buff-=4;

void Aurevoir( void ); //Bonne journée
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
21 juil. 2005 à 17:19
Bon le code au dessus est faux, j'lé coller comme ça, remplacer ram par
0 dans ChangerExtension ensuite met tes propres noms de fichier et
change les valeurs de la boucle, t'es conscient que j'allais pas
frabriquer 29 fichier ram quand même :)

void Aurevoir( void ); //Bonne journée
0
BunoCS Messages postés 15342 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 26 janvier 2023 103
21 juil. 2005 à 17:25
char *_Extension;

_Extension = strstr(FileName, ".raw");

strcpy(_Extension, ".0");


Buno
----------------------------------------
L'urgent est fait, l'impossible est en train de se faire. Pour les miracles, prévoir un délai...
0
cs_Kaid Messages postés 949 Date d'inscription mardi 2 octobre 2001 Statut Membre Dernière intervention 8 juillet 2006 1
21 juil. 2005 à 17:26
Etes-vous au courant que même sous Windows on peut faire des "shell scripts" ?

Voila ce que ca donne en une ligne:



FOR /L %c IN (1,1,29) DO REN %c.raw %c.0

Kaid - kaid.fr.st
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
21 juil. 2005 à 17:27
Euh... Jamais vu lol en même temps pour ce que j'ai vu vous allez me dire lol :D

void Aurevoir( void ); //Bonne journée
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 13
21 juil. 2005 à 17:43
Arnotic, pourquoi system à bannir s'il te plait?
Comme dit Kaid, un batch est bien plus adapté a ce problème simple
0
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
21 juil. 2005 à 17:51
J'pense que c'est parce que DeathCrash utilise des commandes dos :o enfin je sais pas lol

autant passer par le batch en faite :D
void Aurevoir( void ); //Bonne journée
0
cs_PeaceLove Messages postés 6 Date d'inscription mardi 21 juin 2005 Statut Membre Dernière intervention 28 juillet 2005
22 juil. 2005 à 09:41
coucou
j'ai reussi en utilsant la fonction MoveFile()
Merci a tout le monde

Bonne Journée
0
Rejoignez-nous