Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Вниз

Сравнить две строки!   Найти похожие ветки 

 
KLAUS ©   (2006-05-20 14:11) [0]

Всем Привет!!
Народ подскажите как сравнить две строки по байтно?
Только без WildStringCompare!


 
Glex ©   (2006-05-20 14:19) [1]


function CompareStr(const s1, s2: string): boolean;
var i, N: integer;
begin
N := Min(length(s1), length(s2));
result:=true;
for i:=1 to Min do begin
 if s1[i]<>s2[i] then begin
   result:=false;
   exit;
   end;
 end;
if length(s1)<>length(s2) then result:=false;
end;


Это что ли? =))


 
KLAUS ©   (2006-05-20 18:40) [2]

THANKS вообще в самую точку!!!


 
AlexWlad ©   (2006-05-20 20:53) [3]

Если нужна скорость попробуй такую процедуру.

function AW_CompareMem(P1, P2: Pointer; Length: Integer): Integer; assembler;
asm
       PUSH    ESI
       PUSH    EDI
       MOV     ESI,P1
       MOV     EDI,P2
       MOV     EDX,ECX  // Length
       XOR     EAX,EAX
       AND     EDX,3    // число байт в хвосте - Length mod 4
       SHR     ECX,1    // div 2 - WORD
       SHR     ECX,1    // div 2 - DWORD
       REPE    CMPSD
       JE      @@1      // все DWORD равны, анализ хвоста
       SUB     ESI,4    // поиск байта-отличия в DWORD
       SUB     EDI,4
       MOV     EDX,4
@@1:    MOV     ECX,EDX  // сравнение в хвосте
       REPE    CMPSB
       JE      @@5      // все BYTE равны
       MOVZX   EAX,BYTE PTR [ESI-1]  // вычисление разницы байт
       MOVZX   EDX,BYTE PTR [EDI-1]
       SUB     EAX,EDX
@@5:    POP     EDI
       POP     ESI
end;


Пример использования

i := AW_CompareMem(@s1[1],@s2[1],Min(Length(s1),Length(s2)));



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

Форум: "Начинающим";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.041 c
15-1146825737
Nic
2006-05-05 14:42
2006.06.04
Отечественный производитель и IT


15-1147200779
SergProger
2006-05-09 22:52
2006.06.04
Атрибуты скрипта


8-1135496232
vitaliy14
2005-12-25 10:37
2006.06.04
Окнтуривание изображений


15-1147350795
carmen
2006-05-11 16:33
2006.06.04
tpu


15-1147520526
LexxX
2006-05-13 15:42
2006.06.04
Восприятие музыки. Громкость





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский