Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1114 connectés 

  FORUM HardWare.fr
  Programmation

  Taille de fichiers

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Taille de fichiers

n°74836
mario51
Posté le 23-11-2001 à 15:16:33  profilanswer
 

Et ce que la taille s de fichiers txt est limité ?
 
J'ai plein de données a stocker ( environ 100 000 lignes) et ca plante lors de l'execution !!!
 
Y a t il un autre moyen de stocker avec acces rapide?
 
merci

mood
Publicité
Posté le 23-11-2001 à 15:16:33  profilanswer
 

n°74838
Carbon_14
Posté le 23-11-2001 à 15:20:35  profilanswer
 

La limite physique doit être celle du système d'allocation. Que ce soit du txt ou du bmp ou autre, c'est pareil.
 
Ce qui plante, c'est quoi ? A la lecture, ou à l'écriture des données ?
Quel est le nom de cette sympathique application ? BlocNote ?
 
Pour les fichiers texte, j'utilise PFE (Programmer File Editor), un freeware.
 
Dans le texte, y a pas de caractères non inscriptibles ?

n°74841
mario51
Posté le 23-11-2001 à 15:23:53  profilanswer
 

CARBON_14 a écrit a écrit :

La limite physique doit être celle du système d'allocation. Que ce soit du txt ou du bmp ou autre, c'est pareil.
 
Ce qui plante, c'est quoi ? A la lecture, ou à l'écriture des données ?
Quel est le nom de cette sympathique application ? BlocNote ?
 
Pour les fichiers texte, j'utilise PFE (Programmer File Editor), un freeware.
 
Dans le texte, y a pas de caractères non inscriptibles ?  




 
ca plante a l'ecriture des données et ca ecrit rien!
Si j'ecris seulement 100 lignes, ca va mais plus non!  
Ou puis trouver PFE et a quoi ca sert exactement?
 
merci

n°74847
flo850
moi je
Posté le 23-11-2001 à 15:32:05  profilanswer
 

si c pour stocker des masses de données , pourquoi tu utilise pas une base de données .
en plus les perfs seront améliorées


---------------

n°74855
Carbon_14
Posté le 23-11-2001 à 15:45:13  profilanswer
 

Le soft qui écrit les données (100 000 lignes), c'est quoi ? Il reste la place sur le disque destination ?

n°74856
Carbon_14
Posté le 23-11-2001 à 15:47:55  profilanswer
 

Si les données ne sont que des nombres (genre flottants), ça peut se stocker sous forme binaire. Tout dépend de la précision voulue (nombre de décimales), du but final (pas très clair), de l'accès avec un autre soft, de modif éventuelles (on écrit au bout du fichier, on doit en effacer une partie avant d'écrire, ...)....

n°74858
mario51
Posté le 23-11-2001 à 15:52:39  profilanswer
 

CARBON_14 a écrit a écrit :

Le soft qui écrit les données (100 000 lignes), c'est quoi ? Il reste la place sur le disque destination ?  




 
c'est un programme C!

n°74859
Carbon_14
Posté le 23-11-2001 à 15:57:06  profilanswer
 

Y a moyen de voir un bout de code (ouverture, accès en écriture, fermeture (facultatif, car si ça plante avant ..)) ?
 
Si ça écrit RIEN, c'est qu'il y a un pb de fonction (ou de variable). Ca doit au moins écrire une ligne si le disque n'est pas plein à ras bord).

n°74872
mario51
Posté le 23-11-2001 à 16:19:45  profilanswer
 

CARBON_14 a écrit a écrit :

Y a moyen de voir un bout de code (ouverture, accès en écriture, fermeture (facultatif, car si ça plante avant ..)) ?
 
Si ça écrit RIEN, c'est qu'il y a un pb de fonction (ou de variable). Ca doit au moins écrire une ligne si le disque n'est pas plein à ras bord).  




 
 
voila le code:  
 
void creation_fichier_precalcule()
{
 FILE* fp;
 char motif_temp[12];
 char chaine_temp[50]="";
 int i,j;
 
 if((fp=fopen("pre_calcule.txt","w" ))==NULL)
  fputs("impossible d'ouvrir le fichier pre_calcule",stderr);
 
 
// strcat(chaine_temp,"1" );
 chaine_temp[0]='1';
 
 i=3;
 while(i!=4097)
 {
  strcpy(motif_temp,decimal2binaire(i));
  fprintf(fp,motif_temp);
  fprintf(fp,"\n" );
   
  for(j=1;j<=49;j++)
  {
   strcat(chaine_temp,"1" );
   fprintf(fp,chaine_temp);
   fprintf(fp,recherche_sequentielle(motif_temp,chaine_temp));
   fprintf(fp,"\n" );
   strcat(chaine_temp,"1" );
  }
  i=i+2;
  //la je voudrais repartir avec une chaine vide !!!!
 }
 
 
 
 
 fclose(fp);
 
}
 
 
une idée???

