Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C#] Удовлетворяет ли строка заданному условию, Проверить,повторяются ли в строкеСимволы 
:(
    Опции темы
Zastra
Дата 15.6.2011, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 13.12.2009

Репутация: нет
Всего: нет



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

Итак, есть текстовый файл. 
В нём с каждой новой строки начинается слово длиной ровно в 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]))



Помогите пожалуйста, обязательно поправлю знания на каникулах.
PM MAIL   Вверх
wester
Дата 16.6.2011, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 2
Всего: 13



Код

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

последняя строка не покажется в консоли, т.к. не удовлетворяет условиям
PM MAIL   Вверх
Zastra
Дата 16.6.2011, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 13.12.2009

Репутация: нет
Всего: нет



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

Это сообщение отредактировал(а) Zastra - 16.6.2011, 11:12
PM MAIL   Вверх
Zastra
Дата 16.6.2011, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 13.12.2009

Репутация: нет
Всего: нет



wester, то есть не всё(
Правильные результаты на русском языке не выводит.
PM MAIL   Вверх
Zastra
Дата 16.6.2011, 11:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 13.12.2009

Репутация: нет
Всего: нет



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

Код

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

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0689 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.