Тема: C#. операции со строками

Ответить в теме
Показано с 1 по 9 из 9
  1. Вверх #1
    Мама года
    Аватар для Ириска
    Пол
    Женский
    Адрес
    Украина, г.Одесса
    Сообщений
    1,529
    Репутация
    1216

    Question C#. операции со строками

    Задача состоит в следующем: нужно написать программу,которая считывает текст из файла и выводит на экран только цитаты, т.е. слова,заключенные в кавычки.

    Подскажите пожалуйста, каким образом,или по каким критериям организовать поиск.
    Спасибо
    Мое счастье измеряется в килограммах :)


  2. Вверх #2
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    30
    Сообщений
    2,952
    Репутация
    148
    Наверное, проще всего это сделать регулярными выражениями
    Всё зависит от того, что понимается под "словами, заключёнными в кавычки" -- они могут быть только из букв, цифр? Или цитаты -- вообще любой текст, в том числе и с пробелами?

    Для слов, набранных латиницей в кавычках это будет как-то так:

    Код:
    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.

  3. Вверх #3
    Мама года
    Аватар для Ириска
    Пол
    Женский
    Адрес
    Украина, г.Одесса
    Сообщений
    1,529
    Репутация
    1216
    Что касается понятия "цитата", то поскольку о возможном наличии цифр ничего не упоминалось,будем считать что цитата состоит из слова/слов,разделенных пробелами.
    У меня возникает ошибка,связанная с нахождением файла. Насколько я понимаю, вот тут string filename = @"file.txt";нужно прописать полный путь к файлу? И обязательно ли он должен храниться в папке проекта?
    Мое счастье измеряется в килограммах :)

  4. Вверх #4
    Не покидает форум Аватар для -=TigeR=-
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    6,625
    Репутация
    1301
    относительный путь -> рядом с exe модулем...
    абсолютный путь -> где угодно...

    никто не отменял методы IndexOf и Substring
    и конечно if с while-ом тоже никто не запрещает....

    вариантов решения - масса...

  5. Вверх #5
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    30
    Сообщений
    2,952
    Репутация
    148
    Ириска, конечно, полный путь к файлу можно указать, например так: (В этом случае он может находиться где угодно)
    Код:
    string filename = @"C:\my\file.txt";
    ~ Motivation is what gets you started. Habit is what keeps you going.

  6. Вверх #6
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    43
    Сообщений
    1,364
    Репутация
    251
    Записей в дневнике
    3
    согласен, за исключением, что
    Код:
    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 в 11:17.

  7. Вверх #7
    Ловец Снов Аватар для lexar
    Пол
    Мужской
    Сообщений
    11,535
    Репутация
    7269
    Записей в дневнике
    1
    Цитата Сообщение от Guffy Посмотреть сообщение
    то есть другой вариант, не идеальный, но работает.
    Код:
         ........
          string[] parts = data.Split(new char[]{'\"'});
                for (int i = 1; i < parts.Length; i+=2 )
                    Console.WriteLine(parts[i]);
         ........
    Мне идея понравилась.
    А "не идеальность" в чем заключается?

  8. Вверх #8
    Постоялец форума Аватар для Guffy
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    43
    Сообщений
    1,364
    Репутация
    251
    Записей в дневнике
    3
    выводит последнюю незакрытую цитату

  9. Вверх #9
    Мама года
    Аватар для Ириска
    Пол
    Женский
    Адрес
    Украина, г.Одесса
    Сообщений
    1,529
    Репутация
    1216
    Огромнейшее спасибо всем откликнувшимся )))
    у меня все получилось,конечно не без вашей помощи ))
    Если никого тема не интересует,то вобщем можно закрывать. Спасибки
    Мое счастье измеряется в килограммах :)


Ответить в теме

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения