Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C#] Удовлетворяет ли строка заданному условию


Автор: Zastra 15.6.2011, 20:10
Всем привет. Я горю. Проблемы с криптографией. Из-за нервов нету времени писать прогу, и сообразить главное не могу. Помогите плиз.

Итак, есть текстовый файл. 
В нём с каждой новой строки начинается слово длиной ровно в 12 символов.
Как мне "выловить" те слова, которые удовлетворяют заданному условию. Вот условие: 12 букв, 1-я и 5-я повторяются, 2-я и 7-я повторяются. 
Результат можно выводить в туже консоль.

Вот как я задал условие:


Код

 if ((temp[i + 9] == temp[i + 10]) && (temp[i + 1] == temp[i + 5]) && (temp[i + 2] == temp[i + 7]))



Помогите пожалуйста, обязательно поправлю знания на каникулах.

Автор: wester 16.6.2011, 00:36
Код

namespace ZastraExample
{
    using System;
    using System.IO;

    public class Program
    {
        /// <summary> Точка входа программы
        /// </summary>
        public static void Main()
        {
            const string FilePath = "C:\\example.txt"; // путь к файлу, который необходимо парсить
            using (StreamReader fileReader = new StreamReader(FilePath)) // создаем объект StreamReader, и указываем имя файла.
            {
                string line = string.Empty; // переменная, которая необходима для построчного считываения
                while ((line = fileReader.ReadLine()) != null) 
                {
                    // читаем файл, пока не найдем конец файла
                    if ((line[0] == line[4]) && (line[1] == line[6]) && (line[0] != line[1]) && (line[4] != line[6])) 
                    {
                        // условие (1-я и 5-я повторяются, 2-я и 7-я повторяются. НО 1 символ не повторяется со вторым, а пятый с седьмым) 
                        Console.WriteLine(line);
                    }
                }
            }

            Console.ReadLine(); // ожидаем пока пользователь нажмет кнопку Enter
        }
    }
}

пример файла, который парсил
Код

akghaikoklaf
choicphllpgj
choi1phllpgj

последняя строка не покажется в консоли, т.к. не удовлетворяет условиям

Автор: Zastra 16.6.2011, 10:31
Правильные результаты на русском языке не выводит. А надо именно на нём.
Не могу понять из-за чего(

Автор: Zastra 16.6.2011, 10:48
wester, то есть не всё(
Правильные результаты на русском языке не выводит.

Автор: Zastra 16.6.2011, 11:50
Разобрался. Нужно включить нужную кодировку. Например в этом месте кода:

Код

System.Text.Encoding a = Encoding.GetEncoding(1251); // задаём кириллицу
                              using (StreamReader fileReader = new StreamReader(FilePath, a)) // добавляем переменную a в перегрузку
                              {...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)