Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.25;
Скачать: 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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.009 c
3-79292
Guest.
2002-01-31 12:36
2002.02.25
Params в Query


4-79511
Alexprogrammer
2001-12-26 14:39
2002.02.25
Плавное открытие формы


7-79482
vshev
2001-11-21 12:32
2002.02.25
разрыв связи между модемами


7-79481
filipov
2001-11-20 17:06
2002.02.25
Как вытащить региональные настройки???


6-79416
Kirill_
2001-12-08 01:16
2002.02.25
WNET*