0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 36
1

Неверная кодировка при чтении из текстового файла (Encoding не работает)

04.12.2012, 23:08. Показов 5025. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть программа, которая должна выводить фамилии (выбранные по определенному критерию) в файл:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//метод сравнения двух матриц
static string matr(int[,] a, string path, int[,] b)
        {
            StreamReader file = new StreamReader(path);
            string linetemp = file.ReadLine();//первая строчка файла содержит нужную Фамилию
            file.Close();
            //string linetemp = path;
            int k=0;
            for (int i = 0; i < b.GetLength(0); i++)
                for (int j = 0; j < b.GetLength(1); j++)
                    if (a[i, j] == b[i, j]) k++;
            if (k == b.GetLength(0) * b.GetLength(1))
            {
                return linetemp;
            }
            return "";
        }
 
 
//сам код
StreamWriter file = new StreamWriter("results.txt", true, Encoding.GetEncoding(1251)); //перепробовал default, windows(1251), все никак
                        file.WriteLine(matr(student1, "student1.txt", a));
                        file.WriteLine(matr(student2, "student2.txt", a));
                        file.WriteLine(matr(student3, "student3.txt", a));
                        file.WriteLine(matr(student4, "student4.txt", a));
                        file.WriteLine(matr(student5, "student5.txt", a));
file.Close();
на выходе в файл results записываются вопросики или квадратики.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2012, 23:08
Ответы с готовыми решениями:

Неверная кодировка при чтении файла
Какой-то бред, где можно почитать про кодировки и drag&amp;drop... this.ldad.DragEnter +=...

Неверная кодировка при чтении из файла
Обнаружил неприятный факт, при чтении текста из файла в Label.Text он отображается...

Неверная кодировка при чтении из файла
Здравствуйте! Есть функция, которая читает символы из текстового файла. При чтении русской буквы...

Неверная кодировка при чтении из файла
Добрый вечер! Пытаюсь прочитать файл. Текст посылаю в диалоговое окно. на выходе иероглифы. ...

13
Master of Orion
Эксперт .NET
6094 / 4950 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
04.12.2012, 23:17 2
Попробуйте Encoding.Unicode
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 36
04.12.2012, 23:21  [ТС] 3
Цитата Сообщение от Psilon Посмотреть сообщение
Попробуйте Encoding.Unicode
квадратики
0
Master of Orion
Эксперт .NET
6094 / 4950 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
04.12.2012, 23:23 4
Не говоря о нормальном методе сравнения матриц
C#
1
2
3
4
5
6
7
8
9
10
bool EqualsMatr<T>(T[,] a, T[,] b)
{
   if (a.GetLength(0) != b.GetLength(0) || a.GetLength(1) != b.GetLength(1))
      return false;
   for(int i = 0; i < a.GetLength(0); i++)
      for(int j = 0; j < a.GetLength(1); j++)
         if (a[i] != b[i])
            return false;
   return true;
}
В самом блокноте какая кодировка-то стоит?
1
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 36
04.12.2012, 23:31  [ТС] 5
стандартная кодировка(unicode как раз вроде), и да, ваш метод более универсальный. Для разно размерных матриц. У меня данные все равно как частный случай.
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 36
04.12.2012, 23:34  [ТС] 6
вот скрины
Миниатюры
Неверная кодировка при чтении из текстового файла (Encoding не работает)   Неверная кодировка при чтении из текстового файла (Encoding не работает)   Неверная кодировка при чтении из текстового файла (Encoding не работает)  

0
Master of Orion
Эксперт .NET
6094 / 4950 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
04.12.2012, 23:34 7
alexfallout, ну в отладчике посмотрите, строка нормальная или нет. Если нормальная значит тупо в блокноте проблема (У меня похожая проблема была когда я на дельфи писал сортировку: там в notepad++ нормально открывалось, а в обычном виндовом блокноте - нет). Ну или скиньте сюда результирующий файл, я сам гляну. А лучше весь код давайте
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 36
04.12.2012, 23:41  [ТС] 8
notepad++, давно его не юзал, отображает такие же квадратики что и обычный (в графе format менял кодировку, результат плохой)
хмм весь код?
там много чего другого, совсем не относящегося к тому что надо. НО если поможет делу, то вот.
Вложения
Тип файла: rar ConsoleApplication2.rar (61.8 Кб, 2 просмотров)
0
Master of Orion
Эксперт .NET
6094 / 4950 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
04.12.2012, 23:48 9
И что оно должно делать?о_0

Добавлено через 2 минуты
И какое имя файла, который квадратиками? (если его не скидывали в проекте, скиньте отдельно).
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 36
04.12.2012, 23:50  [ТС] 10
вся программа много всякого делает, но вот то что в case "7" должно прочитать матрицу(эталон(output.txt)) с файла, и сравнивать с 5ю другими матрицами (которые берутся из файлов, в которых указана Фамилия(1строка) размер матрицы(2) и сами элементы матрицы (students1-5.txt)). Если матрицы совпадают скинуть в файл results фамилии тех, чьи матрицы совпадают.
Файл с названием results.txt, если его нет, то просто запустите программу и выберите номер 7 и файл создастся в папке ConsoleApplication2\ConsoleApplication2\bin\Release
0
Master of Orion
Эксперт .NET
6094 / 4950 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
04.12.2012, 23:51 11
alexfallout, вся программа что делает?))
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 36
05.12.2012, 16:14  [ТС] 12
Цитата Сообщение от Psilon Посмотреть сообщение
alexfallout, вся программа что делает?))
какая разница? я вам сказал что в 7ке делается, остальное не должно вас волновать, потому что оно не относится к моему вопросу. И да, проблема заключалась в том что надо было входные файлы (students1-5.txt) сохранять с кодировкой UTF-8, анси и другие почему то не прокатывали. Спасибо за ответы.
0
3 / 3 / 1
Регистрация: 12.05.2010
Сообщений: 27
05.12.2012, 16:25 13
Попробуйте
C#
1
StreamReader reader = new StreamReader("results.txt", Encoding.Default)
0
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 36
05.12.2012, 19:06  [ТС] 14
Цитата Сообщение от Ninochka Посмотреть сообщение
Попробуйте
C#
1
StreamReader reader = new StreamReader("results.txt", Encoding.Default)
проблема решена, и это я с самого начала пробовал.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2012, 19:06
Помогаю со студенческими работами здесь

Неверная кодировка при чтении из файла
Время доброе) Скажу сразу, что честно гуглил и рылся, но ответа так и не нашел. Пишу для себя...

Неверная кодировка при чтении из файла
Пытаюсь написать программу на Лазарусе, которая будет из текстового файла брать информацию и...

Неверная кодировка при считывании из файла
Проблема такая, при считывание из файла идет кракозябра, как это исправитьsetlocale(LC_ALL, &quot;rus&quot;);...

Неверная кодировка при создании файла
Добрый день! я через fprintf заношу в файл данные fprintf(fp, &quot;Имя: %s\n&quot;,p-&gt;name); однако...

Неверная кодировка при загрузке файла в datagridview
Ребята, выручайте! На форме есть datagridview, 3 textbox-a, и кнопка &quot;Добавить данные&quot;, меню:...

Неверная кодировка при загрузке файла в RichTextBox
Доброго времен суток, ув. форумчане! Я столкнулся со следующей проблемой: когда я считываю с файла...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru