09.12.2015, 18:59
|
Новичок
|
|
Регистрация: 24.02.2007
Сообщения: 57
Репутация: 10
|
|
Переписать с Delphi на С++
Здрасте.
Собственно:
Было на Delphi:
Код:
function Matching(StrInputA: WideString;
StrInputB: WideString;
lngLen: Integer) : TRetCount;
Var
TempRet : TRetCount;
PosStrB : Integer;
PosStrA : Integer;
StrA : WideString;
StrB : WideString;
StrTempA : WideString;
StrTempB : WideString;
begin
StrA := String(StrInputA);
StrB := String(StrInputB);
For PosStrA:= 1 To Length(strA) - lngLen + 1 do
begin
StrTempA:= System.Copy(strA, PosStrA, lngLen);
PosStrB:= 1;
For PosStrB:= 1 To Length(strB) - lngLen + 1 do
begin
StrTempB:= System.Copy(strB, PosStrB, lngLen);
If SysUtils.AnsiCompareText(StrTempA,StrTempB) = 0 Then
begin
Inc(TempRet.lngCountLike);
break;
end;
end;
Inc(TempRet.lngSubRows);
end; // PosStrA
Result:= TempRet;
end;
Я переписал на С++.
PHP код:
TRetCount Matching(WideString StrInputA,WideString StrInputB,int lngLen){ TRetCount TempRet; int PosStrB,PosStrA ; WideString StrA,StrB,StrTempA,StrTempB; StrA =StrInputA; StrB = StrInputB; for(PosStrA=1; PosStrA<=(StrA.Length() - lngLen + 1);PosStrA++){ StrTempA=StrA.SubString(PosStrA, lngLen);
PosStrB= 1; for(PosStrB=1; PosStrB<=(StrB.Length() - lngLen + 1);PosStrB++){ StrTempB=StrB.SubString(PosStrB, lngLen); if (AnsiCompareText(StrTempA,StrTempB) == 0) { TempRet.lngCountLike=TempRet.lngCountLike+1; break; } }
TempRet.lngSubRows=TempRet.lngSubRows+1; } // PosStrA
return TempRet; }
Но что-то пошло не так.Может кто увидит , что.
|