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

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

Контертировать 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]


Наверх

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