Lire et écrire un fichier

cs_ull Messages postés 11 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 5 avril 2007 - 2 avril 2007 à 13:24
cs_ip2x Messages postés 63 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 27 janvier 2009 - 3 avril 2007 à 23:57
bonjour

j'ai tois construteur de classe UneDuite et le troisième je doit mettre en paramètre un stream "lecture et écriture du fichier", en borland C++  on le déclare comme suit : UneDuite(ifstream& inf);

mais en c# je ne sais pas comment faire!

qulequ'un a une idée
merci
nad

4 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
2 avril 2007 à 14:32
Salut, la définition la plus proche en C# c'est :

UneDuite( Filestream fs ) { } // using System.IO;

Mais attention FilStream c'est pas un objet que tu peux passer à du code C++ via l'interop.


 
0
cs_ull Messages postés 11 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 5 avril 2007
2 avril 2007 à 15:23
bonjour

comment utiliser
ostream& et  istream&  pour la surcharge << de l'objet duite  et  surcharge >> de l'objet duite en C# .

voici le code en borland C++:

/****************************************************************/

/* Surcharge de << pour les objets UneDuite */

/****************************************************************/

ostream&

operator <<(ostream& os,
const UneDuite& dte){

unsigned
long d1 = dte.duite;

unsigned
char d2 = dte.coul;os.write((

char*)&d1,
sizeof(
unsigned
long));os.write((

char*)&d2,
sizeof(
unsigned
char));

return os;}

/****************************************************************/

/* Surcharge de >> pour les objets UneDuite */

/****************************************************************/

istream&

operator >>(istream& is, UneDuite& dte){

unsigned
long d1 = 0;

unsigned
char d2 =
'\0';is.read((

char*)&d1,
sizeof(
unsigned
long));

if(!is.eof()){is.read(&d2, 1);

}

dte.duite = d1;

dte.coul = d2;

unsigned
long rg = 0x80000000l & d1;
if(rg !0)dte.regu

true;

elsedte.regu =

false;

return is;}

mais je n'arrive pas à le faire en C#.
quelq'un a une idée?
merci
nad
0
cs_ull Messages postés 11 Date d'inscription vendredi 23 mars 2007 Statut Membre Dernière intervention 5 avril 2007
3 avril 2007 à 07:38
bonjour!

comment construire un objet à partir des informatations provenant du flux ouvert sur le fichier accessible en lecture.
 j'ai mis :
public

UneDuite(
FileStream fs){

             fs >> this   ;

}
il met une erreur.

merci

nad
0
cs_ip2x Messages postés 63 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 27 janvier 2009
3 avril 2007 à 23:57
Alors si je me cantonne au sujet, ça donne ça :

using System;
using System.IO;
using System.Xml;

namespace NewsMLViewer.CLASSES
{          
    /// <summary>
    /// Create a new instance of the NewsMLDocument class.
    /// </summary>
    class FileTools
    {
        #region Constructor
        public FileTools()
        {
        }
        #endregion

        #region Reading a file
        /// <summary>
        /// Retourne le contenu d'un fichier sous forme de chaine de caracteres
        /// </summary>
        /// Chemin du fichier à lire

        /// <returns>Contenu du fichier sous forme de chaine de caracteres</returns>
        public string Lire(string chemin_fichier)
        {
            string Chaine = null;
            string line = null;

            FileStream monFlux = new FileStream(chemin_fichier, FileMode.OpenOrCreate);
            StreamReader monLecteur = new StreamReader(monFlux);

            while ((line = monLecteur.ReadLine()) != null)
            {
                Chaine += line;
                Chaine += "\r\n";
            }

            monLecteur.Close();
            monFlux.Close();

            return Chaine;
        }
        #endregion

        #region Writing a file
        /// <summary>
        /// Ecrit le contenu d'une chaine de caracteres dans un fichier
        /// </summary>
        /// Chemin du fichier de destination

        /// Chaine de caracteres a ecrire dans le fichier

        public void Ecrire(string chemin_fichier, string Chaine)
        {
            if (File.Exists(chemin_fichier)) File.Delete(chemin_fichier);

            FileStream monFlux = new FileStream(chemin_fichier, FileMode.OpenOrCreate);
            StreamWriter monScribe = new StreamWriter(monFlux);

            monScribe.Write(Chaine);
            monScribe.Close();
            monFlux.Close();
        }
        #endregion
    }
}

Aprés l'effort, le reconfort... http://ip2x.free.fr/tracks/part4
0
Rejoignez-nous