Vous avez besoin d'aide ? Posez votre question sur le forum, il y a aura toujours un membre pour vous conseiller, et vous dépanner. Poser une question.
Participer, encore 264 messages sans réponses
Le forum de Savoir Tout faire, Comment comparer 2 entier dans un fichier avec c ?

La solution au problème n'a pas été trouvée pour l'instant Comment comparer 2 entier dans un fichier avec c ?

Forum-> Programmation
Poster un nouveau sujetRépondre au sujet
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
kink2009

Nouveau membre
Inscrit le: 30 Avr 07
Messages: 1

MessagePosté le: 30 Avr 2007 18:34 
salut
voici un code :mais le pb que j'ai un fichier de 35940 lignes et dans chaque ligne j'ai 2 chiffres séparé par un virgule et ce code peut lire au maximum 6300 lignes
je veus une solution

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define CMAX 17 //nb colonne
#define LMAX 6300 //nb ligne
#define MAX_CHAR_PER_LINE 1650 //nb caractere par ligne (pas de probleme)
#define SEP "," //separateur entre les chifre
#define FICH "sortieF.txt" //fichier ou se trouve mes donnes


int main(int argc, char* argv[])
{
FILE *m_File, *p;
int i = 0;
int j;
float Tab[LMAX][CMAX];
char szbuff[MAX_CHAR_PER_LINE];
char* token;



// On initialise le tableau a -1
for(i=0;i<LMAX;i++)
{
for(j=0;j<CMAX;j++)
{
Tab[i][j] = -1;
}
}

// On réinitialise le compteur de ligne car i;a été incrémenté lors de l'iniatialisation
i = 0;

// On ouvre le fichier en lecture seule et en mode texte
m_File = fopen(FICH,"rt");
//un autre fichier pour stoker le resulat
p=fopen("stockTab.txt","w");

if(!m_File) return 1;

// On lit le fichier ligne a ligne et on stocke les valeurs dans un tableau d'entier
while(!feof(m_File) && i < LMAX)
{

j = 0;

// On récupere la ligne courante du fichier
fgets(szbuff,MAX_CHAR_PER_LINE,m_File);

// On decoupe la ligne selon le charactere de séparation SEP (" ")
// strtok() -> decoupage de chaine de caracteres
token = strtok(szbuff,SEP);

// On lit les éléments découpés un à un et on les stocke dans le tableau Tab
while(token != NULL && j < CMAX)
{
// On stocke la valeur lue dans le tableau
Tab[i][j] = atof(token);
// On lit l'element suivant retourner par strtok
token = strtok(NULL,SEP);
// On incremente le compteur des ordonnées
j++;
}

// On incrémente le compteur des abscisses
i++;
}


// On stoke le tableau dans un fichier

float n=0;
for(int x=0;x<i;x++)
{
for(int y=0;y<j;y++)
{
n=Tab[x][0]-Tab[x][1];
fprintf(p,"%0.6f\t",Tab[x][y]);
}

fprintf(p,"la difference est : %0.6f ",n);
fprintf(p,"\n");
}
fclose(p);
return 0;

}
KNP6bI

Membre régulier
Inscrit le: 30 Avr 07
Messages: 161

MessagePosté le: 30 Avr 2007 20:31 
super, du C... euh, du C++...

salut, oui, salut... (^_^)

ouah, tu cherches compliqué!
ton problème c'est la taille du fichier c'est ça?
(admettons que tu arrives à traiter tes données)

déjà, tu as vu LMAX? il est fixé à 6300, pas à 65535...
ou alors à 1073741824= 1Go (mais c'est alors un double word)

et enfin, pourquoi tu te fixes une valeur limite?
tu oublies le test END OF FILE que tu utilise :
while(!feof(m_file)...)

si tu veux une valeur limite, teste la taille de ton fichier
(cf. voir tes cours) et divise la par 3
(data1, séparateur, data2) = 0,0 au minimum

ou alors écris directement sur ton fichier de sortie
à chaque fois que ton tampon est plein
(ton tableau Tab[i][j])
n'utilise plus j, mais Lj qui vaut quelque chose comme Lj=j-(LMAX*e)
où e est le nombre de fois où tu à écris sur ton fichier de sortie
Et quand ton fichier est fini, écris les données que tu as mémorisé
(utilise un compteur pour savoir où tu en est dans ton tableau)

j'èspère que ça t'aidera un peut...

EOF_
Montrer les messages depuis:   
Poster un nouveau sujetRépondre au sujet    Savoirtoutfaire Index du Forum -> Programmation Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1




 

Sujets similaires du


Comment apprendre la programmation avec oracle ?
POURQUOI UNE PROGRAMMATION ?
Comment débuter en programmation c ?
Comment apprendre la programmation ?
Comment apprendre la programmation ?
Comment faire ma programmation sous WinDev 10 ?
Quel logiciel est le meilleur pour faire programmation ?
Comment changer fichier clsd en pdf ?
Comment ajouter un fichier .jar à JBuilder ?
Comment enregistrer le fichier PSD corrompu ?
Quellesseraient les méthodes pour récupérer le fichier ?
Comment récupérer des données à partir du fichier .dbf ?
Comment réparer le fichier Word corrompu ?
Fichier Zip invalide - tête local estendommagé ?
Je tente de récupérer le fichier Excel corrompu ?

Liens Google


Mots clés :

disque format tableau données fil bord excel logiciel vitrage lecteur droit base prise grande ohms courant chauffage windows carte gros edf maison internet électrique image programme terre dur fonction ligne ordinateur hifi disjoncter fusible hauteur fenêtre document texte puissance créer page choisir erreur patron installation résistance disjoncteur fichier tension prix
Administratif et JuridiqueAdministratif et Juridique ApicultureApiculture AutomobileAutomobile BeautéBeauté BonsaïBonsaï CoutureCouture CuisineCuisine DécorationDécoration ÉconomiesÉconomies ÉlectricitéÉlectricité ÉlectroménagerÉlectroménager ÉlectroniqueÉlectronique FleursFleurs InternetInternet MaçonnerieMaçonnerie ModélismeModélisme NettoyageNettoyage OrigamiOrigami PhotoPhoto PlomberiePlomberie PotagerPotager SantéSanté SolfègeSolfège Travail du boisTravail du bois TricotTricot VidéoVidéo