كيف اقوم باستدعاء هذه الخوارزمية
#4
إضافة الوحدة StrUtils
الدالة الآساسية Barcode_Gen13
الإستخدام هكذا
PHP كود :
Edit1.text := Barcode_Gen13(123456); 

PHP كود :
uses
  StrUtils
;

//==========================================================

Function Genrate_Leading(pVal:String; pMax_Size:Byte;
 
                                pJust:String;pFill:String):String;
Var
 
 I, vLead_Size:Integer;
 
 vFill : String;
Begin
  vLead_Size 
:= (pMax_Size-1)-(Length(pVal));
 
 IF vLead_Size < 0 Then vLead_Size := 0;
 
 pVal := Copy(pVal,1,pMax_Size-1);
 
 vFill := '2';
 
 For I:=0 to (vLead_Size-1) Do
 
  vFill := vFill + pFill;
 
 IF UpperCase(pJust) = 'L' Then Result := pVal+vFill Else
 
 IF UpperCase(pJust) = 'R' Then Result := vFill+pVal;
End;
 
//==========================================================
Function Barcode_Gen13(New_Seq : Double):String;
Var
 
  I, vOdd_Num, vEven_Num, vChk_Digit : Integer;
 
  vArr_New : Array[1..12] of Integer;
 
  vNew : String;
Begin
  vNew 
:= Genrate_Leading(FloatToStr(New_Seq),12,'R','0'); // Generating the
 
                                                                                                         //  Leading zeros

 
 For I:=1 to 12 do                                        // Fill the Digits in an Array to type cast from string to Integer
 
 Begin
    vArr_New
[I]:= StrToInt(Copy(vNew,I,1));
 
 End;
 
 vEven_Num :=0; vOdd_Num := 0;

 
 For I:=2 to 12 do                       // Get The Total of the even Numbers
 
 Begin
    IF 
(I Mod 2)<>0 Then Continue;
 
   vEven_Num := vEven_Num + vArr_New[I];
 
 End;

 
 For I:=1 to 11 do                       // Get The Total of the Odd Numbers
 
 Begin
    IF 
(I Mod 2)=0 Then Continue;
 
   vOdd_Num := vOdd_Num + vArr_New[I];
 
 End;
 
 vChk_Digit := (vEven_Num*3)+vOdd_Num; // The Equetion to calculate the Check Digit
 
 vChk_Digit := StrToInt(RightStr(IntToStr(vChk_Digit),1));
 
 vChk_Digit := 10-(vChk_Digit);
 
 IF vChk_Digit = 10 Then vChk_Digit := 0;
 
                                       // ENd OF Equition.
 
 Result := vNew+IntToStr(vChk_Digit);
End;
 
//==========================================================

procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit1
.text := Barcode_Gen13(123456);
end; 
سبحان الله وبحمده سبحان الله العظيم
[-] كل من 1 user says قال شكرا ل Agmcz على المشاركة المفيدة
  • anter2016
الرد


الردود في هذا الموضوع
RE: كيف اقوم باستدعاء هذه الخوارزمية - بواسطة Agmcz - 12-07-2018, 01:39 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم