Вниз
Скачать: CL | DM;

Так уж повелось...   Найти похожие ветки 

← →
False_Delirium ©   (2002-01-08 05:49) [0]

Быть может попробуем привести алгоритм вычисления длины строки St ..:)... кто короче, тому и пирожок..:)

Думаю что не буду сам учавствовать ввиду того, что пирожок отберу...:)...шучу... хотя решение у меня готово..:)..


← →
False_Delirium ©   (2002-01-08 05:51) [1]

Пардон, не только короче, но и производительней, эффективней.


← →
Adder ©   (2002-01-08 06:22) [2]

гм... какой строки-то ? ASCIIZ, Паскалевской, AnsiString ?
Или вообще любой ?


← →
False_Delirium ©   (2002-01-08 07:20) [3]

Алгоритм должен быть универсален..:)
Но сузим рамки.
...
var St : String[255] ;
...
Сойдёт.?.:)


← →
Adder ©   (2002-01-08 07:25) [4]

Не сойдет ж8:Р
Но раз ты пишешь string - тогда будем жульничать. Не буду я тебе длину вычислять - я ее просто получу :-)

Для PAS-строки длина хранится в байте St[0].

Для "длинных" AnsiString:

function GetAnsiSize(const st:string):integer;
var PSize:Pointer;
begin
if pointer(st)<>nil then
begin
PSize:=pointer(integer(pointer(st))-4);
result:=integer(PSize^);
end
else result:=0;
end;


← →
DK ©   (2002-01-08 07:27) [5]

Встречная атака:
Как насчёт вычисления количества разных цветов в изображении?


← →
False_Delirium ©   (2002-01-08 07:33) [6]

Не порядок.:)....Жулик, млин..:)..
var
St : string[255] ;
Dl : byte absolute St ;
begin
//Dl содержит длинну St ;
end ;
Не хорошо, тогда для PChar..:)


← →
Adder ©   (2002-01-08 07:41) [7]

Хи-хи... жульничаем дальше.... учтем, что Delphi автоматически переводит указатели PChar в AnsiString ж8:Р
Так что
function GetAnsiSize(const st:string):integer;
и далее по тексту...


← →
False_Delirium ©   (2002-01-08 07:54) [8]

Да, действительно, не порядок..:).....никакого алгоритма, одна спецификация..:)..


← →
Adder ©   (2002-01-08 07:59) [9]

А у тебя что, алгоритм, что-ли ? И работает только для ShortString ;)


← →
False_Delirium ©   (2002-01-08 08:06) [10]

Это всего-лишь контревыпад был в Вашу сторону, ввиду того что Вы жульничали..:))


← →
Adder ©   (2002-01-08 08:10) [11]

:)))


← →
MBo ©   (2002-01-08 10:36) [12]

насчет PChar
http://www.optimalcode.com/exstrlen.htm


← →
False_Delirium ©   (2002-01-09 01:49) [13]

Быстрее чем в SysUtils...но....медленнее чем вышеприведённых примерах.


← →
Dimka Maslov ©   (2002-01-09 11:01) [14]

Исключительно для AnsiString:
function GetStrLen(const Str: AnsiString): Integer;
asm
test eax, eax
jz @@10
mov eax, [eax-4]
@@10:
end;



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

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



Память: 0.48 MB
Время: 0.006 c
1-79340
Shatun
2002-02-08 09:21
2002.02.25
Проблема с размерами форм


14-79449
False_Delirium
2002-01-08 05:49
2002.02.25
Так уж повелось...


1-79373
Oxy2
2002-02-08 18:20
2002.02.25
Поиск по маске


1-79316
-=GaLaN=-
2002-02-07 18:02
2002.02.25
Extended vs Integer


1-79376
Batiskaf
2002-02-07 13:52
2002.02.25
Form Designer without Delphi




   Наверх