![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]да