begin process at 2010 02 10 10:02:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

pb pour écrire dans un fichier


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

pb pour écrire dans un fichier

jeudi 17 janvier 2008 à 17:44:52 | pb pour écrire dans un fichier

mailliam


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

vendredi 18 janvier 2008 à 11:27:35 | Re : pb pour écrire dans un fichier

gamemonde

Membre Club
on ne lit pas un int mais un char
si tu veux continuer a le transformer en int verifie le code assci c'est pas 9

et de plus la deuxieme fois que tu ouvres ton fichier tu le lis en lecteur ca doit etre w+

je te conseille plus la fonction

GetPrivateProfileString
et

SetPrivateProfileString

qui te permet de modifier et de lire justement le type
[Autorun]
ico=1.bmp
....

vendredi 18 janvier 2008 à 15:33:14 | Re : pb pour écrire dans un fichier

nickydaquick

Membre Club

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 ...!
vendredi 18 janvier 2008 à 17:21:22 | Re : pb pour écrire dans un fichier

mailliam

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 <iostream.h>
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);

printf("Programme termine.\n\n");
system("PAUSE");
return 0;
}

Merci infiniment en tout k!



Cette discussion est classée dans : fichier, printf, autorun, inf, caractereactuel


Répondre à ce message

Sujets en rapport avec ce message

Petit probleme de code en C sur Linux !! [ par UncleShu ] Je voudrais créer un fichier dans le réperoire personnel d'un utilisateur mais mon code ne marche pas !!#include #include #include #define DIR $HOM Debutant : ecrire et lire un fichier txt [ par manu ] Bonjour a tous.Je debute, aussi desole.... :)Je cherche donc a ecrire dans un fichier txt, puis a lire ce fichier ligne a ligne, faire un split / expl Analyse fichier log a faire en C [ par Nexouille ] A l'aideeeeeeeeeeeeeeeeeeeeeeeeee***************************************Les serveurs web enregistrent la trace des visites dans des fichiers de log. C Aide fichier :) [ par asnow ] Salut a tous :)Voila mon tit code pour ouvrir un fichiervoid Ouverture () {char nomf[20]; printf("Entrez le nom du fichier :"); scanf("%s", nomf [C] lecture d'un fichier [ par GazGaz ] lu allalors voila en fait je lis un fichier en c et le probleme c'est que ce fichier est composé de lignes dont la taille exècede largement les 80 car Affichage d'une image BMP en C [ par sabres ] Voici le code source d'un début de programme écrit sous Turbo C/C++ permettant d'afficher les caractéristiques d'une image BMP et de l'afficher. Le pr probleme en langage C - URGENT!!!!! [ par mazo0012 ] bonjourjai un gros pb en C, si quelq'un pouvait m'aider apidement je commence a devenir dingue!!!!!!jexplike:tout simplement, j'essaye de saisir le ch Petit Bug [ par LordBob ] Bonjour a tous,voici deux fonctions:#include #include // Variableschar SourceFile[1024];char DestinationFile[1024];<b CRYPTAGE !!! [ par megaman ] Voilà j'essai de faire un log de cryptage à l'aide de fonctions et procédure.Les fonctions et procédures :Une fonction qui retourne le nom de fichieru [debutant]attribution dun mot a une char et comparaison ... [ par DarkEbola ] en fait, jaurais aimé attribuer du texte a une charkke chose comme 500 ou 600 caracteres maximais jarrive pas a lui attribuer plus de 1 Charsuis-je pl


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 1,388 sec (3)

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