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

Вниз

Контертировать string[10] в XE2   Найти похожие ветки 

 
Alex_C   (2014-01-13 16:27) [0]

Открыл свой старый проект, который еще на D2007 делался, и там использовались форматы строк string[10] - делалось это для того, чтобы жестко обозначить размер AnsiString. Пытался его перекомпилировать в XE2 - конструкция AnsiString[10] выдает ошибку. А как правильно заменить, чтоб строка имела фиксированный размер и была AnsiString?


 
Германн ©   (2014-01-13 16:47) [1]


> AnsiString[10] выдает ошибку

И во всех версиях Дельфи выдаст ошибку. Правильно было, есть и будет String[10]


 
Alex_C   (2014-01-13 17:43) [2]

Ну да, это понятно. Если я напишу String[10] в XE2 я получу строку не AnsiString, а мне нужна строка именно AsniString.


 
Германн ©   (2014-01-13 17:46) [3]


> а мне нужна строка именно AsniString

А строка AsniString не бывает фиксированного размера. И переменная типа AsniString всегда есть указатель. Так зачем тебе нужна строка именно AsniString?


 
Alex_C   (2014-01-13 17:58) [4]

Моя программа сохраняет и восстанавливает данные на диск через Stream.
Так для простоты организации часть строковых данных у меня имеет фиксированный размер.

Stream.Read(PageFormName, SizeOf(PageFormName));


Где PageFormName объявлялось как string[10].

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


 
DVM ©   (2014-01-13 18:15) [5]


> Если я напишу String[10] в XE2 я получу строку не AnsiString

Размер  String[10] - 11 байт в любой версии делфи. Это строка из 10 однобайтных символов AnsiChar. Именно это тебе ведь и нужно? Так?
Зачем тут что-то менять?


 
Alex_C   (2014-01-13 18:24) [6]

Посыпаю голову пеплом! Сейчас уже сам проверил - конечно же это и есть то, что мне нужно! string[10] - это не 10 WideChar!


 
Jimmy   (2014-01-13 19:56) [7]

Большое спасибо за вопрос и ответы! В связи с переходом с Delphi 7 на Delphi XE5 возник тот же самый вопрос.


 
Palladin ©   (2014-01-14 09:03) [8]

вообще это в справке описано



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

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

Наверх




Память: 0.48 MB
Время: 0.006 c
11-1256898123
Инна
2009-10-30 13:22
2015.02.15
Мультимедия таймер


15-1405114611
alexdn
2014-07-12 01:36
2015.02.15
Перевод программы


2-1389109036
SKIPtr
2014-01-07 19:37
2015.02.15
программа должна узнать какое окно было активным


2-1389859637
JohnKorsh
2014-01-16 12:07
2015.02.15
Работа с целыми числами, превышающими Int64


15-1405116396
Edgar_Wine
2014-07-12 02:06
2015.02.15
Вероятность что при бросании двух костей выпадет хоть одна 6