Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.07.17;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.003 c
2-1302263393
aldis
2011-04-08 15:49
2011.07.17
Listview, подскажите как сварганить


6-1237104256
Тимохов
2009-03-15 11:04
2011.07.17
Заголовок Proxy-Connection при использовании библиотеки WinINet


2-1301942963
lordalexander
2011-04-04 22:49
2011.07.17
старый добрый HTML


2-1302808428
Алекс_123
2011-04-14 23:13
2011.07.17
RichEdit прокрутка текста


15-1301862593
Юрий
2011-04-04 00:29
2011.07.17
С днем рождения ! 4 апреля 2011 понедельник





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский