Форум: "Потрепаться";
Текущий архив: 2002.02.25;
Скачать: [xml.tar.bz2];
ВнизТак уж повелось... Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c