begin process at 2012 05 29 16:58:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

Probleme ecriture dans un fichier texte


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

Probleme ecriture dans un fichier texte

dimanche 24 mai 2009 à 12:51:34 | Probleme ecriture dans un fichier texte

Jackyzgood

Bonjour à tous !

J'essaye de faire une petit programme qui me permettrais de découper facilement des sprites, pour cela, je crée dans un premier temps un découpage par défaut que je modifie en fonction de l'image qui apparait à l'écran puis je sauvegarde les coordonnées dans un fichier texte a la fermeture du programme.

Je vais vous donner un exemple :

le découpage par défaut est le suivant :
coordonnées X,Y puis hauteur, largeur
0 0 100 100       la coordonnée Y est a 0 (normale c'est la première ligne)
100 0 100 100
200 0 100 100
300 0 100 100
400 0 100 100
500 0 100 100
600 0 100 100
700 0 100 100
800 0 100 100
900 0 100 100  (fin de la première ligne)
0 100 100 100  (début de la 2eme)
100 100 100 100

Jusque la pas de soucis mon programme affiche correctement les images et les découpages. Cependant a la fermeture du programme je retrouve ceci dans mon fichier :

0 0 100 100
0 0 100 100
0 0 100 100
0 0 100 100
0 0 100 100
0 0 100 100
0 0 100 100
0 0 100 100
0 0 100 100
0 0 100 100
0 100 100 100

J'ai fais différents découpage pour voir si c'est un problème sur X ou Y ou les 2, et il s'avère que seul la coordonnées X n'est pas enregistré.

Voici les morceau de code de mon programme :

SDL_Rect clip[10][10];
int i = 0, j = 0;

        for (j = 0 ; j <= 9 ; j++)
        {
            for (i = 0 ; i <= 9 ; i++)
            {
                fscanf(testLecture, "%ld %ld %ld %ld", &clip[ i ][ j ].x, &clip[ i ][ j ].y, &clip[ i ][ j ].w, &clip[ i ][ j ].h);
                fprintf(fichier, "%ld %ld %ld %ld\n", clip[ i ][ j ].x, clip[ i ][ j ].y, clip[ i ][ j ].w, clip[ i ][ j ].h);
              
                //ici je test la lecture, et la copie faite dans fichier est parfaitement identique donc à priori ce n'est pas la lecture qui bloque....
            }
        }


        for (j = 0 ; j <= 9 ; j++)
        {
            for (i = 0 ; i <= 9 ; i++)
            {
                fprintf(testEcriture, "%ld %ld %ld %ld\n", clip[ i ][ j ].x, clip[ i ][ j ].y, clip[ i ][ j ].w, clip[ i ][ j ].h);
           
                // c'est ici que ça coince car malgré que ça soit exactement les même boucle le fichier testEcriture est différent de testLecture...
             }
        }


Si vous avez une idée de la boulette que j'ai pu faire.

Merci d'avance.



dimanche 24 mai 2009 à 13:49:52 | Re : Probleme ecriture dans un fichier texte

uaip

Salut,
Il ne manquerait pas un \n à la fin u fscanf ? (quoi que non, tu n'as pas eu de soucis pour récrire dans 'fichier')
Sinon, tu fais uoi de tes variables entre temps ? Si tu appelles tes 2 boucles l'une juste après l'autre, tu as quoi ?
(Au passage, %d suffit).

Cordialement, uaip.
dimanche 24 mai 2009 à 14:04:01 | Re : Probleme ecriture dans un fichier texte

Jackyzgood

Dans le programme initial entre les 2 boucles je modifie les coordonnées, donc les clip[ i ][ j ].x, clip[ i ][ j ].y, clip[ i ][ j ].w, clip[ i ][ j ].h avec  :

                  case SDL_KEYDOWN :
                  switch(event.key.keysym.sym)
                  {
                         case SDLK_RIGHT :
                              clip[ (*positionMarqueur).x ][ (*positionMarqueur).y ].x ++;
                              SDL_Delay(50);
                              break;

C'est pas le code complet mais ce n'est pas ça qui pose problème, car j'ai recommencé mon programme depuis le début pour voir ou était l'erreur et j'ai commencé par le bout de code de mon premier message, et déjà la ça bloque. Donc pour l'instant c'est juste un test de lecture et d'écriture dans un fichier, mais le plus perturbant c'est qu'a partir de la 2eme ligne tout se passe bien. Je suppose donc que ça doit être mes boucles qui doivent être mal écrite mais je ne vois pas du tout ou....

Pour le fscanf je n'ai pas mis de \n parce que de toute façon une fois arrivé a la fin de la ligne il part sur le début de la suivante.
dimanche 24 mai 2009 à 20:13:52 | Re : Probleme ecriture dans un fichier texte

Jackyzgood

j'ai fais un autre test j'ai essayé en mettant simplement un tableau a la place de clip[][].x :

    int i = 0, j = 0, tableau[10][10];



        for (j = 0 ; j <= 9 ; j++)
        {
            for (i = 0 ; i <= 9 ; i++)
            {
                fscanf(testLecture, "%ld %ld %ld %ld", &tableau[ i ][ j ], &clip[ i ][ j ].y, &clip[ i ][ j ].w, &clip[ i ][ j ].h);
                fprintf(fichier, "%ld %ld %ld %ld\n", clip[ i ][ j ].x, clip[ i ][ j ].y, clip[ i ][ j ].w, clip[ i ][ j ].h);
            }
        }


        for (j = 0 ; j <= 9 ; j++)
        {
            for (i = 0 ; i <= 9 ; i++)
            {
                fprintf(testEcriture, "%ld %ld %ld %ld\n", tableau[ i ][ j ], clip[ i ][ j ].y, clip[ i ][ j ].w, clip[ i ][ j ].h);
            }
        }

et dans ce cas la ça marche ! j'ai donc un problème avec clip, je l'ai déclaré de la manière suivante :

    SDL_Rect clip[10][10];

aurais-je mal utilisé cette structure ?
lundi 25 mai 2009 à 18:20:55 | Re : Probleme ecriture dans un fichier texte

uaip

Dans mon 1er post, je voulais te demander si SDL_Rect initialisait bien ton tableau, mais finalement, c'était sans pas pas important, vu que tu remplis chaque case.
Ta variable "tableau" est de type entier, sans doute qu'il caste automatiquement dans le scanf. Je ne connais pas le type de SDL_Rect.
Mes recherches vont être stoppées par mon mal de crâne, désolé.

Cordialement, uaip.


Cette discussion est classée dans : fichier, programme, clip, for, ld


Répondre à ce message

Sujets en rapport avec ce message

AIDE programme supprimer un fichier ! SVP [ par nico ] salut à tous,je suis un gros nul en c++ , je viens de telecharger dev-c++ et j'aimerais faire mon premier programe tout simple pour supprimer un fichi Vérifier un header de fichier... [ par MorZong ] Salut,Voilà j'ai créer un programme (simple, pas avec API) de cryptage tout simple et je voudrais qu'il ait sont propre genre de fichier. Alors j'ai m erreur de demarrage programme [ par nango ] Quand je compile sous visual c++ il m'apparait le message d'erreur suivant : "un fichier.DLL requis, MSPDB60.DLL, n'a pas été trouvé".Pourtant ce fich Poblèmes pour lire un fichier audio dans un programme C++ [ par Nicolas ] Pour un projet C++ (linéaire),il souhaiterais réalisé une bibliothèque musical(.mp3, .wav). J'aurais besoin pour ca de lire les fichiers audio mais je Pb de compilation [ par Cyberboy2054 ] Salut J' ai un piti problème de compilation en C++Quand j' ai terminé mon programme (un aplication console)je teste mon programme depuis le compilateu lire un fichier d'option [ par Vinsou ] Je dévellope un projet sous linux. Dans ce programme j'ai des variables qui contiennent le chemin de fichiers se trouvant sur le système, qui doivent QUESTION ya T IL UN AUTRE MOYEN EN RESEAU ? [ par bily ] Vegeta :-)comment faire pour envoyer un fichier par programme ??je programme en c++builder et j'utilise les socketsG 1 IDEE mais est ce la BONNE ?Li ouverture d'un fihier au lancement d'un programme [ par spirit ] j'aimerai savoir comment connaitre le nom d'un fichier lors de l'execution du programme associé à ce fichierex: quand on clique sur un fichier .txt, B programme à faire [ par cmoa ] bonjour , j'ai un programme que je ne sais pas écrire (j'y connais rien)voici le sujet:écrire 1 programme qui lit le contenu d'1 fichier(source écrit


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 0,359 sec (4)

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