Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.03.07;
Скачать: CL | DM;

Вниз

СРАВНЕНИЕ СТРОК   Найти похожие ветки 

 
Lord Vader ©   (2002-02-20 09:58) [0]

ПОМОГИТЕ!!!! Как сравнить две текстовые строки и выделить все отличия между ними??????

Функция должна получиться наподобие как в Windows Commander при Сравнении по содержимому.

Примечание: длины двух строк могут не совпадать.


 
Fedorenko Igor   (2002-02-20 10:13) [1]

Такие вещи пиши сам, вот пример сравнения строк, где результат -
некая величина, определяющая "похожесть" строк:

function CompareStrW( const wStr1 : WideString; const wStr2 : WideString ) : Integer;
var
i, j : Integer;
iLen1, iLen2 : Integer;
wS1, wS2 : WideString;
iMin, iMinPrev : Integer;
iErrors : Integer;
begin
if wStr1 = wStr2 then
begin
Result := 100;
exit;
end;

iLen1 := Length( wStr1 );
iLen2 := Length( wStr2 );
if iLen1 >= iLen2 then
begin
wS1 := wStr1;
wS2 := wStr2;
end else
begin
wS1 := wStr2;
wS2 := wStr1;

iLen1 := Length( wS1 );
iLen2 := Length( wS2 );
end;

iMinPrev := MaxInt;
iErrors := 0;
for i := 1 to iLen1 do
begin
//if wS1[i] = """ then continue;
iMin := MaxInt;
for j := 1 to iLen2 do
begin
if wS1[i] = wS2[j] then
begin
iMin := min( iMin, abs( i - j ) );
if abs( i - j ) = iMinPrev then
begin
iMin := iMinPrev;
break;
end;
end;
end;
if iMin = 0 then
begin
end
else if iMin = MaxInt then
begin
Inc( iErrors );
end else
begin
if iMin <> iMinPrev then Inc( iErrors );
end;
iMinPrev := iMin;
end;

Result := ( iLen1 - iErrors ) * 100 div iLen1;
end;



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

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

Наверх




Память: 0.46 MB
Время: 0.01 c
3-19075
DmitryPV
2002-02-08 15:54
2002.03.07
Как удалить запись на которой установлен курсор в DBGrid?


1-19195
sammy
2002-02-18 14:16
2002.03.07
условие в Install Shield


1-19213
Darkwin
2002-02-19 13:37
2002.03.07
Помогите разобраться с какой - то глупой непонятностью


1-19187
Gayrus
2002-02-18 03:15
2002.03.07
Строки


6-19293
welvist
2001-12-18 17:47
2002.03.07
Сканер МАК адресов компьютеров локальной TCP IP сети