Supprimer quelques lignes qui sont prédéfinés dans une liste d'un fichier txt en [Résolu]

Signaler
Messages postés
28
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
23 mai 2012
-
Messages postés
28
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
23 mai 2012
-
bonjour ,
j'ai un fichier txt qui contient (une entete a supprimé +données a récupérée) ,moi je veux récupérer ces données et les injecters dans une table oracle (10champs ) :
mon idée est de supprimé toutes les lignes qui sont inutiles donc l'idée est de nettoyer le fichier de ces lignes ,en utilisant une liste donc la quelle je déclare tout les début de ligne qui vont etre supprimé .
veuillez m'orienter , est ce que mon idée est bonne ?et si c'est possible de me fournir un script qui qui fait ce traitement .

merci d'avance .

5 réponses

Messages postés
239
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
27 août 2012
5
j'ai essayé avec le code suivant et ca fonctionne
 
public void RemoveTextLines(IList<string> linesToRemove)
        {
            // Read file 
            using (StreamReader sr = new StreamReader("a.txt"))
            {
                // Write new file 
                using (StreamWriter sw = new StreamWriter("b.txt"))
                {
                    // Read lines 
                    string line;
                    while ((line = sr.ReadLine()) != null)
                    {
                        // Look for text to remove 
                        if (!this.ContainsString(line, linesToRemove))
                        {
                            // Keep lines that does not match 
                            sw.WriteLine(line);
                        }
                    }
                }
            }
        }

        private bool ContainsString(string line, IList<string> linesToRemove)
        {
            foreach (string s in linesToRemove)
                if (line.StartsWith(s))
                    return true;
            return false;
        }



le fichier "a.txt" contient les lignes suivantes :
asrety
sgfrhjk
etryuyy
cvbjkj
d
epokgth

berty
rtyu
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
re,

pourquoi refaire un topic (cf. celui-ci) ?
Et encore une fois on est là pour "aider", pas pour "faire".
Commence à coder ton truc et viens nous voir quand tu coinces.

Et quand bien même un helper s'ennuierait au point de te faire ton truc, ça manque de précisions (contenu réel du fichier, structure de ta table Oracle ...).
Messages postés
28
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
23 mai 2012
1
j'ai commencé à codé mon traitement mais ça ne marche pas :
public static class TextLineRemover
{
public static void RemoveTextLines(IList<string> linesToRemove, string filename, string tempFilename)
{
// Initial values
int lineNumber = 0;
int linesRemoved = 0;
DateTime startTime = DateTime.Now;

// Read file
using (var sr = new StreamReader(monfichier))
{
// Write new file
using (var sw = new StreamWriter(tempFilename))
{
// Read lines
string line;
while ((line = sr.ReadLine()) != null)
{
lineNumber++;
// Look for text to remove
if (!ContainsString(line, linesToRemove))
{
// Keep lines that does not match
sw.WriteLine(line);
}
voici mon code mais je suis bloqué .......
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
12
Re,

plusieurs questions :
- la première, celle que n'importe qui te posera : quelle est l'erreur ?
- d'où sort la fonction ContainsString() ?
- sais-tu d'avance quelles lignes supprimer que tu puisses ainsi les mettre en paramètre de ta fonction ? (ça me parait un peu bizarre).

Sinon à part un manque d'accolade qui de toute façon t'empêcherait purement et simplement de compiler, ton code me parait correct.
Messages postés
28
Date d'inscription
samedi 14 janvier 2006
Statut
Membre
Dernière intervention
23 mai 2012
1
merci beaucoup pour votre réponse .