C# 3.0 Application permettant de concaténer plusieurs fichiers

Seth75 Messages postés 9 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 16 février 2009 - 20 oct. 2008 à 11:39
Seth75 Messages postés 9 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 16 février 2009 - 20 oct. 2008 à 15:11
Bonjour,

j'espère que vous pourrez m'aider dans ma démarche.
Je dois créer une application qui doit concaténer plusieurs fichier .txt.
Jusque là tout va bien, j'ai parser mon document où tous les fichiers sont stokés, puis je les concaténent entre eux par rapport a leur nom. Jusque là tout va bien :) Seul problème ils ont tous la même première ligne et je veux que la première ligne n'apparaisse qu'une fois dans le fichier concaténer au début.

J'ai  utiliser la méthode distinc() cela fonctionnait mais il enlèvait les doublons et certaines lignes doivent être en doubles. J'ai essayer plusieur solution mais je ne vois pas comment faire, c'est un truc tout bête à faire ....
Je ne sais pas si j'ai été assez clair merci infiniment si vous pouvez prendre du temps afin de m'aider.

Cordialement,

5 réponses

xmox667 Messages postés 357 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 26 décembre 2011 4
20 oct. 2008 à 12:33
Salut,
Si ils ont tous la même ligne de départ:
1) tu copies le premier fichier en intégralité
2) tu copies les autres fichiers à partie de la deuxième ligne
A+
0
Seth75 Messages postés 9 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 16 février 2009
20 oct. 2008 à 12:54
Je voudrais me positionner justement dans le fichier genre if(maligne == " machaine de caractere") alors j'efface dans tous les fichiers puis dans le fichier concaténer if(maligne != "machaine de caractere " ) ecrire la chaine de caractere . Un truc dans le genre je sais pas comment l'exprimer actuellement j'ai une boucle foreach qui va parser mon document avec tous les fichiers puis des boucles if à l'intérieur qui vérfie le nom des fichiers afin de les concaténer ensemble. Une fois le fichier concaténer je sais pas comment m'y prendre .. ..
0
xmox667 Messages postés 357 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 26 décembre 2011 4
20 oct. 2008 à 12:54
Salut,
Un peu code qui utilise un OpenFileDialogue

OpenFileDialog OpenFileDialog = new OpenFileDialog();
            //personnalisation du OpenFileDialog

            if (OpenFileDialog.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    using(TextWriter Writer = new StreamWriter("mon fichier de destination"))
                    {
                        for (int i = 0; i < OpenFileDialog.FileNames.Length; i++)
                        {
                            string Line = string.Empty;
                            int Number = 0;
                            using(TextReader Reader = new StreamReader(OpenFileDialog.FileNames[i]))
                            {                                while ((Line Reader.ReadLine()) null)
                                {
                                    if (i == 0) Writer.WriteLine(Line); //copie toutes les lignes du premier fichier
                                    else if (Number > 0) Writer.WriteLine(Line); //copie toutes les lignes des autres fichier à partir de la 2eme ligne
                                    Number++;
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    //traitement de l'erreur
                }

A+
0
danious Messages postés 27 Date d'inscription jeudi 8 juillet 2004 Statut Membre Dernière intervention 5 novembre 2008
20 oct. 2008 à 13:37
Comme l'a montré xmox667, si tu utilises TextReade/TextWriter, tes données sont récupérées sous forme de string. A partir de là, tu peux facilement :
- concaténer (en utilisant plutôt string.Concat pour lui passer directement ton tableau de string)
- enlever la premiere ligne : chaine = chaine.Remove(0, chaine.IndexOf('\n'))
- supprimer les occurences d'une ligne : chaine = chaine.Replace(ligne, "")

Je n'ai pas compris exactement ce que tu veux faire, mais en combinant tout ça tu devrais arriver à tes fins.
0

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

Posez votre question
Seth75 Messages postés 9 Date d'inscription mardi 29 janvier 2008 Statut Membre Dernière intervention 16 février 2009
20 oct. 2008 à 15:11
J'aimerai écrire une chaine de caractères sur la premiere ligne sans effacer le reste ni la premiere ligne en fait  ... c'est super con :s merci de vos réponses en tout cas
0
Rejoignez-nous