Показать сообщение отдельно
  #1  
Старый 09.12.2015, 18:59
Redstason Redstason вне форума
Новичок
 
Регистрация: 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(PosStrAlngLen);

   
PosStrB1;
   for(
PosStrB=1PosStrB<=(StrB.Length() - lngLen 1);PosStrB++){
     
StrTempB=StrB.SubString(PosStrBlngLen);
     if (
AnsiCompareText(StrTempA,StrTempB) == 0) {
       
TempRet.lngCountLike=TempRet.lngCountLike+1;
       break;
     }
   }

   
TempRet.lngSubRows=TempRet.lngSubRows+1;
 } 
// PosStrA


    
return TempRet;



Но что-то пошло не так.Может кто увидит , что.
Ответить с цитированием