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

Вниз

D2010 string -> AnsiString   Найти похожие ветки 

 
Dennis I. Komarov ©   (2011-11-25 10:23) [0]

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

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


 
Palladin ©   (2011-11-25 10:40) [1]

да


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

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.


 
Dennis I. Komarov ©   (2011-11-25 10:51) [3]

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


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

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

Продолжайте смущаться и дальше:
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 11:12) [5]


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

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


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

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

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


 
Dennis I. Komarov ©   (2011-11-25 11:52) [7]

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


 
Ega23 ©   (2011-11-25 11:56) [8]

wString: string;
aString: AnsiString;

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


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

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

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


 
Anatoly Podgoretsky ©   (2011-11-25 12:07) [10]

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

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


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


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


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


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

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

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


 
Dennis I. Komarov ©   (2011-11-28 11:47) [13]

x: AnsiString

StrToInt(x)
StrToInt(string(x))


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

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

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


 
Anatoly Podgoretsky ©   (2011-11-28 11:59) [14]

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



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

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

Наверх




Память: 0.49 MB
Время: 0.011 c
6-1235561131
MALAN
2009-02-25 14:25
2012.03.04
Как перехватить API функции (Connect, Bind) и изменить их парамет


15-1320993358
Andy BitOff
2011-11-11 10:35
2012.03.04
Ну что, ждем? =)


2-1322144208
Елена
2011-11-24 18:16
2012.03.04
TPageScroller


2-1322482246
Scott Storch
2011-11-28 16:10
2012.03.04
проверка на nil


2-1322041012
Aleks
2011-11-23 13:36
2012.03.04
Переименовать несколько Button