Thema: Delphi C in Delphi Übersetzen

Einzelnen Beitrag anzeigen

Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#1

C in Delphi Übersetzen

  Alt 11. Apr 2007, 17:32
Kann mir jemand helfen diesen c Source in Delphi zu Übersetzen
Delphi-Quellcode:
int IMEI_code(char* IMEI, char *std);

int main(int argc, char* argv[])
{
  printf("CL 50 UNLOCK ALL\n");
  if (argc<2)                          // mach ich Anders über MemoInfo.lines.add('Prüfe eingegebene IMEI');
                                      // If length(EditIMEI.Text)<14 then begin
                                      // MemoInfo.lines.add('Falsche IMEI eingegeben');
{
  printf("USAGE: %s <IMEI>",argv[0]);
  exit(0);
}

  printf("Code for NCKKN is : **00012*");
  IMEI_code(argv[1],"NCKKN");
  printf("#\n");


  printf("Code for NSCKN is : **00022*");
  IMEI_code(argv[1],"NSCKN");
  printf("#\n");

    printf("Code for SPCKS is : **00032*");
  IMEI_code(argv[1],"SPCKS");
  printf("#\n");

    printf("Code for CKCCK is : **00042*");
  IMEI_code(argv[1],"CKCCK");
  printf("#\n");

    printf("Code for PCKKP is : **00053*");
  IMEI_code(argv[1],"PCKKP");
  printf("#\n");



}


int IMEI_code(char* IMEI, char *std)
{

//IMEI here
//char IMEI[]="351736001251143";
//char *IMEI=argv[1];

char IMEI_PATCH[17],IMEI74[17],IMEI9C[17];
char IMEICC[33];
//char std[]="PCKKP";
char std1[]="DG1";
//char std2[]="PCKKP";
char dest[16];//std3[]="DG1";
int b=0;
int i;




//init date  ------------------------
for (i=0;i<16;i++)
  dest[i]=0;


for (i=0;i<37;i++)
  IMEICC[i]=0;

  strcpy(dest,std1);
//end init date  --------------------



for(i=0;i<8;i++)
{
  b+=IMEI[i+6];
  IMEI_PATCH[i]=IMEI[i+6];
}

 //printf("%x\n",b);
 for(i=0;i<8;i++)
 {
  IMEI_PATCH[i+8]=0x64-IMEI_PATCH[i];
}


//ýòî íóëè â êîíåö ìàññèâîâ
//nulls for end array
//aka IMEI_PATCH[9]=0;
//Not used
//Íå èñïîëüçóåì:)

IMEI_PATCH[16]=0;

// printf("%s\n",IMEI_PATCH);


switch(b%3)
{
default:
case 0: for(i=0;i<16;i++)
{
  IMEI74[i]=IMEI_PATCH[i];
}
;break;

//0x1 Ðåâåðñèðîâàíèå (REVERSING)
 case 1: for(i=0;i<16;i++)
 {
  IMEI74[15-i]=IMEI_PATCH[i];
}
;break;
//0x2
  case 2:
 for(i=0;i<16;i++)
 {
  if(!(i%2)) //Ïðîâåðêà íà ÷åòíîñòü (is i/2 ???)
  {
    IMEI74[i]=IMEI_PATCH[i+1];
  }

  else
  {
  IMEI74[i]=IMEI_PATCH[i-1];
  }

 };


}


  strcat(dest,std);
  strcat(dest,std1);
  strcat(dest,std);

//printf("HASH: %s\n",dest);

for(i=0;i<16;i++)
{
IMEI9C[i]=(IMEI74[i]+dest[i])%100;
}


//printf("%s\n",IMEI74);
//printf("%s\n",IMEI9C);
IMEI74[16]=0;
IMEI9C[16]=0;

//ýòî íóëè â êîíåö ìàññèâîâ
//nulls for end array


switch(b%10)
{
case 1:
for(i=0;i<8;i++)
{
IMEICC[i*4]=(IMEI74[i*2]|dest[i*2]|IMEI9C[i*2]|IMEI9C[i*2])%10;
}

 break;
 case 2:
  for(i=0;i<8;i++)
{
IMEICC[i*4]=(IMEI74[(i*2)+1]|dest[(i*2)+1]|IMEI9C[(i*2)+1]|IMEI9C[(i*2)+1])%10;
}

  break;
 case 3:
  for(i=0;i<8;i++)
{
IMEICC[i*4]=((IMEI74[i*2]|dest[i*2])&IMEI9C[i*2]|IMEI9C[i*2])%10;
}

break;
 case 4:
 for(i=0;i<8;i++)
{

IMEICC[i*4]=((IMEI74[(i*2)+1]|dest[(i*2)+1])&IMEI9C[(i*2)+1]|IMEI9C[(i*2)+1])%10;
}

 break;
 case 5:
 for(i=0;i<8;i++)
{
IMEICC[i*4]=((IMEI74[i*2]|dest[i*2]|IMEI9C[i*2])&IMEI9C[i*2])%10;
}

 break;
 case 6:
 for(i=0;i<8;i++)
{
IMEICC[i*4]=((IMEI74[(i*2)+1]|dest[(i*2)+1]|IMEI9C[(i*2)+1])&IMEI9C[(i*2)+1])%10;
}

 break;
 case 7:
 for(i=0;i<8;i++)
{
  IMEICC[i*4]=((IMEI74[i*2]&dest[i*2])|IMEI9C[i*2]|IMEI9C[i*2])%10;
}

 break;
 case 8:
 for(i=0;i<8;i++)
{
IMEICC[i*4]=((IMEI74[(i*2)+1])&dest[(i*2)+1]|IMEI9C[(i*2)+1]|IMEI9C[(i*2)+1])%10;
}

 break;
 case 9:
 for(i=0;i<8;i++)
{
IMEICC[i*4]=(((IMEI74[i*2]&dest[i*2])|IMEI9C[i*2])&IMEI9C[i*2])%10;
}

 break;
 default:
  for(i=0;i<8;i++)
{
IMEICC[i*4]=(((IMEI74[(i*2)+1]&dest[(i*2)+1])|IMEI9C[(i*2)+1])&IMEI9C[(i*2)+1])%10;
}


}

//printf("CODE is ");
 for(i=0;i<8;i++)
  printf("%d",IMEICC[i*4]);


}
//---------------------------------------------------------------------------
-Klar ist das war ne Consolen Anwendung
-über printf erfolgt die Ausgabe

für den Rest brauch ich schon die ersten Denkanstöße

-sind das funktionen
z.B.
int IMEI_code(char* IMEI, char *std);
int main(int argc, char* argv[])

wen ja was gehört zu welcher funktion

sind das variablen wenn ja was und wie
-char IMEI_PATCH[17],IMEI74[17],IMEI9C[17];
-char IMEICC[33];
Marcel
  Mit Zitat antworten Zitat