Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.54 MB
Время: 0.017 c
2-1185996421
Мануха
2007-08-01 23:27
2007.08.26
chart


1-1182165752
Makhanev Alexander
2007-06-18 15:22
2007.08.26
Как убить поток...


15-1184778574
Kolan
2007-07-18 21:09
2007.08.26
Еще про DataLayer, а как предпологается быть с отображением?


15-1185789204
Kerk
2007-07-30 13:53
2007.08.26
Клубом порулить хочется?


15-1185522868
Alkid
2007-07-27 11:54
2007.08.26
Зараза vs. Virtual Machine




   Наверх