IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

supprimer les lignes d´un fichier.


Sujet :

C#

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Points : 66
    Points
    66
    Par défaut supprimer les lignes d´un fichier.
    Salut,
    comment supprimer les lignes d un fichier? ligne apres ligne. j´ai essayer
    mais string line ne contient pas de Methode clear()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    line.Remove(0, line.Count());
    sa ne fonctionne pas. aucune ligne n est supprimée.
    merci d´Avance
    cordialement

  2. #2
    Membre éprouvé Avatar de Momoth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 318
    Points : 1 236
    Points
    1 236
    Par défaut
    Bonjour,

    Pourrais t'on avoir un peu plus de détail sur ce que tu veux faire exactement ? Veux tu juste vider ton fichier complètement ? Ou juste certaines lignes sous certaines conditions ?

    Bonne journée.

    -- Momoth --

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Points : 66
    Points
    66
    Par défaut
    Salut,
    j´aimerais supprimer certaine lignes sous certaines conditions.
    j ai la condition if suivante. lorsquelle est executée j aimerai que la ligne qui a été executée dans la condition if soit enlever du fichier texte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (s_temp != null && s_temp.Length > 0 && String.Equals(s_sqlfileversion, s_temp.Replace(".", ""), StringComparison.Ordinal))
                                                {
                                                    f_logging("Google Play store version updated. Running DB update for slitte {0}.", s_sqlfileslitte);
                                                    s_sqlquery = s_sqlfileline.Substring(i_textindex, s_sqlfileline.Length - i_textindex);
                                                    f_sqlpush(s_sqlquery);
                                                    //remove line from log
                                                   // s_sqlfileline.Remove(0, s_sqlfileline.Count());
                                                    var lines = File.ReadAllLines(s_sqlfile);
                                                    File.WriteAllLines(s_sqlfile, lines.Skip(1).ToArray());
     
                                                }

  4. #4
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Voici un exemple (je pense qu'il y a plein d'autre façon de faire)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
                string[] lines = File.ReadAllLines(@"D:\tonfichier.txt");
                List<string> newlines = new List<string>();
                for (int i = 0; i < lines.Length; i++)
                {
                    if (true)
                        newlines.Add(lines[i]);
                }
                File.WriteAllLines(@"D:\tonfichier.txt", newlines);

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Points : 66
    Points
    66
    Par défaut
    j´ai essayer ta Proposition Katkiller. Mais aucune ligne n est supprimer ni enlever du fichier texte

  6. #6
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Tu as bien remplacé :
    Par une autre condition ?
    Sinon c'est normal que le fichier ne soit pas modifié...

  7. #7
    Membre éprouvé Avatar de Momoth
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2013
    Messages : 318
    Points : 1 236
    Points
    1 236
    Par défaut
    Il ne faut bien entendu pas copier le code "mot à mot". C'est la structure qu'il faut retenir. En gros on enlève pas les lignes traitées, on enlève toutes les lignes et on réécris celles qui ne sont pas traitées.

    Le marque la position de ta condition. Si cette condition est bonne tu traite ta ligne, sinon tu l'as met dans la liste "newlines". Et ensuite tu écris dans ton fichier le contenu de ta liste newlines. Ce qui te donneras un fichier qui ne contient que les lignes non traitées.

    Bonne journée.

    -- Momoth --

  8. #8
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Points : 66
    Points
    66
    Par défaut
    oui j ´ai remplacé. voila comment je l ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    string[] lines = File.ReadAllLines(s_sqlfile);
                                                    List<string> newlines = new List<string>();
                                                    for (int i = 0; i < lines.Length; i++)
                                                    {
                                                        if (String.Equals(s_sqlfileversion, s_temp.Replace(".", ""), StringComparison.Ordinal))
                                                            newlines.Add(lines[i]);
                                                    }
                                                    File.WriteAllLines(s_sqlfile, newlines);

  9. #9
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Et alors? ça a marché ou pas ?

  10. #10
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Points : 66
    Points
    66
    Par défaut
    sa pas marché

  11. #11
    Membre chevronné
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 652
    Points : 2 180
    Points
    2 180
    Par défaut
    En ayant vu un peu tout tes codes , tu as sensiblement un problème avec les variables

    Tu compares s_sqlfileversion et s_temp pour savoir si tu va écrire la ligne.Elles sont définis ailleurs , et ne sont pas modifié dans la boucle.Du coup , ça sera :

    -Ou tu écris toutes les lignes.
    -Ou aucune.

    Le but du code est de regarder dans les lignes pour voir si elles doivent être écrite ou non.

    Du genre :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (lignes[i].Contains("JeSuisUnMotClef"))
    A toi de voir ce que tu veux faire comme comparaison , mais il faut comparer avec les lignes que tu passes en revue.

  12. #12
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Points : 66
    Points
    66
    Par défaut
    ok je vais essayer.
    merci

  13. #13
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Septembre 2005
    Messages
    462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 462
    Points : 1 056
    Points
    1 056
    Par défaut
    Citation Envoyé par maeva87 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (String.Equals(s_sqlfileversion, s_temp.Replace(".", ""), StringComparison.Ordinal))
    Que cherche tu as faire sur cette ligne ? d'ou viennent les variables "s_sqlfileversion" et "s_temp" ?
    Car ici je ne te vois pas travailler sur les lignes que tu lis... Donc je ne comprends pas l’intérêt de ton code...

    Edit : Grillé par PixelJuice

  14. #14
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Points : 66
    Points
    66
    Par défaut
    Bonjour,
    en fait dans mon code j essaie de comparer les Versions Android de certaines applications. lorsqu´il existe une nouvelle Version j essaie de le publier a Google.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!String.Equals(s_sqlfileversion, s_temp.Replace(".", ""), StringComparison.Ordinal))
    s_sqlfileversion est la Version Android se trouvant sur notre base de donnée (data Bank). et cette Version je lie dans mon fichier texte s_sqlfile.
    s_temp est la Version se trouvant a Google que je reussi aussi a lire.
    j essaie donc dans ma boucle if de comparer les 2 Versions. lorsque les 2 Versions sont egale, cela veut dire que la ligne en question s_sqlfileline a deja été traiter(la Version se trouvant dans le fichier a deja été enregistrer a google). si tel est le cas j´aimerai donc que cette ligne soit effacer du fichier texte et que la ligne suivante soit executer.
    voila comment sont les lignes dans mon fichier.
    [3/4/2014 4:52:15 PM] USE BarForce UPDATE SlitteApp SET AndroidVersion='2754' WHERE SiteID = '64386-10709'
    [3/4/2014 4:52:37 PM] USE BarForce UPDATE SlitteApp SET AndroidVersion='2754' WHERE SiteID = '60030-16525'
    [3/4/2014 4:53:23 PM] USE BarForce UPDATE SlitteApp SET AndroidVersion='2754' WHERE SiteID = '60030-16992'
    [3/4/2014 4:54:27 PM] USE BarForce UPDATE SlitteApp SET AndroidVersion='2754' WHERE SiteID = '60030-14814'

    merci d´avance

  15. #15
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Points : 66
    Points
    66
    Par défaut
    je ne reussi pas encore a supprimer les lignes
    apres execution toutes les lignes restent toujours dans le fichier
    merci

  16. #16
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Points : 66
    Points
    66
    Par défaut
    Salut,
    je reussis déja a supprimer la 1ere ligne graces aux 2 lignes suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var lines = File.ReadAllLines(s_sqlfile);
    File.WriteAllLines(s_sqlfile, lines.Skip(1).ToArray());
    cependant je rencontre une difficulté quand il faut lire et traiter la 2 ieme ligne Avec la boucle while ((s_sqlfileline = f_file.ReadLine()) != null). L erreur est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Make sure you have not released a resource before attempting to use it.
    . je pense que c est dú au fait que je lis le fichier avant la boucle While comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     f_file = new System.IO.StreamReader(s_sqlfile);
    et lorsque j essaie une lecture avant et apres la boucle while ((s_sqlfileline = f_file.ReadLine()) != null), la ligne suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     File.WriteAllLines(s_sqlfile, lines.Skip(1).ToArray())
    n´est pas executer.
    es ce que quelqu´un a une idée?
    merci

  17. #17
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Points : 66
    Points
    66
    Par défaut
    Svp pourquoi lorsque j utilise la boucle while ((s_sqlfileline = f_file.ReadLine()) != null) le Programme n execute pas la ligne suivante File.WriteAllLines(s_sqlfile, lines.Skip(1).ToArray());. le code va directement a catch{continue;}.
    mais lorsque je n utilise pas la boucle While le code execute cette ligne.
    merci d´avance

  18. #18
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Points : 66
    Points
    66
    Par défaut
    Bonjour,
    personne n´a reagis a ma derniere Intervention et j´ai recu des Points en moins. qu ai je fais de mauvais? juste pour comprendre le fonctionnement du Forum.
    merci

  19. #19
    Membre régulier Avatar de SetaSensei
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 104
    Points
    104
    Par défaut
    Citation Envoyé par maeva87 Voir le message
    Bonjour,
    personne n´a reagis a ma derniere Intervention et j´ai recu des Points en moins. qu ai je fais de mauvais? juste pour comprendre le fonctionnement du Forum.
    merci
    Rien n'est clair dans tes messages.
    On ne sait pas :
    • Ce que tu veux faire exactement.
    • Les critères de suppression de ces lignes
    • Pourquoi tu veux les supprimer


    Sois plus clair et concis. Balancer des lignes de code hors contexte, ça n'aide personne.

  20. #20
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2014
    Messages : 146
    Points : 66
    Points
    66
    Par défaut
    Salut,
    sa fonctionne maintenant.
    la solution etait d ecrire avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     File.WriteAllLines(s_sqlfile, lines.Skip(1).ToArray());
    merci et bon weekend á tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer les lignes d'un fichier
    Par Wisefool dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 28/02/2011, 09h18
  2. Supprimer les lignes vides d'un fichier
    Par Invité dans le forum VBScript
    Réponses: 2
    Dernier message: 26/09/2008, 16h21
  3. Réponses: 1
    Dernier message: 09/07/2007, 14h45
  4. Supprimer les lignes d'un fichier texte
    Par radhwene dans le forum Langage
    Réponses: 1
    Dernier message: 20/06/2007, 11h01
  5. Réponses: 2
    Dernier message: 04/05/2006, 13h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo