Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> русские символы, проблемы с кодировкой 
:(
    Опции темы
Artiom
Дата 19.9.2005, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

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



Я читаю файл, в кодировке windows -1251
Код

StreamReader r = new StreamReader(nameOfFile, System.Text.Encoding.GetEncoding("windows-1251"));

Все в порядке. Но мне потом нужно, найти в тексте русский текст
беру текст построчно и делаю так:
Код

str="русский текст"ж
int t = line.IndexOf(str);

Поиск проходит всегда безрезультатно, видимо потому что в редакторе у меня кодировка другая.
Как указать кодировку явно? И вообще какая должна быть схема работы с текстом, чтобы не беспокоиться лишний раз о том, что и как закодировано?


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
nikf
Дата 19.9.2005, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 6.6.2005
Где: город-герой Жирно вск

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



Цитата
str="русский текст"ж
int t = line.IndexOf(str);
- хорошо подумал чего написал? smile
Код

str="русский текст";
foreach(char c in line)
{
    if(str.IndexOf(c)>-1) return true;
}

ошибка не в кодировке smile

Это сообщение отредактировал(а) nikf - 19.9.2005, 10:55
PM MAIL   Вверх
Artiom
Дата 19.9.2005, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

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



nikf
я может подумал и не очень хорошо, но IndexOf принимает и string, а не только char



--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
Дрон
Дата 19.9.2005, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

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



Artiom
У меня всё работает.

Тип String хранит строки в Unicode, т.е. совершенно не важно из какого файла ты их получил. При чтении файла происходит перекодирование из указанной кодировки в Unicode.

Проверь, а действительно ли файл в кодировке Windows-1251? smile
Проверь, а действительно ли строка line содержит искомую комбинацию?

Приведи более полный код.

nikf
Твой код, кстати, совершенно неверен smile


--------------------
Да. Именно так.
PM   Вверх
nikf
Дата 19.9.2005, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 6.6.2005
Где: город-герой Жирно вск

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



Цитата
Твой код, кстати, совершенно неверен smile
в каком месте?
А вот это
Код

str="русский текст"ж
int t = line.IndexOf(str);
ищет строку "русский текст" в строке line. конечно теоретически эта подстрока может там быть, но в 99 случаях ее там не будет smilesmilesmile

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


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1031
Регистрация: 11.3.2003
Где: Минск\Баку

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



Цитата(nikf @ 19.9.2005, 09:59)
ищет строку "русский текст" в строке line. конечно теоретически эта подстрока может там быть, но в 99 случаях ее там не будет

Этот код рабочий. Если строка там есть, то она находится
А твой код неверен тем, что он найдет первый символ и выйдет.
А у меня проблема и правда была в алгоритме. Всем спасибо


--------------------
Если тебя жизнь трахает, значит, ты ещё живой
PM MAIL ICQ   Вверх
nikf
Дата 19.9.2005, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 6.6.2005
Где: город-герой Жирно вск

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



Цитата
А твой код неверен тем, что он найдет первый символ и выйдет.
ну дык мы ищем русский текст вообще или конкретную содержащуюся в тексте строку? про што спросил про то и ответ получил - мой код ищет русский символ и грит - срока русская. Ну тебе видней чего тебе надо..
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




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


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

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