Rechercher : dans
Par :

Fichier trop volumineux en c#

Dernière réponse le 13 sep 2006 à 11:11:24 Laurent, le 5 sep 2006 à 18:24:44 
 Signaler ce message aux modérateurs

Bonjour,

Je tente d'importer un fichier plat en c#. je lis le fichier de façon séquentielle en utilisant un streamwriter.

Cependant, dès que la taille de mon fichier est trop importante (exemple : 4776 Ko), la page web plante et j'ai le message "Impossible d'afficher la page..."

Si je réduis la taille de mon fichier, cela fonctionne à nouveau.

Quelqu'un a-t-il une astuce pour ouvrir et lire de gros fichiers textes ?

Merci d'avance

Laurent.

Meilleures réponses pour « Fichier trop volumineux en c# » dans :
Envoyer des fichiers volumineux par mail VoirEnvoyer de gros fichiers à des amis par courrier électronique n'est pas toujours facile. La plupart des serveurs de messagerie n'acceptent pas des fichiers de taille supérieure à 5 Mo. Néanmoins, il existe des solutions alternatives : Les serveurs...
Envoyer de gros fichiers (pièces jointes) par mail VoirLes systèmes de messagerie bloquent généralement les pièces jointes volumineuses, alors comment faire parvenir un fichier lourd (de plusieurs Mo) à son destinataire ? La solution consiste à utiliser un service d'hébergement temporaire de fichiers...
Fichier NFO VoirFormat NFO Un fichier NFO est un fichier texte, c'est-à-dire un simple fichier contenant du texte au format ASCII. Un tel fichier accompagne généralement des fichiers en téléchargement pour apporter des informations additionnelles sur...
Le système de fichiers VoirQu'est-ce qu'un système de fichiers Les disques durs, aussi petits soient-ils, contiennent des millions de bits, il faut donc organiser les données afin de pouvoir localiser les informations, c'est le but du système de fichiers. Un disque dur est,...
Qu'est-ce qu'un fichier? VoirQu'est-ce qu'un fichier? Un fichier est une suite d'informations binaires, c'est-à-dire une suite de 0 et de 1. Ce fichier peut être stocké pour garder une trace de ces informations. Un fichier texte est un fichier composé de caractères stockés...

1

mamiemando, le 5 sep 2006 à 23:16:27

Soit tu découpes le fichier à l'affichage en plusieurs page, soit tu mets un lien pour le télécharger mais tu ne l'affiches pas. Mais ca me surprendrait qu'un être humain s'amuse à lire 5mo de texte d'une traite, tu es sûr qu'il n'y a pas de pronblème ? Genre des trucs qu'il est inutile d'écrire ?

Bonne chance

Répondre à mamiemando

2

Laurent, le 6 sep 2006 à 09:33:24

Merci pour ta réponse mais je n'essaie pas d'afficher les données du fichier. Je veux juste récupérer les données qui y sont stockées (dans des tableaux), les interpréter et regénerer un autre fichier en sortie qui aura un format totalement différent.

Et le fichier fait bien dans les 5Mo, le volume de données est important. Il y a des restrictions de taille au niveau des fichiers en c# ?

Je dois absolument pouvoir traiter de gros fichiers !!! HELP !!!

Laurent.

Répondre à Laurent

3

mamiemando, le 6 sep 2006 à 11:56:08

Dans le cadre de mon travail ça m'arrive de charger des fichiers de plusieurs dizaines de mega en c++ et ça marche sans problème... Pour accélerer le chargement des données on utilise les serialization de la lib boost mais ça commence à être éloigné de ce que tu fais (ça stocke directement dans un binaire les structures de données).

Dans ton cas tu lis bien le fichier ligne par ligne par ligne, et tu complètes ta structure de donnée en vue de l'écrire différement ? Tu ne t'amuses pas par exemple à le stocker dans une chaîne de caractère ?

Bonne chance

Répondre à mamiemando

4

lami20j, le 6 sep 2006 à 13:02:34

Salut,

Tu ne t'amuses pas par exemple à le stocker dans une chaîne de caractère ?

Ca sera une mauvaise idée, même en Perl ;)

lami20j

Répondre à lami20j

5

laurent, le 6 sep 2006 à 13:29:51

J'utilise le code suivant, mais il ne passe même pas par là, la page d'erreur s'affiche avant alors que si je réduis la taille de mon fichier il passe bien par mes lignes de code et tout se passe bien :

StreamReader sr = new StreamReader(p_nomFichier, System.Text.Encoding.GetEncoding("Windows-1252"));
// Open the file to read from.
string ligne;
bool flagEch = false;
Echantillon v_ech = null;
ArrayList listData = new ArrayList();
while ((ligne = sr.ReadLine()) != null)
{
if (ligne.Length == 0)
continue;

string [] listValeurLigne = ligne.Split(';');

if (listValeurLigne.Length!=1)
{
if (listValeurLigne[1].ToString().Equals("ECH"))
{
// mon code
}
}
}

Répondre à laurent

6

mamiemando, le 6 sep 2006 à 22:32:21

Je vois rien de choquant. Il faudrait voir à quel endroit précis du code ça plante, par exemple avec un debugger...

Répondre à mamiemando

7

Laurent, le 6 sep 2006 à 23:19:07

Le problème c'est que lorsque je mets un point d'arret dès le clic sur mon bouton (qui lance le code du précédent message), il ne passe même pas par le point d'arret, il s'arrete avant.

je ne vois vraiment pas quoi faire...

Répondre à Laurent

8

mamiemando, le 7 sep 2006 à 00:37:35

Ben il faut trouver où il bloque... Lance ton programme pas à pas au besoin... Une fois que tu auras trouvé la ligne ou ça bloque, il faut comprendre pourquoi ;-) Mais pour ça on t'aidera.

Répondre à mamiemando

9

Laurent, le 11 sep 2006 à 10:47:10

Le pb semble venir de mon filePicker car si j'inscris le nom de mon fichier en dur dans le programme, tout se passe bien.

une idée ?

Répondre à Laurent

10

Laurent, le 12 sep 2006 à 14:33:28

J'ai trouvé, par défaut dans une appli web asp, la taille des fichiers à uploader est fixée à 4Mo maximum, il faut donc modifier cette taille dans le web.config dans la section System.web et ajouter...

<httpRuntime
executionTimeout="90"
maxRequestLength="8192"
/>

... pour 8Mo par exemple.

Répondre à Laurent

11

 mamiemando, le 13 sep 2006 à 11:11:24
  • +1

Ok :-)

Répondre à mamiemando