Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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.004 c
1-79355
Lena
2002-02-08 09:31
2002.02.25
Символы в TCaption


3-79269
User_OKA
2002-01-30 08:09
2002.02.25
Access & BDE


1-79394
Lexan
2002-02-05 18:59
2002.02.25
Вопрос про поиск папок


1-79379
Grim Rider
2002-02-08 17:23
2002.02.25
Как писать ActiveX DLL на Delphi?


4-79508
BURATINO
2001-12-24 02:20
2002.02.25
вопрос





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский