Sauvegarder un fichier

uzu Messages postés 75 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 19 février 2009 - 8 avril 2007 à 19:45
cs_coq Messages postés 6350 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 26 avril 2007 à 19:06
bonjour
je travaille en C#, j'ai un classe Armure où j'ai déclarer un constructeur avec paramètre d'entrée le nom du fichier:

 // Constructeur armure avec paramètre d'entrée nom du fichier

        public  UneArm(string acces)

        {

            filename = acces;

            FileStream fs = new FileStream (filename, FileMode.Open, FileAccess.Read);

            BinaryReader r = new BinaryReader (fs);

            // Lecture du nombre de duites

            fs.Seek (-2L, SeekOrigin.End);

   et j'ai déclaré aussi une fonction  pour sauvegarder ce fichier qu'on a ouvert :

 public void SauveDsFichier()

        {

            d1 = new UneDuite();

            

            //Ouverture d'un flux de sortie vers le fichier 'filename'

            FileStream fs = new FileStream (filename,FileMode.Truncate, FileAccess.Write);

            BinaryWriter w = new BinaryWriter(fs);       
quelq'un peut me dire si le code est juste ou non?
merci

8 réponses

cs_ip2x Messages postés 63 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 27 janvier 2009
9 avril 2007 à 19:06
Bouge pas, je crois avoir ce qu'il te faut.

Aprés l'effort, le reconfort... http://ip2x.free.fr/tracks/part4
0
cs_ip2x Messages postés 63 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 27 janvier 2009
9 avril 2007 à 19:23
Voila j'ai mis une source là : http://www.csharpfr.com/code.aspx?ID=42149

Je pense qu'elle te sera utile.

Aprés l'effort, le reconfort... http://ip2x.free.fr/tracks/part4
0
uzu Messages postés 75 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 19 février 2009 1
10 avril 2007 à 09:03
j'ai utiliser l'adressse que vous m'avez donner mais j'ai ce message qui est apparu:

Le code demandé a été désactivé par un des admins CodeS-CourceS.
donc je n'ai pas pus voir votre proposition.
merci
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
10 avril 2007 à 11:59
voici ce que le code contenait:

using System;

using System.IO;

using System.Xml;

///<summary>
/// Creates a new instance of the FileTools 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;
  
//La chaine "\r\n" créé un retour à la ligne
   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)
{

//Ici, suppression d'un fichier de même nom
//(Ceci evite la levée de l'exception "File already exist")
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
}

<hr />-Blog-
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
uzu Messages postés 75 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 19 février 2009 1
25 avril 2007 à 08:05
bonjour
je voulais enregistrer mon fichier,dans une fonction SaveDsFichier, j'ai mis mon code comme suit

if

(
File.Exists(filename))
File.Delete(filename);

//Ouverture d'un flux de sortie vers le fichier 'filename'

FileStream fs =
new
FileStream (filename,
FileMode.OpenOrCreate);

BinaryWriter w =
new
BinaryWriter(fs);
mais il met une erreur:
Path ne peut pas être null.
Nom du paramètre : path

quelq'un peu me dire comment dois je faire.
merci
0
cs_coq Messages postés 6350 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
25 avril 2007 à 18:16
Sur quelle ligne l'erreur ?
filename n'est pas une référence nulle ?

/*
coq
MVP Visual C#
CoqBlog
*/
0
uzu Messages postés 75 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 19 février 2009 1
26 avril 2007 à 07:41
bonjour

non filename n'est pas null,
car c'est le nom du fichier que je récupère de mon constructeur avec paramètre le nom de ce fichier et qui est en lecture, voici mon code:

public UneArm(
string acces){

filename = acces;

FileStream fs =
new
FileStream (filename,
FileMode.Open,
FileAccess.Read);

BinaryReader r =
new
BinaryReader (fs);

et la ligne d'erreur :FileStream fs = newFileStream (filename,FileMode.OpenOrCreate);

donc je ne vois pas pourquoi il ne reconnait le chemin d'accès.

merci
0
cs_coq Messages postés 6350 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
26 avril 2007 à 19:06
Bizarre, normalement il n'y a pas de levée d'exception ArgumentNullException en dehors du cas cité.
Quelle est la pile des appels donnée par cette exception ?

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous