Stocker le contenu d'un fichier dans une variable en c#
Souliabdo
Messages postés186Date d'inscriptionmercredi 14 mars 2007StatutMembreDernière intervention11 avril 2011
-
25 mai 2009 à 16:05
Souliabdo
Messages postés186Date d'inscriptionmercredi 14 mars 2007StatutMembreDernière intervention11 avril 2011
-
27 mai 2009 à 17:10
Bonjour,
<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Je voudrais savoir comment Stocker le contenu d'un fichier dans une variable en c# pour stocker cette variable dans une base de donées sqlserver
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 25 mai 2009 à 17:11
Salut
Pour "stocker le contenu d'un fichier dans une variable", il suffit de lire le fichier via StreamReader.ReadToEnd() qui te renverra un string, que tu sauvegarderas alors dans ta base.
Si tu as la moindre question, n'hésite pas...
... à faire des recherches sur ce site et/ou sur Google. Ils sont là pour ça. Si tu ne trouves pas, c'est que tu n'as pas cherché.
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 25 mai 2009 à 17:54
Si c'est une image, non, tu ne peux pas utiliser ReadToEnd(), qui renvoie un string, et non un tableau d'octets.
En ce qui concerne DocAss, non, elle ne contient pas ton fichier. Un StreamReader c'est un peu comme une tête de lecture. Tu l'utilises pour récupérer tes informations, mais ce n'est pas une information.
Souliabdo
Messages postés186Date d'inscriptionmercredi 14 mars 2007StatutMembreDernière intervention11 avril 20112 26 mai 2009 à 09:30
Merci pour le lien !
Je me demande si ce code s’applique pour tout type de fichier ou que pour des fichier images ?
Ma deuxième question est :
1.
m_barrImg=new
byte
[Convert.ToInt32(
this
.m_lImageFileLength)];<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
2.
int
iBytesRead = fs.Read(m_barrImg,
0
,
3.
Convert.ToInt32(
this
.m_lImageFileLength));
Au stade de premier ligne la variable m_barrImg contient le fichier qu’on peux stocker dans la base, est ce que la ligne 2 est indisponsable ? ou on peux se contenter de la 1er ligne pour recupere m_barrImg qui contient mon fichier.
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 26 mai 2009 à 10:13
Je répète ce que je t'ai dit lors de ma précédente réponse :
Un stream ne contient rien du tout. Un stream c'est comme une tête de lecture (ou d'écriture). Ça sert à lire le fichier mais CE N'EST PAS le fichier.
Donc DoccAss ne contiendra jamais ton fichier. Cependant, un streamreader marche pour n'importe quel type de fichiers.
Au niveau de ton code : Après la ligne 1, m_barrImg ne contient absolument pas ton image. Désolé de dire ça ainsi, mais ça prouve qu'il te manque des connaissance absolument basiques en C#. En l'occurrence, ta première ligne alloue juste de la mémoire pour ton tableau de bytes (dont la taille est la même que celle du fichier) (et les bytes de ton tableau sont automatiquement initialisés à 0). De plus, si tu regardes cette première ligne, le seul lien qu'elle est avec ton fichier, c'est qu'elle récupère sa taille, et donc en aucun cas son contenu. Ce dernier n'est accessible que via un StreamReader (qui, je le rappelle, n'est qu'une classe qui donne accès à un contenu, pas le contenu lui-même).
Evidemment donc que la 2ème ligne est indispensable. C'est elle qui charge ton fichier en mémoire. Il suffit, si tu n'en es pas sûr, de regarder la doc MSDN de la fonction Read() d'un streamreader (MSDN est là pour ça).
Enfin, oui, cette méthode marche théoriquement pour n'importe quel type de fichier.
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -