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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2013, 22:39   #1
dolphin705
Форумчанин
 
Аватар для dolphin705
 
Регистрация: 02.08.2008
Сообщений: 213
Вопрос Как использовать UNICODE функции?

Здравствуйте! У меня был проект на Delphi 7.
Возникли любопытство переписать его на XE3 допустим в юникоде.
раньше я писал примерно так
Код:
var
  a : array[0..30] of char;
begin
lstrcpyA(a,#0);
lstrcatA(a,'Блабла');
lstrcatA(a,#13#10);
lstrcatA(a,'Блабла');
дальше 
CreateFileA ....
WriteFile ...
CloseHandle();
открывал полученный файл там было :

Блабла
Блабла

но с юникод функциями
Код:
var
  a : array[0..30] of widechar;
begin
lstrcpyW(a,#0);
lstrcatW(a,'Блабла');
lstrcatW(a,#13#10);
lstrcatW(a,'Блабла');
дальше 
CreateFileW ....
WriteFile ...
CloseHandle();
так не выходит записать файл
я понимаю что #13#10 это анси символы перевода строки
но как сделать перевод строки в юникодном варианте?
получаются козябазя
подскажите как быть в таком случае?

Последний раз редактировалось Stilet; 23.01.2013 в 14:11.
dolphin705 вне форума Ответить с цитированием
Старый 23.01.2013, 02:14   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

почти правильно. После 2009 версии delphi, даже char юникоден.
Код:
var
a : array[0..30] of char;
begin
lstrcpyW(a,#0);
lstrcatW(a,'Блабла');
lstrcatW(a,#13#10);
lstrcatW(a,'Блабла');
дальше
CreateFileW ....
WriteFile ...
CloseHandle();
И да, большенсво низкоуровневых функций не надо вызывать явно(указывать A, W) т.к. они имеют свои нативные аналоги у самой среды и по умолчанию там юникод.
lstrcat
Человек_Борща вне форума Ответить с цитированием
Старый 23.01.2013, 13:19   #3
dolphin705
Форумчанин
 
Аватар для dolphin705
 
Регистрация: 02.08.2008
Сообщений: 213
По умолчанию

Проблема к сожалению так и не решена, видимо она в управляющих символах #13#10
dolphin705 вне форума Ответить с цитированием
Старый 23.01.2013, 13:28   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

они неитральны вообще-то.
Человек_Борща вне форума Ответить с цитированием
Старый 23.01.2013, 13:35   #5
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

#00#13#00#10
или chr(13)+chr(10)
в общем тоже двубайтовые
Не стесняемся, плюсуем!

Последний раз редактировалось Slym; 23.01.2013 в 13:38.
Slym вне форума Ответить с цитированием
Старый 23.01.2013, 16:52   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а возможно дело тупо в блокноте, который не может верно открыть файл.
ибо BOM'а то нету.

кстати такая работа с юникодом доступна и в д7.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 04.04.2013, 00:21   #7
dolphin705
Форумчанин
 
Аватар для dolphin705
 
Регистрация: 02.08.2008
Сообщений: 213
По умолчанию

Решилось так
Код:
#0013#0010
dolphin705 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как использовать в Delphi-программе функции из DLL, написанной на C# АТИКОН Общие вопросы Delphi 12 19.03.2013 08:28
Как использовать функции для формирования ссылок в формулах? Buchhalter Microsoft Office Excel 5 24.08.2012 18:29
Можно ли задать глобальную переменную из функции или как-то напрямую использовать память для хранения переменных из функции? Suny-o Общие вопросы Delphi 2 14.06.2012 11:45
Как в Си использовать двумерный массив в качестве аргумента функции? Hornet_nsk Помощь студентам 7 05.02.2012 09:46
Как использовать функции FindWindow и CloseWindow? __Demon__ Общие вопросы C/C++ 4 14.08.2009 15:29