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

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

← →
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 вся ветка

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



Память: 0.45 MB
Время: 0.024 c
2-1147698918
Petrovski
2006-05-15 17:15
2006.06.04
Можно ли программно изменять цвет фона заголовка формы


2-1148017120
Alex_C
2006-05-19 09:38
2006.06.04
Как узнать, установлен ли в сис-ме какой-либо язык?


8-1136560269
Syrnik
2006-01-06 18:11
2006.06.04
DShow: Разделить стерео аудио на 2 моно


15-1146794862
Думкин
2006-05-05 06:07
2006.06.04
Переселение


2-1147621441
wirg
2006-05-14 19:44
2006.06.04
Помогите с запросом




   Наверх