n°74885
Carbon_14
Posté le 23-11-2001 à 16:35:24  profilanswer
 

Le seul truc qui me vient comme cela, mais pas sûr du tout :
fopen admet les noms longs ?? (c'est peut-être absurdité en mode 32 bits)
 
Calcul.txt, pour tester ? Si OK, ça vient du nom du fichier non 8+3 (ou 8.3).
 
J'ai eu un pb une fois avec une fonction API Windows qui lit les métafichiers. Quand le nom est long, elle cafouille (rejet) car elle date du 16 bits. Il y a une fonction Windows 32 bits qui permet de transcoder ("masquer" ) un nom long pour le faire digérer par une fonction "nom court". Je sais plus son nom, faudrait que je cherche.
 
Ai pas trop le temps de m'y plonger, mais attention aux chaînes à 50 "cases" : n'y écrire que 49 caractères (y a un \0 à la fin). :)

mood
Publicité
Posté le 23-11-2001 à 16:35:24  profilanswer
 

n°74913
mogi
Posté le 23-11-2001 à 17:30:49  profilanswer
 

heu, il y a bien une limite physique pour ton fichier qui est imposé par ton OS, mais je crois que le pb est ailleurs...
 
il semblerait que tu remplisses un peu trop ta chaine temporaire
 
d'ailleurs c'est un peu dangereux de faire
 
char chaine_temp[50]="";
//là, t'es sur que chaine_temp[0]=='\0'
chaine_temp[0]='1';
//là, tu peux rien dire sur chaine_temp[1] !!!
 
il me semble qu'après tu ne fais que des strcat sur chaine_temp... alors forcément, 50 caractères c'est vite rempli :-)
 
Mogi.

n°74914
mario51
Posté le 23-11-2001 à 17:33:02  profilanswer
 

Merci les gars!!!
 
Savez vous comment "repartir" avec une chaine vide?

n°74916
mogi
Posté le 23-11-2001 à 17:43:15  profilanswer
 

chaine_temp[0] = '\0';
 
Mogi.

n°74975
bjbebert
Posté le 23-11-2001 à 21:44:23  profilanswer
 

Je sais pas vous mais moi la ligne 'char chaine_temp[50]="";',ca me plait moyen.
Tu prefererais pas : char chaine_temp[50]; chaine_temp[0] = '\0';

n°75510
Carbon_14
Posté le 26-11-2001 à 09:10:01  profilanswer
 

J'utilise la méthode bjbebert car on voit mieux ce qu'on fait (+ lisible).  
Si le compilateur traduit mal ="", on sait pas trop ce qu'on obtient ...
 
Désolé, vendredi je manquais de temps...

n°75603
mogi
Posté le 26-11-2001 à 15:21:41  profilanswer
 

bjbebert a écrit a écrit :

Je sais pas vous mais moi la ligne 'char chaine_temp[50]="";',ca me plait moyen.
Tu prefererais pas : char chaine_temp[50]; chaine_temp[0] = '\0';  




 
en fait, je pense que les deux notations sont équivalentes...
 
Mario51: as-tu tjrs des pb ?
 
Mogi.

n°75799
mario51
Posté le 26-11-2001 à 23:07:53  profilanswer
 

mogi a écrit a écrit :

 
 
en fait, je pense que les deux notations sont équivalentes...
 
Mario51: as-tu tjrs des pb ?
 
Mogi.  




 
Merci les gars, mon probleme et resolu !!!!
 
Autre probleme: code un entier qui fait plus de 20 chiffres!!!!

n°75877
Carbon_14
Posté le 27-11-2001 à 09:36:13  profilanswer
 

Topic un peu plus haut à cette heure :
http://forum.hardware.fr/forum2.ph [...] &owntopic=


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Taille de fichiers

 

Sujets relatifs
[HTML] "wallpaper" centrer et d'une taille defini[DJGPP] Quelle commande pour lier des fichiers objets avec LD?
Comment faire tenir du code source sur plusieurs fichiers avec djgpp?HTML - Comment réduire la taille d'une liste/menu ?
php et securite fichiers[C++] Generer des fichiers d'erreurs
Fichiers "TIF" et Visual Basic... HELP!!!!!![C++ - MCF?] copie de fichiers avancée
[java] taille des fichiers .classpeut on faire des conditions sur la taille des fichiers avec un batch
Plus de sujets relatifs à : Taille de fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR