Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

D2010 string -> AnsiString


Dennis I. Komarov ©   (2011-11-25 10:23:00) 

x: string;
function (y: AnsiString)....

y(AnsiString(x) - корректно?


Anatoly Podgoretsky   (2011-11-28 11:59:00) [1]

Не лишнею, а явную и не приведение, а преобразования


Dennis I. Komarov   (2011-11-28 11:47:00) [2]

x: AnsiString

StrToInt(x)
StrToInt(string(x))


1. Имеем предупреждение ... AnsiStr -> string
2. Имеем лишнюю операцию приведение

При условии, что в x получаем целое число (в строке, десятичном формате и т.п.) как корректно?

З.Ы. [11] не учитываем... :)


Anatoly Podgoretsky   (2011-11-25 12:39:00) [3]

> Ega23  (25.11.2011 12:34:11)  [11]

Ну так бы и писал, что это с целью ...


Ega23   (2011-11-25 12:34:00) [4]


> Теперь осталось выкинуть приведение


Можно. Но тогда отключить warnings W1058, W1057, W1059, W1060 etc.  :)


И. Павел   (2011-11-25 12:07:00) [5]

> [7] Dennis I. Komarov ©   (25.11.11 11:52)
> Не, тут как ничего смущающего — ясный перец, что в Ansi
> весь unicode не засунешь...

А я думал, что именно об этом был вопрос.
Потому что с потерей данных можно преобразовать что угодно во что угодно.


Anatoly Podgoretsky   (2011-11-25 12:07:00) [6]

> Ega23  (25.11.2011 11:56:08)  [8]

Теперь осталось выкинуть приведение


Ega23   (2011-11-25 11:56:00) [7]

wString: string;
aString: AnsiString;

wString := string(aString);
aString := AnsiString(wString);


Dennis I. Komarov   (2011-11-25 11:52:00) [8]

Не, тут как ничего смущающего - ясный перец, что в Ansi весь unicode не засунешь...


И. Павел   (2011-11-25 11:42:00) [9]

> И что? Что меня тут должно смутить? :)

Data Loss. А именно — кодировки.


Dennis I. Komarov   (2011-11-25 11:12:00) [10]


> И. Павел ©   (25.11.11 10:57) [4]

И что? Что меня тут должно смутить? :)


И. Павел   (2011-11-25 10:57:00) [11]

> пасиб, а то меня что-то смущало...

Продолжайте смущаться и дальше:
procedure TForm1.Button1Click(Sender: TObject);
var s: string;
   c: WideChar;
   a: AnsiString;
begin
 c := #1000;
 s := 'АБР' + c + 'ВАЛГ';
 a := s;
 Caption := s + ' : ' + a;
end;


Dennis I. Komarov   (2011-11-25 10:51:00) [12]

пасиб, а то меня что-то смущало...


И. Павел   (2011-11-25 10:42:00) [13]

String — это псевдоним для UnicodeString.
Из справки:

UnicodeString is assignment compatible with all other string types. However, assignments between AnsiString and UnicodeString do the appropriate up or down conversions. Note that assigning a UnicodeString type to an AnsiString type is not recommended and can result in data loss.


Palladin   (2011-11-25 10:40:00) [14]

да


Наверх

Титульная страница Поиск, карта сайта Написать письмо