begin process at 2013 05 22 11:05:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Système

 > 

Fichier & Disque

 > 

Help! Probleme pour ecrire dans un fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Help! Probleme pour ecrire dans un fichier

vendredi 17 août 2012 à 01:24:31 | Help! Probleme pour ecrire dans un fichier

senkai6259

Bonsoirs chers confrères, je viens ce soir vous ennuyer car étant débutant dans ce langage, j'ai encore du mal avec certaines choses, et là, ça fait 3h que mon code bloque:

Code C# :
       public void WriteLine(string chemin, string Content, int Line)
        {
            int LineToWrite;
            int i;
            string ContentToWrite;
            string CurrentContent;
            string[] stringArray = new string[1500];
            string che = Path.GetFullPath(chemin);

            i = 0;
            ContentToWrite = Content;
            LineToWrite = Line;

            System.IO.StreamWriter file = new System.IO.StreamWriter(@che);

            CurrentContent = GiveLine(@che, i + 1);

            // On lis pour mettre les lignes du fichier dans un tableau
            while (CurrentContent != null)
            {
                CurrentContent = GiveLine(@che, i + 1);
                stringArray[i] = CurrentContent;
                i++;       
            }

            i = 0;

            // Ensuite on restitue toutes les lignes dans ce fichier, puis on ferme
            while (stringArray[i] != null)
            {
                file.WriteLine(stringArray[i]);
                i++;
            }

            // A la fin
            file.Close();
        }


Ou est l'erreur svp, je l'appel de la manière suivante :

Code C# :
Main.TraiteText.WriteLine(@"Content\Infos\infos.txt", "no", 2);


En gros le code n'est meme pas terminé, et ça plante deja, quelqu'un peut m'aider ?

J'essaie d'ouvrir un fichier, et d'écrire a une ligne précise, le "string" que je veut lui donner.

Voila !
vendredi 17 août 2012 à 09:34:10 | Re : Help! Probleme pour ecrire dans un fichier

buno

Administrateur CodeS-SourceS
Hello,
Déjà, nettoyons ton code

Code C# :
public void WriteLine(string chemin, string Content, int Line)
{
  string CurrentContent;
  ArrayList stringArray = new ArrayList();
  string che = Path.GetFullPath(chemin);

  // On lit pour mettre les lignes du fichier dans une liste
  int i = 0;
  CurrentContent = GiveLine(@che, i + 1);
  while (CurrentContent != null)
  {
    stringArray.Add(CurrentContent);
    CurrentContent = GiveLine(@che, i + 1);
    i++;       
  }

  // Ensuite on restitue toutes les lignes dans ce fichier, puis on ferme
  System.IO.StreamWriter file = new System.IO.StreamWriter(@che);
  foreach (String str in stringArray)
  {
    file.WriteLine(str);
  }

  // A la fin
  file.Close();
}

On peut remarquer que le paramètre Content n'est pas utilisé...

En gros le code n'est meme pas terminé, et ça plante deja, quelqu'un peut m'aider ?


Quel est le comportement exactement? ça plante? Où? Est-ce que tes fichiers sont bien ouverts?

Voici un exemple d'insertion de lignes avec un StreamWriter

@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
vendredi 17 août 2012 à 14:17:30 | Re : Help! Probleme pour ecrire dans un fichier

senkai6259

Bon, après avoir pris ton code et fini le miens par dessus, cela ne marche toujours pas, donc je vais essayer de te faire visualiser mon code, pour que tu y trouve une eventuelle erreur:

tout d'abord, la classe traitetexte :

Code C# :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Collections;

namespace Client_HORION
{
    class TextClass
    {
        // lire
        public string GiveLine(string chemin, int line)
        {
            int counter = 1;
            string CurrentLine;
            string che = Path.GetFullPath(chemin);

            // Read the file and display it line by line.
            System.IO.StreamReader file = new System.IO.StreamReader(@che);
            while ((CurrentLine = file.ReadLine()) != null)
            {
                if (counter == line)
                {
                    file.Close();
                    break;
                }
                counter++;
            }
            return CurrentLine;
        }

        // ecrire
        public void WriteLine(string chemin, string Content, int Line)
        {
            string CurrentContent;
            string ContentToWrite = Content;
            int LineToWrite = Line;
            ArrayList stringArray = new ArrayList();
            string che = Path.GetFullPath(chemin);

            // On lit pour mettre les lignes du fichier dans une liste
            int i = 1;
            CurrentContent = GiveLine(@che, 1);
            while (CurrentContent != null)
            {
                stringArray.Add(CurrentContent);
                CurrentContent = GiveLine(@che, i);
                i++;
            }

            // Ensuite on restitue toutes les lignes dans ce fichier, puis on ferme
            System.IO.StreamWriter file = new System.IO.StreamWriter(@che);

            i = 1;
            foreach (String str in stringArray)
            {
                if (LineToWrite != i)
                {
                    file.WriteLine(str);
                }
                else if (LineToWrite == i)
                {
                    file.WriteLine(ContentToWrite);
                }
                i++;
            }

            // A la fin
            file.Close();
        }

    }
}


Ensuite, dans un autre objet, j'appel ces fonctions, mais a l'execution, le code plante et ne fais pas la ligne suivante qui est InitMap :

Code C# :
                            // pour les infos de connexion
                            Main.TraiteText.WriteLine(@"Content\Infos\infos.txt", "no", 2);
Main.initMAP(int.Parse(this.Datas[1]));

vendredi 17 août 2012 à 14:24:06 | Re : Help! Probleme pour ecrire dans un fichier

senkai6259

En fait, le code writeLine, n'écris même pas dans le fichier, car j'ai déplacé :
Code C# :
Main.TraiteText.WriteLine(@"Content\Infos\infos.txt", "no", 2);

Pour tester.
vendredi 17 août 2012 à 15:36:09 | Re : Help! Probleme pour ecrire dans un fichier

buno

Administrateur CodeS-SourceS
Les éventuelles erreurs, tu ne pourra les voir qu'avec le debugger, ou bien en traçant tes variables. Il se peut par exemple que:
- che ne soit pas valide
- GiveLine ne te retourne pas le bon résultat
- file ne soit pas valide

Sinon, tu peux remplacer la 1ère étape, qui est la lecture ligne par ligne de ton fichier, par le code que je t'ai filé en lien, à savoir:
Code C# :
string[] lines = File.ReadAllLines(che);


Le code entier est le suivant:
Code C# :
public static void InsertLineInFile(string path, string line, int position)
{
  string[] lines = File.ReadAllLines(path);
  using (StreamWriter writer = new StreamWriter(path))
  {
    for (int i = 0; i < position; i++)
      writer.WriteLine(lines[i]);
    writer.WriteLine(line);
    for (int i = position; i < lines.Length; i++)
      writer.WriteLine(lines[i]);
  }
}


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
vendredi 17 août 2012 à 15:38:17 | Re : Help! Probleme pour ecrire dans un fichier

buno

Administrateur CodeS-SourceS
Eh mais attends! Est-ce que le problème ne viendrait pas de l'appel à la méthode? Je ne vois pas de mot clé "static" et pourtant, tu semble l'utiliser de manière statique...
Un peu de lecture sur les classes statiques


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
vendredi 17 août 2012 à 18:04:04 | Re : Help! Probleme pour ecrire dans un fichier

senkai6259

Merci, encore une fois tu m'a grandement aidé, il ne me reste plus qu'a te demander une derniere petite choses pour que tout fonctionne comme je l'entend :) :

Comment supprimer l'intégralité des lignes d'un fichier ?



Code C# :
string[] lines = File.?????(path);


Merci
vendredi 17 août 2012 à 18:05:37 | Re : Help! Probleme pour ecrire dans un fichier

senkai6259

Oups : EDIT : juste :
Code C# :
File.??????(supprimer tout le contenu)?????(path);
vendredi 17 août 2012 à 18:18:49 | Re : Help! Probleme pour ecrire dans un fichier

buno

Administrateur CodeS-SourceS
Code C# :
System.IO.File.WriteAllText(@"Path/foo.bar",string.Empty);



@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...


Cette discussion est classée dans : fichier, code, string, currentcontent, stringarray


Répondre à ce message

Sujets en rapport avec ce message

CreateText() [ par JCpp ] Je voudrais enregistrer une page d'un site en format XML.J'ai trouvé une source qui mémorise le contenu de la page en «string»http://www.csharpfr.com/ Convertir la pièce jointe d'un mail en son type de fichier [ par sspizer ] Bonjour à tous. Actuellement je développe une application qui doit lire le contenu des mails jusque là j'arrive à récupérer un peu ce que je veux le s [c#] ouverture et affichage de plusieurs fichiers en meme temps ! [ par vto59 ] Bonjour a tous, Ce que je souhaite faire, c'est ouvrir plusieurs fichiers en meme temps et les rassembler en un seul fichier ! J'ai essayer ça : [ un moyen pour supprimer un fichier après l'avoir ouvert [ par JonathanS ] Bonjour à tous, Alors voilà mon problème, j'aimerais pouvoir ouvrir un fichier quelconque mais pas directement depuis la source, j'aimerais le copier Requête LIKE [ par Lorine ] Bonjour, Voilà je suis sur visual studio, j'ai fait une connexion avec un fichier .mdb , je suis dans le fichier Mabasedataset.xsd dans la quel j'ai u fichier texte [ par piegues007 ] Slt ts l monD.qlq pEut m'aider?Mon probleme est de:1)comment ajouter des élèments dans un fichier texte.j'ai déja essayer le code du genre [code=cs] s Surveiller / contrôler un fichier [ par Isa09 ] J'ai à nouveau besoin de votre aide. Quelqu'un aurait-il un lien un code ou quelque chose pouvant m'aider.... J'ai 1code WatchFolder qui me donne une Recherche par filtre dans un fichier XML [ par NikkyBoy ] Bonjour a tous, Ceci est mon premier message sur le forum, veuillez donc m'excuser si je ne suis pas trés précis. Comme le titre le suggère je doit [C#] Vérification d'une checkBox avec lancement d'une [ par Karibot ] Bonsoir à tous, je bloque sur une application Windows Form et j'aimerai votre aide. j'ai une fonction kws(file) qui traite et me génére un fichier pla passage paramètre entre un Form et un fichier de code... [ par andy2501 ] Coucou à tous... alors voila j'ai un petit soucie, j'arrive à passer des paramètres d'un Form1 à un Form2, mais comment puis-je faire pour passer les


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2013
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,956 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales