begin process at 2012 05 29 17:59:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

pb de chargement d'un fichier txt dans un tableau


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

pb de chargement d'un fichier txt dans un tableau

mercredi 5 août 2009 à 16:05:18 | pb de chargement d'un fichier txt dans un tableau

malouve

Bonjour,
j'ai un problème bloquant dans mon projet et j'ai désespérement besoin d'un coup de main
j'ai fait un traitement sur un fichier de base pour retirer des elements qui m'interessent que j'ai mis dans un autre fichier txt en sortie appelé f.
le fichier f se présente comme suit
value position
132879 239
129838 495
119677 748
124528 1004
129679 1259
118786 1516
106028 1519
110390 1521
107297 1525
106501 1527
131993 1531
131886 1533
132069 1535
133263 1537
122166 1770
119731 2025
121256 2027
111250 2029
107753 2031
113319 2033
113187 2035
109311 2037
113094 2040
122961 2044
113557 2048
113885 2052
112427 2057
113695 2060
114689 2064
126138 2068
112124 2072
112572 2076
112929 2080

je voulais maintenant reprendre le fichier de sortie f en lecture pour effectuer d'autres traitements sur ces valeurs
j'ai donc

Code C/C++ :

sprintf((char *) &filename,"fic2_res.txt");
f = fopen(filename,"w+");
// compt est le nombre de lignes dans mon fichier f qui a été écrit auparavant
// tab1 et tab2 sont 2 tableaux qui recupère respectivement la 1ère colonne et la 2nde colonne de mon fichier
for (k=1;k<compt;k++)
{
fscanf (f,"%d %d\n", &tab1[k], &tab2[k]);
printf ("%d %d\n", tab1[k], tab2[k]);

}

Mon problème est que à l'affichage,
je n'ai pas les premières valeurs et j'ai par exemple pour la ligne en rouge
961 044

je ne comprends vraiment pas le pb
mon indice k, compt est déclaré en long
j'écris et je veux lire mon fichier f dans la même fonction ;

Merci si vous y comprenez quelque chose

mercredi 5 août 2009 à 17:14:49 | Re : pb de chargement d'un fichier txt dans un tableau

gaoul78990

bonjour,
quel est le type de tes tableaux? s'il sont déclarés en tant que int le pb vient peut etre de la (val > 65535)et qu'il faudrait déclarer des long et changer ton code:

Code C/C++ :

fscanf (f,"%ld %ld\n", &tab1[k], &tab2[k]);
printf ("%ld %ld\n", tab1[k], tab2[k]);

mercredi 5 août 2009 à 17:16:36 | Re : pb de chargement d'un fichier txt dans un tableau

malouve

je pense que le problème est que je ne fais pas la lecture en début de mon fichier (qui vient à peine d'être créé en écriture)
sauriez-vous comment faire pour lire en début de mon fichier et récupérer les valeurs dans les deux tableaux ( sans la première ligne qui correspond au message )
je vous remercie d'avance pour vos réponses

mercredi 5 août 2009 à 17:48:39 | Re : pb de chargement d'un fichier txt dans un tableau

gaoul78990

Code C/C++ :
    int d,k,compt=20;

long int tab1[500],tab2[500];
FILE* f;
f = fopen("test.txt","r+");
char chaine[100];
fscanf (f,"%s\n",chaine);
for (k=0;k<compt;k++)

{

fscanf (f,"%ld %ld\n", &tab1[k], &tab2[k]);

printf ("%ld %ld\n", tab1[k], tab2[k]);



}


En espérant avoir fait avancé le shmilblik

mercredi 5 août 2009 à 19:12:11 | Re : pb de chargement d'un fichier txt dans un tableau

malouve

excuses moi je viens de voir ton message.
Mes tableaux sont bien des Long
et f est à la base un fichier qui est créé en écriture ( vu que c'est le resultat d'un premier traitement )
ensuite j'utilise le f en lecture , c'est pourquoi je l'ai déclaré en w+
pas de changement pour ton id mais merci bcp

mercredi 5 août 2009 à 19:38:32 | Re : pb de chargement d'un fichier txt dans un tableau

Chouchou182

Salut,
Est-ce que tu ne peux pas stocker dans le tableau les valeurs lorsque tu les "retire du fichier de base" ? Plutôt que mémoire -> disque -> mémoire, essaie le mémoire -> mémoire, plus simple et plus rapide (ce qui n'empêche pas de sauvegarder les données dans un fichier si tu en as un autre usage).

Avec un int (32 bits en général), on peut compter jusqu'à plus de 2 milliards, ce qui est largement suffisant pour stocker 122961.

Ça :
sprintf((char *) &filename,"fic2_res.txt");
n'a pas d'intérêt.

fscanf, entre autres, renvoie une valeur (int fscanf(...)) ; c'est dommage de ne pas la regarder.

Bonne prog,
--
Chouchou.

mercredi 5 août 2009 à 21:18:27 | Re : pb de chargement d'un fichier txt dans un tableau

malouve

slt Chouchou182,
finalement, je mets mes valeurs dans un tableau et j'effectue d'autres traitements.
je voudrais tester la colonne des positions
si les positions se suivent ( de 2, 3 ou 4 ) alors on conserve que la value la plus élevée de toutes les valeurs

exp: les valeurs en rouge ont des positions qui se suivent

value position
132879 239
129838 495
119677 748
124528 1004
129679 1259
118786 1516
106028 1519
110390 1521
107297 1525
106501 1527
131993 1531
131886 1533
132069 1535
133263 1537


donc dans mon fichier de sortie , je dois avoir
value position
132879 239
129838 495
119677 748
124528 1004
129679 1259
133263 1537

si vous avez des idées

j'ai fait cet algo mais c'est pas terrible

Code C/C++ :
for (k=1;k<compt;k++) 

{if ((tab2[k+1]== tab2[k]+2) ||(tab2[k+1]== tab2[k]+3)|| (tab2[k+1]== tab2[k]+4))
{ if (tab1[k+1]>tab1[k])
{if (f) fprintf (f,"%d %d\n",tab1[k+1], tab2[k+2]);
else fprintf(stderr,"Erreur : ne peut pas ouvrir %s\n",filename);
}
}
else
{if (f) fprintf (f,"%d %d\n",tab1[k], tab2[k]);
else fprintf(stderr,"Erreur : ne peut pas ouvrir %s\n",filename);
}
}


merci



Cette discussion est classée dans : fichier, pb, txt, color, compt


Répondre à ce message

Sujets en rapport avec ce message

PB: ouverture de fichier [ par stephanelin ] Bonjour tt le monde,j'ai réalisé un prog. qui permet de charger ds un fichier txt deux colonnes de mots (je les rentre 2 par deux, par ligne...)... l' ouverture d'un gros fichier txt ( taille > 3Mo) [ par malouve ] Bonjour, J'ai a traité des fichiers txt de valeurs dont je ne connais pas le nombre d'elements mais qui font plus de 3Mo. J'ai essayé la fonction fre pb de pointeur [ par elisabeth_nov ] Bonsoir,mon souci c'est que j'ai créé un programme qui permet de crypter un fichier, ce que je ne parvien pas à faire c'est à afficher le fichier que gestion d'un fichier.txt en C++ [ par moberol ] Bonjour à tous! je debute en C++,le problème c'est que je voudrai lire un fichier texte dans sa totalité...en meme temps compter le nombre  "d'un mot" pb d'exécution pgm c++ [ par malikach ] Bonjour, j'ai un pb avec mon pgm C++, j'ai fait un pgm qui lit à partir d'un fichier dans un tableau , le tableau est à deux dimensions déclaré en u Gros problème sur les fichiers en C [ par Zworykin ] Bjr à tous voià dans le cadre d'un tp je dois faire les fichiers de mon programme. j'arrive à écrire dans mon fichier mais je calle trop et c'est pas En C++, stocker dans un AnsiString le contenu d'un fichier .txt [ par pokerdany ] Bonjour tout le monde! Après de longues recherches qui ne m'ont pas amenées à un résultat satisfaisant, je repose la question, en espérant que je ne v ecrire fichier txt avec ofstream [ par MiharbiDoNo ] bonjour, je suis encore debutant en c++, je veux juste savoir commment ecrire des lignes de texte dans un ficher txt. j'ai vu des tuto mais j'ai pas a ecriture d'un txt dans le même dossier [ par MiharbiDoNo ] j'essai d'ecrire un fichier txt a l'aide de [code=cpp]ofstream myfile; myfile.open ("exemple.txt");[/code] le probleme c'est l'emplacement du fichier


Nos sponsors


Sondage...

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 : 5,866 sec (3)

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