babaOrhumette
Messages postés104Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention 7 avril 2019
-
10 sept. 2010 à 20:33
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 2017
-
23 oct. 2010 à 08:02
Bonjour,
Le titres n'est certainement pas très explicite et je ne dois pas être dans la bonne section, je m'en excuse par avance.
Voilà, j'ai un énorme fichier de 10 Go.
J'aimerai prendre Go par Go et travailler dessus les uns à la suite des autres.
En fait j'aimerai mettre le 1er Go du fichier dans byte[], travailler dessus, puis le second Go du fichier dans byte[], travailler dessus... jusqu'au dernier Go.
BabaOrhumFile est le fichier de 10 Go.
FileStream StreamFichier = new FileStream(BabaOrhumFile, FileMode.Open, FileAccess.Read);
byte[] Fichier = new byte[StreamFichier.Length];
Une erreur apparait à la dernière ligne car le fichier est beaucoup trop grand/lourd.
Ce que je ne sais pas faire c'est prendre des parties du fichier.
Voilà, en espérant avoir été à peu près claire, je vous remercie de votre attention.
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 201733 23 oct. 2010 à 08:02
Salut,
il y a une erreur dans la commande de lecture, remplace 'pos' par '0'
car ce parametre indique la position d'écriture dans le tableau, pas celle de lecture dans le fichier.
using (System.IO.StreamReader reader = new System.IO.StreamReader(BabaOrhumFile))
{
Char[] buffer = new Char[1024];
int readchar = 0;
while ((readchar = reader.Read(buffer, 0, 1024)) > 0)
{
// ton traitement
}
}
Mais je voudrais revenir sur la finalité du truc.
ton fichier est-il de type binaire ou texte (ascii, utf unicode)?
car si c'est du texte, alors il serait plus judicieux d'utiliser un StreamReader et un StringBuilder, puis un Regex pour ta recherche