![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Контертировать string[10] в XE2 [WinXP]
Alex_C © (2014-01-13 16:27:00)Открыл свой старый проект, который еще на D2007 делался, и там использовались форматы строк string[10] - делалось это для того, чтобы жестко обозначить размер AnsiString. Пытался его перекомпилировать в XE2 - конструкция AnsiString[10] выдает ошибку. А как правильно заменить, чтоб строка имела фиксированный размер и была AnsiString?
Palladin (2014-01-14 09:03:00) [1]вообще это в справке описано
Jimmy (2014-01-13 19:56:00) [2]Большое спасибо за вопрос и ответы! В связи с переходом с Delphi 7 на Delphi XE5 возник тот же самый вопрос.
Alex_C (2014-01-13 18:24:00) [3]Посыпаю голову пеплом! Сейчас уже сам проверил - конечно же это и есть то, что мне нужно! string[10] - это не 10 WideChar!
DVM (2014-01-13 18:15:00) [4]
> Если я напишу String[10] в XE2 я получу строку не AnsiString
Размер String[10] - 11 байт в любой версии делфи. Это строка из 10 однобайтных символов AnsiChar. Именно это тебе ведь и нужно? Так?
Зачем тут что-то менять?
Alex_C (2014-01-13 17:58:00) [5]Моя программа сохраняет и восстанавливает данные на диск через Stream.
Так для простоты организации часть строковых данных у меня имеет фиксированный размер.
Stream.Read(PageFormName, SizeOf(PageFormName));
Где PageFormName объявлялось как string[10].
Понятно, что можно переделать программу под WideString, но уж очень много запомненных данных придется конвертировать.
Германн (2014-01-13 17:46:00) [6]
> а мне нужна строка именно AsniString
А строка AsniString не бывает фиксированного размера. И переменная типа AsniString всегда есть указатель. Так зачем тебе нужна строка именно AsniString?
Alex_C (2014-01-13 17:43:00) [7]Ну да, это понятно. Если я напишу String[10] в XE2 я получу строку не AnsiString, а мне нужна строка именно AsniString.
Германн (2014-01-13 16:47:00) [8]
> AnsiString[10] выдает ошибку
И во всех версиях Дельфи выдаст ошибку. Правильно было, есть и будет String[10]