Accueil > Forum > > > > pb pour écrire dans un fichier
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
|
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
|
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
Livres en rapport
|
Derniers Blogs
L'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIESL'INTERFACE NATURELLE DE WINDOWS PHONE 7 SERIES par odewit
La tendance est aux interfaces naturelles (NUI), et le keynote de Bill Buxton au MIX l'a bien souligné.
La charte graphique et ergonomique de Windows Phone 7 a donc été entièrement repensée en vue d'obtenir un maximum d'efficacité sur ce point. En re...
Cliquez pour lire la suite de l'article par odewit COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE?COMMENT MAPPER UNE VUE SQL SUR UNE COLLECTION DE COMPLEX TYPE? par Matthieu MEZIL
Avec EF, les vues doivent être mappées sur des entity types. Le problème c'est que les entity types doivent avoir une clé. Avec EF, nous avons les complex type qui n'ont pas de clé mais les vues ne peuvent pas être mappées dessus. Avec EF4, il est possibl...
Cliquez pour lire la suite de l'article par Matthieu MEZIL [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson
Forum
TRADAIONTRADAION par shootangel
Cliquez pour lire la suite par shootangel
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|