Comment lire un texte particulier d’un fichier en C #

Salut, je suis en train d’apprendre le C # et d’essayer de lire le fichier dans mon application. aidez-moi s’il vous plaît dans ce que je veux savoir la méthode que je peux utiliser pour lire le texte particulier du fichier ..

Merci d’avance

Parag Deshpande

En supposant qu’il s’agisse de fichiers texte, ouvrez-le simplement et parcourez-le en recherchant ce que vous recherchez. Lorsque vous le trouvez, arrêtez de le lire. File.ReadLines() fera pour vous et ne lira pas tout le fichier au début, mais vous donnera des lignes au fur et à mesure de son passage.

 var filename = @"c:\path\to\my\file.txt"; var searchTarget = "foo"; foreach (var line in File.ReadLines(filename)) { if (line.Contains(searchTarget)) { // found it! // do something... break; // then stop } } 

Sinon, si vous n’utilisez pas C # 4.0, utilisez un StreamReader et vous pouvez toujours accomplir la même chose de la même manière. Encore une fois, lisez jusqu’à ce que vous trouviez votre ligne, faites quelque chose puis arrêtez-vous.

 ssortingng line = null; using (var reader in new StreamReader(filename)) { while ((line = reader.ReadLine()) != null) { if (line.Contains(searchTarget)) { // found it! // do something... break; // then stop } } } 

Si vous recherchez un motif spécifique et pas seulement un mot particulier, vous devrez utiliser des expressions régulières en conjonction avec cela.

Si vous apprenez, il est préférable de lire le fichier entier avec str = IO.File.ReadAllText (NomFichier), puis de rechercher ce que vous voulez dans la chaîne. pour lire une partie du texte, vous devez utiliser StreamReader et c’est beaucoup plus complexe.

normalement, nous devons lire chaque ligne une par une. certains codes comme ci-dessous:

 try { using (FileStream fs = new FileStream(@"c:\abc.txt", FileMode.Open)) { using (StreamReader reader = new StreamReader(fs, Encoding.UTF8)) { ssortingng line = null; while ((line = reader.ReadLine()) != null) { Console.WriteLine(line); if (line.Contains("keyword")) { } // or using Regex Regex regex = new Regex(@"^pattern$"); if (regex.IsMatch(line)) { } } } } } catch (Exception ex) { Trace.WriteLine(ex.ToSsortingng()); } 

Vous ne pouvez pas lire à partir d’une position particulière. Vous devez lire l’intégralité du contenu, supprimer la partie dont vous n’avez pas besoin et lire jusqu’à ce que vous lisiez l’emplacement souhaité.

Sur une note supplémentaire, puisque vous avez dit que vous souhaitez remplir une zone de texte, il peut être intéressant d’envisager une sorte de fichier XML contenant les valeurs souhaitées pour des zones de texte individuelles.