Master of Orion
Эксперт .NET
6097 / 4953 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
1

Ошибка с кодировкой.

07.04.2012, 17:40. Показов 949. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Возникла одна непонятная ошибка. Записываю массив в текстовый файл, но когда параметры передаются одни, то записывается нормально, а когда другие - почему-то записываются крокозябры:
Delphi
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
28
29
30
31
32
33
34
35
36
procedure SaveSeries (var StringGrid:TStringGrid;
                      var Arr: TArray;
                      Sorted:boolean);
var filename,FilePrefix:string;
    i:Integer;
begin
if StringGrid.Cells[0,0]='' then
begin
  MessageBox(MainForm.handle,PChar('Сохранять нечего!'),
        'Внимание',MB_OK + MB_ICONINFORMATION);
  exit
end; //endif
If MessageBox(MainForm.handle,
PChar('Вы действительно хотите сохранить последовательность?'),
                        'Внимание',MB_YESNO + MB_ICONQUESTION)=IDNO then
  begin
    MessageBox(MainForm.handle,PChar('Файл не был сохранен!'),
              'Внимание',MB_OK + MB_ICONINFORMATION);
    exit;
  end; //endif
i:=0;
if sorted then FilePrefix := 'Sorted Series('
          else FilePrefix := 'Series X(';
//Поиск имени несуществующего файла, чтобы в него записать последовательность
repeat
  inc(i);
  filename:=FilePrefix+IntToStr(i)+').txt';
until NOT(fileexists(filename));
AssignFile(OutPut,filename);
Rewrite(OutPut);
for i := 0 to StrToInt(MainForm.EditNumber.Text)-1 do
  write(OutPut,IntToStr(Arr[i])+' ');
closefile(OutPut);
MessageBox(MainForm.handle,PChar('Файл был сохранен в папке с программой под именем '
                        +filename),'Сообщение',MB_OK + MB_ICONINFORMATION);
end;  //END OF PROCEDURE
Можно было бы подумать, что проблема в параметрах, но нет: во-первых параметры одни и те же, отличаются, грубо говоря, именем (файла, куда записываем и массива, откуда берем данные, длины массивов одинаковы), но если boolean=true, то записывается нормально, если false - то записываются крокозябры, во-вторых при открытии через notepad++ вместо обычного блокнота в обоих случаях нормально все получается и открывается. ???
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.04.2012, 17:40
Ответы с готовыми решениями:

С кодировкой базы данных и кодировкой сайтом и кодировкой файла разобраться не могу
С кодировкой базы данных и сайтом файлом разобраться не могу. Я на своем сайте вывожу данные из...

Ошибка с кодировкой
Читает кракозябли(. Кодировку поставил utf-8 без BOM <?php header('Content-Type: text/html;...

Ошибка с кодировкой
Здравствуйте. Написал программу, которая выделяет определенные участки текста bb-кодами. Но...

Ошибка с кодировкой
$host = 'http://www.softtime.ru/dic/id_dic=277&id_group=11'; // АДРЕС КУДА ИДЁМ $search =...

9
3943 / 1868 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
07.04.2012, 18:12 2
Так может это блокнот так реагирует на имя файла? Проверь кодировку в одном и в другом случае. Или выложи файлы, я проверю. Я пользуюсь AkelPad-ом. Там можно переоткрывать в разных кодировках. Как в notepad++ не знаю.
Или просто переименуй файл и попробуй опять открыть блокнотом.
0
Master of Orion
Эксперт .NET
6097 / 4953 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
07.04.2012, 20:36  [ТС] 3
Одиночка, вот, смотрите, если последовательность сортированная, то работает нормально, если несортированная - то для 10 элементов норм, а для 100+ уже крокозябры. Переименовывание не спасает...
Вложения
Тип файла: rar Merge.rar (210.3 Кб, 24 просмотров)
0
3943 / 1868 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
07.04.2012, 23:35 4
Вот запустил программу. Никаких кракозябров.
0
Master of Orion
Эксперт .NET
6097 / 4953 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
07.04.2012, 23:43  [ТС] 5
Одиночка, если сохранить в файл на 100+ элементов обычную последовательность, то крокозябры. ПРоверил на 2 компах. Щас на третьем проверю.

Вот, то же самое: в блокноте крокозябры, в wordpad'е открывается нормально...
0
3943 / 1868 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
07.04.2012, 23:51 6
Может я не так сделал.
Диапазон разброса установил 100,
Количество элементов 100000,
Вид последовательности - щелкнул "случайная",
Щелкнул, на всякий случай "подсчитать",
Щелкнул "сохранить" "действие над последовательностью Х".
Полученный файл открывал разными редакторами - всё нормально.
Примерно то же самое делал, только с сортировкой. Отсортированный файл нормальный.
После сохранения отсортированного, сохранил ещё и неотсортированный. Всё нормально.
Прикладываю результирующие файлы.
Вложения
Тип файла: rar Series.rar (220.1 Кб, 3 просмотров)
0
Master of Orion
Эксперт .NET
6097 / 4953 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
08.04.2012, 10:08  [ТС] 7
Одиночка, ясно,спасибо. У меня тоже эти файлы нормально открылись ,но вот сгенерированные мной получаются фигово
Вложения
Тип файла: rar abcd.rar (800 байт, 3 просмотров)
0
3943 / 1868 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
08.04.2012, 10:23 8
Оба файла нормально открываются:
Миниатюры
Ошибка с кодировкой.  
0
Master of Orion
Эксперт .NET
6097 / 4953 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
08.04.2012, 10:25  [ТС] 9
Одиночка, еще раз: в worpad'е открывается, во всех остальных открывается, в обычном блокноте (system32/notepad.exe) Не хочет...
0
3943 / 1868 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
08.04.2012, 10:32 10
У меня тоже. Ну и хрен с ним. Это проблемы блокнота.
Кстати. Когда я в другом редакторе повставлял Enter после каждой строки, которая отображалась на экране - блокнот нормально открыл. Видимо это связано с длиной строки.
1
08.04.2012, 10:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.04.2012, 10:32
Помогаю со студенческими работами здесь

непонятная Ошибка с кодировкой
У меня такая проблема. Работаю с DREAMWEAVER cs5 + mysql. В настройках дрима при создании файла...

Ошибка с кодировкой в PostgreSQL
При копировании базы из MS SQL в PostgreSQL через Visual C# возникла ошибка неверная...

php 5.4.4 ошибка с кодировкой
Обновил на сервере php до версии 5.4.4 пытаюсь залогиниться на сайт, меня не пускает, причем...

Ошибка c utf-8 кодировкой
Доброго времени суток всем. Помогите пожалуйста советом. Есть сайт на битриксе, мы столкнулись...


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

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

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