mailliam
Messages postés261Date d'inscriptionmardi 2 juillet 2002StatutMembreDernière intervention10 mars 2014
-
17 janv. 2008 à 17:44
mailliam
Messages postés261Date d'inscriptionmardi 2 juillet 2002StatutMembreDernière intervention10 mars 2014
-
18 janv. 2008 à 17:21
Bonjour tout l'monde..
Moi je débute, j'ai un projet assez simple, qui me semblait en tout k jusqu'a maintnt..
je veux faire un programme qui change l'icone de mon disque dur tout les jours (j'ai des smileys très sympa..)
donc j'ai fait un fichier Autorun.inf que je place sur la racine du C: avec dedans:
[Autorun]
Icon=7.ico
Title=disque
Mon programme (qui est placé dans le menu démarrage) doit simplement lire la 2ème ligne du fichier, le 6eme caractere (ici 7) faire + 1 puis réécrire le fichier avec Icon=8.ico (si le numéro est > 9 alors revient à 0..)
Comme je commence, j'ai simplifié et je n'écris qu'un seul caractère dans mon fichier (avec fprintf) mais je dois faire une erreur au moment ou je choisi mon type de variable car ca ne marche pas!
Disons que ca marche j'arrive a écrire dans mon fichier, j'arrive à additionner +1 à ma variable, mais si je mets une condition pour avoir si le chiffre est >9 pour le remettre à 0 ca plante!
Voici mon code, si qqun voit l'erreur
//ouverture du fichier Autorun.inf
FILE* fichier = NULL;
int caractereActuel = 0; //(variable de lecture)
fichier = fopen("Autorun.inf ", "r+");
//vérification si l'ouverture du fichier a réussi ou pas..
if (fichier != NULL)
{
// On peut lire et écrire dans le fichier
printf("Acces au fichier Autorun.inf OK\n\n");
//lecture du fichier
caractereActuel = fgetc(fichier); // On lit le caractère
printf("\n caractere: %c \n", caractereActuel); // On l'affiche
//on ajoute +1 au caractere
caractereActuel=caractereActuel+1;
printf("\n caractere: %c \n", caractereActuel); // On l'affiche
fclose(fichier); // On ferme le fichier qui a été ouvert
}
else
{
// le fichier n'existe pas ou est utilisé
printf("Impossible d'ouvrir le fichier Autorun.inf \n\n");
}
//vérifie si la variable fait + que 9 si oui on la remet à 0
if (caractereActuel > 9)
{
printf("+ que 9 on la remet a 0\n\n");
caractereActuel=0;
}
else
{
printf("- que 9 on ne fait rien\n\n");
}
//on réouvre le fichier
fichier = fopen("Autorun.inf ", "r+");
//on l'ecrit dans le fichier
fprintf(fichier, "%c", caractereActuel);
fclose(fichier); // On ferme le fichier qui a été ouvert
system("PAUSE");
return 0;
Voila, merci d'avance :)
Je regarderais après comment on doit faire pour modifier que la 2ème ligne encore..
Bonne fin d'semaine les lulu
nickydaquick
Messages postés416Date d'inscriptionvendredi 31 janvier 2003StatutMembreDernière intervention19 décembre 20133 18 janv. 2008 à 15:33
Salut,
//vérifie si la variable fait + que 9 si oui on la remet à 0
if (caractereActuel > 9) // mets plutot if (caractereActuel >(int)'9') {
printf("+ que 9 on la remet a 0\n\n");
caractereActuel=0; // rectifies ici aussi caractereActuel = (int)'0'; }
else
{
printf("- que 9 on ne fait rien\n\n");
}
je suis heureux de faire partie d'une grande famille ...!
mailliam
Messages postés261Date d'inscriptionmardi 2 juillet 2002StatutMembreDernière intervention10 mars 20143 18 janv. 2008 à 17:21
ReBonjour,
merci pour vos réponses :)
alors j'ai refait mon code, en utilisant plutôt la fonction GetPrivateProfileString
mais j'ai tjs des probleme avec les variables, maintenant ca coinçe dès l'ouverture du fichier autorun.ini, à section="Autorun";
voici le code:
#include <stdio.h>
#include <stdlib.h>
#include
void writefile (char* section ,char* cle , char* valeur , char* repertoire )
{
//on ecrit ( rempaçera une valeur déjà existante si la clé existe déjà )
WritePrivateProfileString(section,cle,valeur,repertoire );
}
void openini(char * section , char * cle , char* valeur , char* repertoire)
{
//on prend ce qu'il y a dedans
GetPrivateProfileString(section,cle,"retourne ça si erreur",valeur,sizeof(valeur),repertoire);
}
void trouverepertoire (char * repertoire )
{
//on donne le repertoire avec en plus "Autorun.ini" à repertoire
GetFullPathName("Autorun.ini", 256, repertoire, NULL);
}
int main(int argc, char *argv[])
{
//contien le repertoire ou l'on mettra le .ini
char repertoire [256] ;
trouverepertoire ( repertoire ) ;
//contiendra le text
char contienttext [256] = {' '};
int choix = 0 ;
char section [256];
char cle [256];
char valeur [256];
printf("Lancement du programme de changement d'icone de disque..\n\n");
//ouverture du fichier Autorun.ini
section="Autorun";
cle="Icon";
openini(section,cle, contienttext ,repertoire); //lecture
printf("\n la valeur est: %c \n", contienttext); //affichage
contienttext=contienttext+1; //on ajoute +1
if (contienttext >(int)'9')
{
printf("\n la valeur est > 9 \n);
contienttext = (int)'0';
}
else
{
printf("\n la valeur est inferieure a 9 on ne fait donc rien \n);
}
//écriture de la nouvelle valeur
section="Autorun";
cle="Icon";
valeur=contienttext
writefile (section,cle , valeur , repertoire);