Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.04.05;
Скачать: [xml.tar.bz2];

Вниз

String[xx] в Delphi 2009   Найти похожие ветки 

 
Stan   (2009-02-06 18:24) [0]

Раньше в структурах можно было написать String[255], и сохранить эту структуру со строкой куда-нибудь. Теперь же написав то же самое в D2009, строка становиться ANSI (ShortString), а не юникод. Приходиться возиться с массивом of char, и Move.
Так вот, возможно ли использовать String[xx] но чтобы в строке был юникод? Возможно я не дочитал чего то?


 
Плохиш ©   (2009-02-06 18:36) [1]


> Раньше в структурах можно было написать String[255], и сохранить
> эту структуру со строкой куда-нибудь. Теперь же написав
> то же самое в D2009, строка становиться ANSI (ShortString),
>  а не юникод.

Она всегда была ShortString, об этом во всех справках и документациях написано.


 
PEAKTOP ©   (2009-02-06 18:47) [2]

array[0..254]of Char ?


 
Anatoly Podgoretsky ©   (2009-02-06 18:48) [3]

> Stan  (06.02.2009 18:24:00)  [0]

ANSI она не становится.
Юникод это когда string или WideString


 
vuk ©   (2009-02-06 18:50) [4]

Delphi6 Help:

ShortString
Maximum length: 255 characters
Memory required: 2 to 256 bytes
Used for: backward compatibility

То есть если сделали структуры с такими строками, то это не проблема CodeGear и D2009, а того, кто пользуется устаревшими конструкциями. Да и сама идея писать структуры целиком вне зависимости отдлины строки - не фонтан. Оно, конечно да, быстро, тупо, но ни разу не эффективно.


 
Stan   (2009-02-06 19:12) [5]

Да я в курсе.


>  Оно, конечно да, быстро, тупо, но ни разу не эффективно


Ну не эффективно только в плане размера структуры.
Собственно и для массива я также использую array [0..254] - т.е. делать динамические структуры, и соотвественно усложнять в разы код - неохота.
А по вашему так эффективнее? В плане чего?

Кстати, есть ли какие вариант, чтобы вернуть то удобство для работы с юникод строками в структурах?


>
>>Anatoly Podgoretsky ©   (06.02.09 18:48) [3]
>
> ANSI она не становится.


Нет, она становиться ANSI. Если string - это юникод, string[xx] - это ANSI (shortstring) - rtfm.


 
Anatoly Podgoretsky ©   (2009-02-06 19:30) [6]

> Stan  (06.02.2009 19:12:05)  [5]

Не становится, что ты сам и доказываешь данной фразой ANSI (shortstring) - ANSI  это не shortstring, а динамическая строка, в то время как shortstring статическая, с префиксом длины.


 
Stan   (2009-02-06 19:41) [7]


> Не становится, что ты сам и доказываешь данной фразой ANSI
> (shortstring) - ANSI  это не shortstring, а динамическая
> строка, в то время как shortstring статическая, с префиксом
> длины.


Не придирайтесь к словам, не будьте буквоедом.
Если вам полегчает, пусть будет -  shortstring - ansi..
Суть сабжа в другом.


 
Sapersky   (2009-02-06 21:05) [8]

Кстати, есть ли какие вариант, чтобы вернуть то удобство для работы с юникод строками в структурах?

Если имеется в виду "сохранить эту структуру со строкой куда-нибудь", то есть полухакерский метод, позволяющий корректно сохранять в поток структуры с любыми строками:
http://sapersky.narod.ru/files/TypInfoEx.rar
Ну то есть почти любыми... новые юникодовские строки BDS2009 (UnicodeString они вроде называются?) как раз не поддерживаются, но можно использовать старые WideString.
Или можешь попробовать дописать сам, по аналогии со старыми (знаю, что TypInfo.Kind у новых строк должен быть tkUString, но не в курсе, в каком виде там хранится длина - в байтах или в символах).


 
ketmar ©   (2009-02-06 22:39) [9]

>[7] Stan (2009-02-06 19:41:00)
>Не придирайтесь к словам, не будьте буквоедом.

если человек говорит бред — возникает обоснованное сомнение в том, что его вопрос содержит здравое зерно.

---
All Your Base Are Belong to Us



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

Форум: "Прочее";
Текущий архив: 2009.04.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
15-1233878286
pascal
2009-02-06 02:58
2009.04.05
Перестарьте заниматься ерундой!


1-1209133936
Kolan
2008-04-25 18:32
2009.04.05
В MDI приложение WindowState := wsMaximized; происходит долго&#133


2-1234283818
CodeMaster
2009-02-10 19:36
2009.04.05
Убрать кнопку минимизации


15-1233567712
любитель дельфинов
2009-02-02 12:41
2009.04.05
Postgres + Delphi 2007


2-1234683748
Roll
2009-02-15 10:42
2009.04.05
Как организовать плейлист





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский