Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.07.17;
Скачать: CL | DM;

Вниз

AnsiString to String в DelphiXE   Найти похожие ветки 

 
AlekVolsk   (2011-04-12 23:37) [0]

Голова опухла настолько, что уже не соображаю, казалось бы, элементарное: как в DelphiXE тупо сконверировать из AnsiString в обычный String, который в DelphiXE в Unicode? B какой Unicode принят в DelphiXE по умолчанию: utf-8, utf-16 или какой-либо другой?


 
Palladin ©   (2011-04-12 23:41) [1]

а приравнять не пробовал?


 
Eraser ©   (2011-04-12 23:48) [2]

http://edn.embarcadero.com/article/38446
http://edn.embarcadero.com/article/38582
http://edn.embarcadero.com/article/38703


 
AlekVolsk   (2011-04-12 23:51) [3]

А не прокатывает, когда Edit.Text передаешь как AnsiString-параметр в функцию, равно как и присваиваешь полю результат функции в AnsiString. Казалось бы, проще функцию переписать, но таких несколько тысяч, а сроки поджимают...


 
AlekVolsk   (2011-04-13 00:08) [4]

Если я понял правильно, то вместо AnsiString я должен использовать либо CirillicString либо AnsiString(1251) и все будет хорошо, или я не прав?
Eraser, премного благодарен за ссылки, многое встало на свои места.


 
Anatoly Podgoretsky ©   (2011-04-13 09:01) [5]

> AlekVolsk  (13.04.2011 00:08:04)  [4]

Если локализация совпадает, то кодировку можно не указывать, но лучше это делать всегда.


 
Ega23 ©   (2011-04-13 10:21) [6]

var
 as: AnsiString;
 us: string;
begin
 as := "Bla-bla-bla";
 us := string(as);
 us := "foo";
 as := AnsiString(us);
end;


 
AlekVolsk   (2011-04-13 12:36) [7]

type
 CirillicString = type AnsiString(1251);
var
 s: CirillicString;
begin
 s := edit1.Text;
end;


Компилятор пишет: Implicit string cast with potential data loss from "TCaption" to "CirillicString", т.е. неявный строковый бросок с потенциальной потерей данных от "TCaption" до "CirillicString". В каких случаях возможна потеря данных из CirillicString и как этого избежать?

Если откровенно туплю - извиняйте, 40 часов уже изза компа не выхожу


 
clickmaker ©   (2011-04-13 12:41) [8]

> В каких случаях возможна потеря данных из CirillicString
> и как этого избежать?

При преобразовании из Unicode в локальную кодировку, когда в целевой кодировке нет символов исходной.


 
AlekVolsk   (2011-04-13 13:08) [9]

соответственно, если в edit1.text только символы алфавита (лат/рус), знаки препинания и цифры, при полном отсутствии каких-либо управляющих символов типа табуляции, то все будет ок. или я не прав?
Но в любом случае, хотелось бы как-то избавиться от предупреждения компилятора, это возможно в данном частном случае? да - как, нет - почему?


 
clickmaker ©   (2011-04-13 13:19) [10]

> при полном отсутствии каких-либо управляющих символов типа
> табуляции

управляющие символы имеют код < 32, они не зависят от кодировки


 
Ega23 ©   (2011-04-13 13:26) [11]


>  это возможно в данном частном случае? да - как, нет - почему?

Да.
Как - я уже написал.


 
AlekVolsk   (2011-04-13 13:49) [12]

Все получилось.
Всем премного благодарен!
Приношу всем свои извинения за возможно потраченное на меня время и нервы.


 
AlekVolsk   (2011-04-13 14:04) [13]

Блин, во всей группе проектов на 2 exe и 16 dll общей численностью более 40 тысяч строк при переходе с D2006 на DXE править пришлось менее 30 строк кода! А пока догнал, что к чему, 2 недели времени и нервов угробил!
Еще раз всем откликнувшимся огромное спасибо!



Страницы: 1 вся ветка

Текущий архив: 2011.07.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
6-1239963464
HF-Trade
2009-04-17 14:17
2011.07.17
Как и с помощью чего создать SiteMap


2-1301992024
NieL
2011-04-05 12:27
2011.07.17
xpath


15-1301693932
Германн
2011-04-02 01:38
2011.07.17
ShowFocus у TButton в "Мастерах" ака Wizards


2-1302097423
Mishutka
2011-04-06 17:43
2011.07.17
сделать активной ячейку StringGrid


1-1260213430
Leto
2009-12-07 22:17
2011.07.17
Странно работает thintwindow