Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2010, 05:19   #1
Alt
Лжец и смутьян
Форумчанин
 
Аватар для Alt
 
Регистрация: 03.04.2009
Сообщений: 194
По умолчанию Работа с файлами и WideString

Пользуюсь Delphi 2007, на 2009 перейти нет возможности, поэтому есть определенные проблемы при работе с Unicode (widestring). По неизвестной мне причине, записывая в текстовый файл (type textfile) строку, содержащую Unicode-символы (например стрелочка → ) они преобразуются в ANSI (та же стрелочка становится такой: > ), нужно этого избежать. Как?
Помогли тебе - помоги другому.
Alt вне форума Ответить с цитированием
Старый 19.12.2010, 05:27   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

осуществлять перекодирование при сохранении, сохраняйте файл в той кодировке в которой нужно

ЗЫЖ
Цитата:
Пользуюсь Delphi 2007, на 2009 перейти нет возможности, поэтому есть определенные проблемы при работе с Unicode (widestring).
вы ещё с лазариусом не работали

Последний раз редактировалось vovk; 19.12.2010 в 05:31.
vovk вне форума Ответить с цитированием
Старый 19.12.2010, 05:36   #3
Alt
Лжец и смутьян
Форумчанин
 
Аватар для Alt
 
Регистрация: 03.04.2009
Сообщений: 194
По умолчанию

И как же это осуществляется, по-вашему?
Вот у меня есть строка в кодировке UTF-8, тип строки: widestring, в ней содержатся стрелочки → и квадратики ■
При сохранении в файл эти символы изменяются. Сохраняю через writeln(имя_файла,имя_строки);
Помогли тебе - помоги другому.
Alt вне форума Ответить с цитированием
Старый 19.12.2010, 05:44   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Не знаю во что надо перекодировать но естественно что если к примеру из кодировки в 4б перекодировать в кодировку из 2б то теряется информация..
может надо перекодировать во чтото другое? ))
vovk вне форума Ответить с цитированием
Старый 19.12.2010, 05:45   #5
Alt
Лжец и смутьян
Форумчанин
 
Аватар для Alt
 
Регистрация: 03.04.2009
Сообщений: 194
По умолчанию

В том-то и дело, мне не надо ничего никуда перекодировать! Это происходит автоматически, когда я использую запись в файл.
Помогли тебе - помоги другому.
Alt вне форума Ответить с цитированием
Старый 19.12.2010, 05:47   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

тогда может наконец скажите как и что вы сохраняете. Знаете ли телепатор он какойто непостоянный глючит гад ))
vovk вне форума Ответить с цитированием
Старый 19.12.2010, 05:48   #7
Alt
Лжец и смутьян
Форумчанин
 
Аватар для Alt
 
Регистрация: 03.04.2009
Сообщений: 194
По умолчанию

я же русским языком написал:
я сохраняю строку типа widechar в файл типа textfile
использую самый обычный writeln
Помогли тебе - помоги другому.
Alt вне форума Ответить с цитированием
Старый 19.12.2010, 05:49   #8
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

и как вы это делаете я должен дагадатся?
тоесть работа с файлами ? код можно посмотреть?
vovk вне форума Ответить с цитированием
Старый 19.12.2010, 05:52   #9
Alt
Лжец и смутьян
Форумчанин
 
Аватар для Alt
 
Регистрация: 03.04.2009
Сообщений: 194
По умолчанию

ну написал же я, что использую простой writeln

Код:
var
str: widestring;
file1: textfile;
begin
str:='■→→→';
assign(file1,'file.txt');
rewrite(file1);
writeln(file1,'п»ї',str);
close(file1);
end.
п»ї нужно чтобы блокнот воспринимал файл как юникодовский
Помогли тебе - помоги другому.

Последний раз редактировалось Stilet; 19.12.2010 в 17:57.
Alt вне форума Ответить с цитированием
Старый 19.12.2010, 05:58   #10
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

как же я вас понимаю секретный код, writeln это же всё обьясняет, ну начинаю телепатить использеуете Textfile, writeln(f,и наверно переменная какаято (нейзвестно какая)), и потом что ? как вы проверяете что информация потеряна?


ЗЫ простите писал до того как было последнее сообщение
vovk вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертиция WideString в String [D2007] AndreyFreeman Общие вопросы Delphi 5 18.09.2010 17:51
Pointer через Move в WideString проблема daemon-rm Помощь студентам 2 31.07.2010 19:37
работа с файлами dima0268 Общие вопросы C/C++ 1 15.12.2009 17:22
Delphi 7 - скрытые возможности Unicode (WideString) BOBAH13 Общие вопросы Delphi 7 13.03.2009 08:40
WideString и String Mitron Общие вопросы Delphi 1 11.02.2008 19:14