lecture/écriture de tableau en bloc dans un fichier

Le
Eric
bonjour,

voilà mon problème :
sous VB6, il m'était possible de lire (ou écrire) un ensemble de
variable "en bloc" dans un fichier :

pour la lecture çà donnait en gros quelque chose comme :

Dim buffer_double(1000) As Double (je souhaite récupérer 1000 double)
Open ".." For Binary As #1
Get #1, 1, buffer_double (je démare au premier octet du fichier)
Close #1

on pouvait faire la même chose pour écrire dans un fichier.

mais alors pour C#, j'ai bien à priori BinaryWriter qui permet de faire
une copie en bloc Write(Byte[]) mais il n'y a pas de Write(double[])
Write(int[]) etc
j'ai remarqué aussi la classe steamwriter mais je vois pas trop comment

en fait çà m'ennuie de faire de la copie variable par variable, je
souhaite vraiment faire une copie en bloc du fichier vers la mémoire ou
de la mémoire vers le fichier

comment puis-je faire ?


Merci pour votre aide
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles TOURREAU - MVP C#
Le #19971941
Bonjour,

Il suffit tout simplement de faire une boucle réalisant n x WriteDouble().
(Créez vous une méthode utilitaire si nécessaire).
Au niveau performance, vous n'avez pas à vous en soucier car .NET gère
derrière un buffer (d'ailleurs la taille peut être personnalisable lorsque
vous récupérez certains Stream).

Cordialement

--
Gilles TOURREAU - MVP C#
E-Mail :
Site Web : http://gilles.tourreau.fr

Société P.O.S - Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr

"Eric" 4a7719f1$0$23447$
bonjour,

voilà mon problème :
sous VB6, il m'était possible de lire (ou écrire) un ensemble de variable
"en bloc" dans un fichier :

pour la lecture çà donnait en gros quelque chose comme :

Dim buffer_double(1000) As Double (je souhaite récupérer 1000 double)
Open "....." For Binary As #1
Get #1, 1, buffer_double (je démare au premier octet du fichier)
Close #1

on pouvait faire la même chose pour écrire dans un fichier.

mais alors pour C#, j'ai bien à priori BinaryWriter qui permet de faire
une copie en bloc Write(Byte[]) mais il n'y a pas de Write(double[])
Write(int[]) etc ...
j'ai remarqué aussi la classe steamwriter mais je vois pas trop comment

en fait çà m'ennuie de faire de la copie variable par variable, je
souhaite vraiment faire une copie en bloc du fichier vers la mémoire ou de
la mémoire vers le fichier

comment puis-je faire ?


Merci pour votre aide


Publicité
Poster une réponse
Anonyme