Текущий архив: 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.54 MB
Время: 0.074 c