2010-11-17 7 views
0

C# J'ai un grand bloc de texte. ce texte est divisé en unités de commentaires le texte ressemble à ceci (Pour moi de ne pas perdre du temps à expliquer quelque chose que vous pouvez voir)C# Grande quantité de texte à diviser en blocs

MikeSmith chapitre randdesign 1 paragraphe 1 livre randdesign a :) commentaires sur le livre sont futiles

Johnblack chapitre randdesign 1 paragraphe 1 livre randdesign a :) commentaires sur le livre sont vains si le livre reste ouvert et parfois ces lignes peuvent être multiples commentaires et long

WillSmith chapitre randdesign 1 paragraphe 1 livre randdesign a :) aucun commentaire sur le livre sont futiles

Comme vous pouvez le voir ce bloc de texte est intéressant que je suis un beginer J'ai très peu experiance dans le codage, je c Cookbook # 3.0 et J'essaie d'appliquer la recherche de l'emplacement de toutes les occurrences d'une chaîne dans une autre chaîne.

il y a quelques constantes que je peux utiliser

1 les noms d'utilisateur sera toujours le même. (Willsmith) et j'ai 20 utilisateurs.

2 la structure commence toujours par le nom d'utilisateur

3 le contenu réel que je souhaite importer toujours commencer par un :) b :) c :)

Ma question (s) sont les a :) is Trouver l'emplacement de toutes les occurrences d'une chaîne dans une autre chaîne, la meilleure méthode pour trouver le début et la fin de mes données?

b :) Y a-t-il un moyen plus rapide de déchirer les données du texte?

c :) Parfois, un utilisateur va citer un autre utilisateur, si je cherche des noms, alors je pourrais obtenir des faux positifs. comment puis-je faire face à cela?

Merci pour l'aide

Répondre

1

a: Oui, cela est très facilement fait. En supposant que votre bloc de texte est une chaîne énorme, et cette chaîne est appelée « s », vous pouvez diviser le texte par le caractère de nouvelle ligne, boucle à travers chaque ligne et saisir les commentaires, comme suit:

string s = @" 
MikeSmith randdesign chapter 1 paragraph 1 book randdesign a:) comments on the book are futile 

Johnblack randdesign chapter 1 paragraph 1 book randdesign a:) comments on the book are futile if the book is left open and sometimes these lines can be multiple and long comments 

willsmith randdesign chapter 1 paragraph 1 book randdesign a:) no comments on the book are futile 
"; 

foreach (string line in s.Split('\n')) 
{ 
    if (line.Trim() != "") 
    { 
     string comments = line.Substring(line.IndexOf("a:) ") + 4); 
    } 
} 

b: Peut-être, mais ce sera très rapide pour vous.

c: Essayez de modifier votre méthode IndexOf() si nécessaire. Vous pouvez l'adapter pour rechercher n'importe quoi, comme 'b :)', et 'c :)', comme vous l'avez mentionné ci-dessus.

Questions connexes