Задача состоит в следующем: нужно написать программу,которая считывает текст из файла и выводит на экран только цитаты, т.е. слова,заключенные в кавычки.
Подскажите пожалуйста, каким образом,или по каким критериям организовать поиск.
Спасибо
|
Задача состоит в следующем: нужно написать программу,которая считывает текст из файла и выводит на экран только цитаты, т.е. слова,заключенные в кавычки.
Подскажите пожалуйста, каким образом,или по каким критериям организовать поиск.
Спасибо
Мое счастье измеряется в килограммах :)
Наверное, проще всего это сделать регулярными выражениями
Всё зависит от того, что понимается под "словами, заключёнными в кавычки" -- они могут быть только из букв, цифр? Или цитаты -- вообще любой текст, в том числе и с пробелами?
Для слов, набранных латиницей в кавычках это будет как-то так:
Код:using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Text.RegularExpressions; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string filename = @"file.txt"; string data = File.ReadAllText(filename); Regex re = new Regex("\"([A-Za-z]+)\""); MatchCollection matches = re.Matches(data); foreach (Match m in matches) Console.WriteLine(m.Groups[1].Value); Console.ReadLine(); } } }
~ Motivation is what gets you started. Habit is what keeps you going.
Что касается понятия "цитата", то поскольку о возможном наличии цифр ничего не упоминалось,будем считать что цитата состоит из слова/слов,разделенных пробелами.
У меня возникает ошибка,связанная с нахождением файла. Насколько я понимаю, вот тут string filename = @"file.txt";нужно прописать полный путь к файлу? И обязательно ли он должен храниться в папке проекта?
Мое счастье измеряется в килограммах :)
относительный путь -> рядом с exe модулем...
абсолютный путь -> где угодно...
никто не отменял методы IndexOf и Substring
и конечно if с while-ом тоже никто не запрещает....
вариантов решения - масса...
Ириска, конечно, полный путь к файлу можно указать, например так: (В этом случае он может находиться где угодно)
Код:string filename = @"C:\my\file.txt";
~ Motivation is what gets you started. Habit is what keeps you going.
согласен, за исключением, что
кстати, если проблема объяснять преподу еще и использование регулярных выражений,Код:Regex re = new Regex("\"([^\"]+)\"");
то есть другой вариант, не идеальный, но работает.
Код:........ string[] parts = data.Split(new char[]{'\"'}); for (int i = 1; i < parts.Length; i+=2 ) Console.WriteLine(parts[i]); ........
Последний раз редактировалось Guffy; 01.10.2007 в 10:17.
выводит последнюю незакрытую цитату
Огромнейшее спасибо всем откликнувшимся )))
у меня все получилось,конечно не без вашей помощи ))
Если никого тема не интересует,то вобщем можно закрывать. Спасибки
Мое счастье измеряется в килограммах :)
Социальные закладки