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

Вниз

Преобразовать текст в Unucode   Найти похожие ветки 

 
имя   (2007-08-05 13:34) [40]

Удалено модератором


 
Dib@zol ©   (2007-08-05 13:38) [41]

Удалено модератором


 
Anatoly Podgoretsky ©   (2007-08-05 13:38) [42]

> Инс  (05.08.2007 13:21:38)  [38]

Я не отвечал на [18] а отвечал по поводу фундаментальных и производных типов, про перенос кода на другую RAD, другой компилятор.
И эти простейшие правила, на уровне генокода, делают этот процесс менее болезненым. Многие проекты переносятся без малейшей переделки, а переделки требуют части которые сильно зависят от платформы, и это не размер типа. Переносятся даже с .VCL на .NET, а не то что на 32 бита.
Борланд много сделал для этого, это и автоматический расчет размера в зависимости от типа и предупреждения о платфомозависимых функциях и многое другое.
Но указание SizeOf(Type) это уровень генотипа.


 
Инс ©   (2007-08-05 13:44) [43]


> Я не отвечал на [18]

Видимо у меня что-то с глазами тогда. Ну да ладно, все, кто видит это обсуждение, также заметят, ответом на какое сообщение было [20] и разберется кто прав, а кто - нет.


> а отвечал по поводу фундаментальных и производных типов,
> про перенос кода на другую RAD, другой компилятор.

Не надо мне это так подробно пытаться объяснить, я прекрасно это понимаю, не спорю. Тут вы правы. Переносимость будет только на уровне исходного кода. На этом можно и остановиться.


 
MetalFan ©   (2007-08-05 16:53) [44]

а еще правильнее, имхо, написать вот так: Length(lWStr) * SizeOf(lWStr[1])


 
{RASkov} ©   (2007-08-05 17:00) [45]

> [44] MetalFan ©   (05.08.07 16:53)

Тогда уж так:
Length(lWStr) * SizeOf(lWStr[0])
С нуля нумерация идет.... у тех у кого #нулем заканчивается...


 
Инс ©   (2007-08-05 17:05) [46]


> [45] {RASkov} ©   (05.08.07 17:00)


Неа ;)


 
{RASkov} ©   (2007-08-05 17:05) [47]

Кстати,.... вроде вот так правильно должно быть.
(Length(lWStr)+1) * SizeOf(WideChar)
Если это нужно для выделения памяти под PWideChar....
Т.е.:
L:=Length(S)+1;
GetMem(P, L*SizeOf(WideChar));
где S: String, P: PWideChar, L: Int..


 
MetalFan ©   (2007-08-05 17:05) [48]


> Неа ;)

+1 !


 
{RASkov} ©   (2007-08-05 17:05) [49]

> [46] Инс ©   (05.08.07 17:05)

Как так??


 
Инс ©   (2007-08-05 17:09) [50]


> [47] {RASkov} ©   (05.08.07 17:05)

Для выделения памяти под длинные строки, динмассивы нужно использовать SetLength а не GetMem


 
{RASkov} ©   (2007-08-05 17:20) [51]

> [50] Инс ©   (05.08.07 17:09)
> Для выделения памяти под длинные строки, динмассивы нужно
> использовать SetLength а не GetMem

Я не об этом :)
Ну первый символ в PWideChar все равно будет иметь 0 индекс, а не 1.... или не так???
Или что имелось ввиду в [46] Неа ;) ??


 
Инс ©   (2007-08-05 17:27) [52]


> Ну первый символ в PWideChar все равно будет иметь 0 индекс,
> а не 1.... или не так???

Нет :)


 
MetalFan ©   (2007-08-05 17:29) [53]

причем тут PWideChar?
у WideString, как и у AnsiString, нумерация идет с 1...


 
{RASkov} ©   (2007-08-05 17:40) [54]

> [53] MetalFan ©   (05.08.07 17:29)
> причем тут PWideChar?
> у WideString, как и у AnsiString, нумерация идет с 1...

Все верно.... это я что-то загнался про PWideChar...

> [52] Инс ©   (05.08.07 17:27)

Ни нет, а Да :)

В [53] все встало на свои места.... )


 
Anatoly Podgoretsky ©   (2007-08-05 19:08) [55]

> {RASkov}  (05.08.2007 17:40:54)  [54]

Тебе поможет следующая таблица

Char/WideChar
PChar/PWideChar
AnsiString/WideString



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

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

Наверх




Память: 0.56 MB
Время: 0.023 c
4-1172688389
Eraser
2007-02-28 21:46
2007.08.26
CreateProcessAsUserW и ошибка ERROR_PIPE_NOT_CONNECTED


2-1186160090
sashap
2007-08-03 20:54
2007.08.26
Замена popmenu в tstringgrid е


2-1185470289
A2618
2007-07-26 21:18
2007.08.26
генератор случайных чисел


9-1158691787
@!!ex
2006-09-19 22:49
2007.08.26
Текстурирование треугольников и еще куча преобразований.


15-1185882018
Rimd
2007-07-31 15:40
2007.08.26
InterBase