Главная страница
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.01 c
2-1322210092
Laguna
2011-11-25 12:34
2012.03.04
Цвет ячейки StringGrid по условию


6-1252514641
ramin
2009-09-09 20:44
2012.03.04
Хочу узнать имена компьютеров в локальной сети


2-1321906467
lars
2011-11-22 00:14
2012.03.04
String Grid Подскажите, пожалуйста, как получить номера выбранных


4-1254988754
teapo1989
2009-10-08 11:59
2012.03.04
Получение handle окон


4-1254901304
Delins
2009-10-07 11:41
2012.03.04
Серийный номер Диска (не Тома)