المشاركات : 38
المواضيع 12
:
: 6
الإنتساب : Sep 2012
17-04-2022, 10:58 PM
(آخر تعديل لهذه المشاركة: 18-04-2022, 12:53 AM بواسطة S.FATEH.)
السلام عليكم و رحمة الله
صح فطوركم و تقبل الله منا و منكم
هل سبق لأحدكم و أن تعامل مع قارئ MRZ الذي يقرأ الشريط السفلي من بطاقة التعريف البيومترية أو جواز السفر برمجيا بحيث أستخرج رقم البطاقة و الاسم و اللقب ... هل من مساعدة من فضلكم و بارك الله فيكم.
المشاركات : 470
المواضيع 0
:
: 215
الإنتساب : Apr 2011
سلام عليكم ، رمضان كريم
وحدة تتعامل مع MRZ
كود :
unit PassMRZChk;
interface
implementation
function CheckPassportDigit(const PassportStr: string): byte;
const
Weight: array [0 .. 2] of byte = (1, 7, 3);
//
function GetChrProductXWeight(DigitChr: Char; const Idx: byte): byte;
begin
DigitChr := UpCase(DigitChr);
case DigitChr of
'<':
Result := 0;
'0' .. '9':
Result := (Ord(DigitChr) - 48);
'A' .. 'Z':
Result := (Ord(DigitChr) - 65) + 10;
else
Result := 0;
end;
Result := Result * Weight[(Idx mod 3)];
end;
var
i: byte;
ProductXWeight: byte;
Sum: Word;
begin
Sum := 0;
if Length(PassportStr) = 0 then
exit(0);
for i := 1 to Length(PassportStr) do
begin
ProductXWeight := GetChrProductXWeight(PassportStr[i], (i mod 3));
Sum := Sum + ProductXWeight;
end;
Result := (Sum mod 10);
end;
end.
الفاشلون نوعان : الأول : فكر ولم يفعل .. والآخر: فعل ولم يفكر
المشاركات : 38
المواضيع 12
:
: 6
الإنتساب : Sep 2012
(17-04-2022, 11:47 PM)Mr.DOS كتب : سلام عليكم ، رمضان كريم
وحدة تتعامل مع MRZ
كود :
unit PassMRZChk;
interface
implementation
function CheckPassportDigit(const PassportStr: string): byte;
const
Weight: array [0 .. 2] of byte = (1, 7, 3);
//
function GetChrProductXWeight(DigitChr: Char; const Idx: byte): byte;
begin
DigitChr := UpCase(DigitChr);
case DigitChr of
'<':
Result := 0;
'0' .. '9':
Result := (Ord(DigitChr) - 48);
'A' .. 'Z':
Result := (Ord(DigitChr) - 65) + 10;
else
Result := 0;
end;
Result := Result * Weight[(Idx mod 3)];
end;
var
i: byte;
ProductXWeight: byte;
Sum: Word;
begin
Sum := 0;
if Length(PassportStr) = 0 then
exit(0);
for i := 1 to Length(PassportStr) do
begin
ProductXWeight := GetChrProductXWeight(PassportStr[i], (i mod 3));
Sum := Sum + ProductXWeight;
end;
Result := (Sum mod 10);
end;
end.
يبدو أنك لم تفهمني
أنا أود قراءة MRZ دون اللجوء إلى OutputWedgeSysTray المتواجد في مجلد التنصيب 3M Swipe Reader كما هو مبين في الفيديو ابتداء من الثانية 47
https://www.youtube.com/watch?v=EqXxNkXIs2o
هل هناك مكون دلفي يتعامل مباشرة مع MRZ كلوحة مفاتيح؟ أرجو أن أكون أوضحت الفكرة
المشاركات : 842
المواضيع 49
:
: 65
الإنتساب : Jun 2010
و عليكم السلام و رحمة الله و بركاته
ليست عندي معلومات عن الجهاز ، لكن عندي بعض الأسئلة
* ما نوع منفذ الجهاز؟ usb/ com
* إذا كان usb عند فتح محرر النصوص و القراءة دون إستعمال أي اداة هل يكتب النص ؟
إذا كان لا يكتب النص هل sdk الخاص بالجهاز متوفر؟
إذا كان غير متوفر إتصل بالمصنع و أطلب نسخة إذا موجودة أو بعض المساعدة