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 :

Extraire une chaine de charactère d'un fichier puis l'imprimer


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Par défaut Extraire une chaine de charactère d'un fichier puis l'imprimer
    Bonjour ,


    je suis sur un petit projet perso , j'ai crée une petite application windows form en c# où l'utilisateur clique sur un bouton "aperçu avant impression" qui ouvre un fichier .txt pour ensuite l'imprimer.

    Or dans mon fichier .txt au lieu de tout lire je voudrais juste récupérer trois lignes qui sont "TOC TOC TOC".
    Or je suis un completement bloquée ..

    Si quelqu'un pouvait m'aider svp

    Mon code actuel lit le fichier en entier or je ne sais pas comment faire pour selectionner des lignes bien précises


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
     public partial class Form1 : Form
        {
            private PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog();
            private PrintDocument printDocument1 = new PrintDocument();
     
            // Declare a string to hold the entire document contents.
            private string documentContents;
     
            // Declare a variable to hold the portion of the document that
            // is not printed.
            private string stringToPrint;
     
     
     
            public Form1()
            {
                InitializeComponent();
                btn_apercu.Click += new EventHandler(btn_apercu_Click);
                this.Controls.Add(this.btn_apercu);
                printDocument1.PrintPage +=
                        new PrintPageEventHandler(printDocument1_PrintPage);
     
            }
     
            void btn_apercu_Click(object sender, EventArgs e)
            {
     
                MessageBox.Show("Visualisation avant impression", "Impression",MessageBoxButtons.OK);
                LireDocument();
                printPreviewDialog1.Document = printDocument1;
                printPreviewDialog1.ShowDialog();
     
            }
     
            private void LireDocument()
            {
                string line;
                string docName = "test.txt";
                string docPath = @"C:\\Documents\";
                printDocument1.DocumentName = docName;
                using (FileStream stream = new FileStream(docPath + docName, FileMode.Open))
                using (StreamReader reader = new StreamReader(stream))
                {
                    
                        documentContents = reader.ReadToEnd();
                    
                }
                stringToPrint = documentContents;
     
            }
     
            void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
            {
                int charactersOnPage = 0;
                int linesPerPage = 0;
     
                // Sets the value of charactersOnPage to the number of characters 
                // of stringToPrint that will fit within the bounds of the page.
                e.Graphics.MeasureString(stringToPrint, this.Font,
                    e.MarginBounds.Size, StringFormat.GenericTypographic,
                    out charactersOnPage, out linesPerPage);
     
                // Draws the string within the bounds of the page.
                e.Graphics.DrawString(stringToPrint, this.Font, Brushes.Black,
                e.MarginBounds, StringFormat.GenericTypographic);
     
                // Remove the portion of the string that has been printed.
                stringToPrint = stringToPrint.Substring(charactersOnPage);
     
                // Check to see if more pages are to be printed.
                e.HasMorePages = (stringToPrint.Length > 0);
     
                // If there are no more pages, reset the string to be printed.
                if (!e.HasMorePages)
                    stringToPrint = documentContents;
     
              
       }
     
        }
     
    }

    Mon fichier .txt



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    HELLO 
    note de frais
    compta client
    compta fournisseur
    ETC...
     
    TOC
    TOC
    TOC
     
     
    FIN

  2. #2
    Membre très actif
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2005
    Messages
    367
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 367
    Par défaut
    Salut,

    Alors tu dois lire le fichier ligne par ligne et pour chaque lignes vérifier si cette dernière contient le texte recherché.

    Et pour chaque lignes trouvées, les mettre dans un stringbuilder que tu construit au fur et à mesure.

    Une fois le fichier parcouru, tu imprime ton stringbuilder.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
        int counter = 0; 
        string line;               
        StringBuilder sb = new StringBuilder();
     
        // Read the file line par line and add in string builder            
        using(System.IO.StreamReader file = new System.IO.StreamReader("c:\\log.txt"))
        {
           while((line = file.ReadLine()) != null)             
           {     
             if ( line.Contains(txtToFind.Text) )                  
             {          
                  // This append the text and a newline into the StringBuilder buffer       
                  sb.AppendLine(line.ToString());
             }                   
          }               
       }
       txtResult.Text = sb.ToString();

  3. #3
    Membre confirmé
    Femme Profil pro
    Apprentie Développeuse
    Inscrit en
    Février 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Apprentie Développeuse
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2013
    Messages : 106
    Par défaut
    merci beaucoup !!

    or le problème que j'ai c'est que mon fichier est un fichier de paramètrage d'un autre programme et ce fichier varie en permanence.

    mon programme s'appel "facture.exe" et celui sur lequel je travail est "impression.exe" je veux donc imprime un fichier qui se trouve dans facture.exe à l'aide d'une autre application sans qu'elle dépende de facture comme ça je pourrait m'en servir pour d'autre applications futures. ( suis-je claire ? Désolée je sais que c'est compliqué )

    j'avais idée de créer l'appel du facture.exe dans le main de impression.exe afin de pouvoir me servir des fonctions de facture . or je ne sais pas comment faire peux tu me débloquer ? Merci merci pour ta réponse !!!

  4. #4
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Yep,

    Tu peux jeter un œil on t'as répondu ici (j'ai même appris des choses)
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

Discussions similaires

  1. [VBS] Extraire une chaine de charactères "inconnue"
    Par xSten dans le forum VBScript
    Réponses: 5
    Dernier message: 29/04/2015, 14h57
  2. Réponses: 5
    Dernier message: 07/12/2011, 14h22
  3. Réponses: 3
    Dernier message: 25/08/2011, 10h26
  4. Réponses: 2
    Dernier message: 13/02/2011, 10h08
  5. Extraire une chaine d'un fichier
    Par Sakapatate dans le forum SUSE
    Réponses: 1
    Dernier message: 21/05/2007, 10h47

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