2010-01-02 7 views
0
//Introduction 
Hey, Welcome..... 
This is the tutorial 
//EndIntro 

//Help1 
Select a Stock 
To use this software you first need to select the stock. To do that, simply enter the stock symbol in the stock text-box (such as "MSFT"). 
To continue enter "MSFT" in the stock symbol box. 
//EndHelp1 

//Help2 

Download Stock Data 
Next step is to to download the stock data from the online servers. To start the process simply press the "Update" button or hit the <ENTER> key. 
After stock data is downloaded the "Refresh" button will appear instead. Press it when you want to refresh the data with the latest quote. 
To continue make sure you are online and press the "Update" button 
//EndHelp2 

Première fois que je veux afficher le contenu entre // Introduction et // EndIntro puis la deuxième fois le contenu entre // Help1 et // EndHelp1 et ainsi de suite.Accès au contenu du fichier

+0

Vous avez posté presque cette même question avant deux fois: http://stackoverflow.com/questions/1990703/displaying-particular-content- of-the-file-in-the-richtextbox-in-winforms et http://stackoverflow.com/questions/1990937/particular-content-in-richtextbox. Vous devriez améliorer vos questions existantes au lieu de reposer la même question encore et encore. Vous devriez inclure une description complète de ce que vous essayez de faire dans la question. –

+0

ok ............. – Harikrishna

+0

La façon dont vous essayez d'aborder cela vous donne des défis supplémentaires qui ne sont même pas nécessaires. Avez-vous envisagé d'utiliser HTML ou XML au lieu d'utiliser RTF? Il y a une abondance d'outils pour analyser ces formats de document, ainsi qu'un bon support intégré dans .NET. De plus, il y a beaucoup plus de personnes ici avec une connaissance approfondie de l'analyse syntaxique HTML/XML qu'avec l'analyse syntaxique RTF. Si vous pouvez modifier vos exigences pour lire un document HTML, vous pouvez résoudre ce problème en quelques heures. Si vous insistez pour rester fidèle à RTF, vous devrez probablement résoudre ce problème par vous-même. –

Répondre

3

C'est une question très ouverte - quel genre de fichier? Pour lire les données binaires de ce que vous auriez habituellement utilisé:

using (Stream stream = File.OpenRead(filename)) 
{ 
    // Read from the stream here 
} 

ou

byte[] data = File.ReadAllBytes(filename); 

Pour lire le texte, vous pouvez utiliser l'une:

using (TextReader reader = File.OpenText(filename)) 
{ 
    // Read from the reader 
} 

ou

string text = File.ReadAllText(filename); 

ou

string[] lines = File.ReadAllLines(filename); 

Si vous pouvez plus d'informations concernant le type de fichier que vous voulez lire, nous pouvons vous aider avec des conseils spécifiques. EDIT: Pour afficher le contenu d'un fichier RTF, je vous suggère de le charger en tant que texte (mais attention à l'encodage - je ne sais pas quel encodage utilise les fichiers RTF), puis de l'afficher dans un champ RichTextBox la propriété Rtf. Rendre le contrôle en lecture seule pour éviter que l'utilisateur modifie le contrôle (bien que si l'utilisateur modifie le contrôle, cela ne modifierait en aucun cas le fichier).

Si vous souhaitez afficher uniquement partie du fichier, je vous suggère de charger le fichier, trouvez le bit correspondant du texte, et l'utiliser de manière appropriée avec la propriété Rtf. Si vous chargez le fichier entier en une seule chaîne, vous pouvez utiliser IndexOf et Substring pour trouver les marqueurs de début/fin pertinents et prendre la sous-chaîne entre eux; Si vous lisez le fichier sous la forme de plusieurs lignes, vous pouvez rechercher les lignes individuelles en tant que marques de début et de fin, puis concaténer le contenu entre elles.

(Je suggère également que la prochaine fois que vous posez une question, vous devez inclure ce genre de détail pour commencer plutôt que de nous avoir à le taquiner sur vous.)

EDIT: Comme Mark a fait remarquer dans un commentaire Les fichiers RTF doivent avoir une section d'en-tête. Ce que vous avez montré n'est pas vraiment un fichier RTF en premier lieu - c'est juste du texte brut. Si vous vraiment voulez RTF, vous pouvez avoir une section d'en-tête et puis les sections individuelles. Une meilleure alternative serait probablement d'avoir des fichiers séparés pour chaque section - ce serait plus propre de cette façon.

+0

@Harikrishna - RTF est largement un format basé sur du texte, donc ReadAllText obtiendra le RTF brut, mais cela ne facilite pas la compréhension du contenu ... peut-être que vous voulez un analyseur RTF ... –

+0

@Mr Jon Skeet Pouvez-vous dire comment afficher une partie du fichier? – Harikrishna

+0

@Harikrishna: J'ai déjà décrit comment vous le feriez: charger le fichier entier, trouver les marqueurs de début et de fin, prendre le texte entre eux, puis définissez la propriété 'Rtf' avec cette sous-chaîne. –

1

Je ne suis pas certain de comprendre correctement votre question. Mais vous pouvez lire et écrire le contenu en utilisant des classes System.IO.StreamReader et StreamWriter

string content = string.Empty; 
using (StreamReader sr = new StreamReader("C:\\sample.txt")) 
{ 
    content = sr.ReadToEnd(); 
} 
using (StreamWriter sw = new StreamWriter("C:\\Sample1.txt")) 
{ 
    sw.Write(content); 
} 
1

Votre question a besoin plus de précisions. Regardez System.IO.File pour de nombreuses façons de lire les données.

La meilleure façon de lire un fichier texte est probablement ceci:

string[] lines = File.ReadAllLines("filename.txt"); 

Notez que cette fermeture gère automatiquement le fichier si aucune déclaration à l'aide est nécessaire. Si le fichier est grand ou vous n'avez pas besoin de toutes les lignes que vous aurez intérêt à lire le fichier texte d'une manière de streaming:

using (StreamReader streamReader = File.OpenText(path)) 
{ 
    while (true) 
    { 
     string line = streamReader.ReadLine(); 
     if (line == null) 
     { 
      break; 
     } 
     // Do something with line... 
    } 
} 

Si le fichier contient des données XML, vous pouvez l'ouvrir à l'aide d'un analyseur XML :

XDocument doc = XDocument.Load("input.xml"); 
var nodes = doc.Descendants(); 

Il existe de nombreuses autres façons de lire les données d'un fichier. Pourriez-vous être plus précis sur ce que le fichier contient et quelles informations vous devez lire?

Mise à jour: Pour lire un fichier RTF et l'afficher:

richTextBox.Rtf = File.ReadAllText("input.rtf"); 
+0

richTextBox.Rtf = File.ReadAllText ("input.rtf"); –

+0

Est-ce que // commence et // finit le texte trouvé dans le texte rtf? Apparaissent-ils sur leurs propres lignes? Et s'ils apparaissent plus d'une fois? Quoi d'autre avez-vous besoin de faire en dehors de cela? –

+0

Est-ce que "richTextBox.Rtf = File.ReadAllText (" input.rtf ");" afficher correctement le texte entier, sans le filtrage? Si non, quelle erreur obtenez-vous? –

Questions connexes