בולנט - דברים מיוחדים...     פרוטו - בניית אתרים

Israeli ASP Organization

ארגון ה-ASP הישראלי

מאמרים/דוגמאות קוד
קישורים
ספרות
חיפוש כללי:

חפש!
כלליHTMLASPASP.NETSQLמסדי נתוניםJavaScriptXML * XSLDHTML * CSSעיצוב וגרפיקהשרתיםComponentsפרסום ושיווקקידום אתריםקופירייטינגPHP
פרסומת
דף ראשי מדורים דרושים הרשמה למועדון אודותינו צור קשר
מיקום: מאמרים ודוגמאות קוד > כללי

יצירת בארקוד דינאמית (I25)

מאמר זה מדגים איך ליצור קודי ברקוד (Interleaved 2-of-5) I25 ,תוך שימוש ב-VBScript בצד השרת ללא שימוש במסד נתונים.
קודם כל אני מניח שאין לכם מושג על ברקודי I25 ואיך הוא מקודד. אז אין דאגה, אני אנסה להסביר פה הכל.
ברקוד Interleaved 2-of-5 הוא ברקוד שמקדד מספרים בלבד. יש לנו עשר תבניות כל אחת מיצגת ספרה אחת בלבד (0-9) בסכמת המספרים העשרונית שלנו.
הטבלה הבאה מדגימה את התבניות:

הגדרת ה-I25 אומרת שכל סימן חייב להתאחד עם אחר. כך שזוג ספרות יכול להיות מיוצג על ידי רק יחידה אחת בלבד של I25.
כפי שמוצג בטבלה שלמטה, הספרה הראשונה מקודדת ב"בארים" (הקוים שבברקוד) והספרה השניה מיוצגת בתור רווחים. שימו לב שהשם 2-מ-5 נובע מהעובדה שביחידת I25 יש חמש "בארים" (הקוים שבברקוד) שתיים מתוכם רחבים, חמש רווחים ושתיים מתוכם רווחים.

הברקוד שבטבלה אינו שלם כך שאינו יכול להיקרא.
ברקוד I25 שלם חייב שיהיה בו איזור "שקט" בהתחלה (בדרך כלל באורך של לפחות רבע אינץ ברוחב), סימן התחלתי, המספר שברצונך לקדד, סימן עצירה ושוב איזור שקט.
יש גם לשים לב שמכיון שהספרות מוחלפות, חובה שיהיה מספר שווה של ספרות בברקוד. ברקוד של "11" הוא קוד "חוקי" של I25 אך "111" אינו.

איך לקדד מספר לתבנית I25.

עם ידע זה כעת אוכל להדריך אותכם ביצירת פונקציה של VBScript שתיצור ברקודים אלו. קודם כל ניצור פונקציה שתקרא I25Encode(). פונקציה זו תקבל ארגומנט כמחרוזת שהיא הספרות שברצוננו לקודד ולהחליף. בכדי לבצע זאת ניצור מערך של עשרה אלמנטים. כל אלמנט יכיל את התבנית לסיפרה מסוימת.

Function I25Encode(StringNumber) Dim asPattern(), sSTART, sSTOP Redim asPattern(10) start and stop patterns can be found in fig. 3 sSTART = "NNNN" sSTOP = "WNN" these patterns can be found in fig. 1 asPattern(0) = "NNWWN" asPattern(1) = "WNNNW" asPattern(2) = "NWNNW" asPattern(3) = "WWNNN" asPattern(4) = "NNWNW" asPattern(5) = "WNWNN" asPattern(6) = "NWWNN" asPattern(7) = "NNNWW" asPattern(8) = "WNNWN" asPattern(9) = "NWNWN"

כעת נבצע כמה ואלידאציות לארגומנטים המתקבלים. שימו לב שמספר הספרות בארגומנט חייב להיות שווה; כל הספרות בארגומנט חייבות להיות בין 0 ל-9 (בין 48 ל-57 לפי טבלת ASCII) כך ש:

If (Len(StringNumber) Mod 2) <> 0 Then the number of characters in the argument must be odd I25Encode = "" Exit Function End If If Not IsNumeric(StringNumber) Then argument must be numeric I25Encode = "" Exit Function Else If (InStr(StringNumber, ".") <> 0) Or _ (InStr(StringNumber, ",") <> 0) Then argument is numeric but contains invalid characters to us I25Encode = "" Exit Function End If End If

כעת לאחר שביצענו את האישרור (הרוטינה היא יותר אפקטיבית אם חלק האישרור ימוקם בין הצהרות ה-Dim וה-Redim עשה זאת אם רצונך בכך.) כעת עלינו לקרוא את התווים בארגומנט שהתקבל לקידוד ולהחליפו בקוד הבא:

Dim sEncodedSTR, sUnit Dim iCharRead, sDigit1, sDigit2, i sEncodedSTR = "" For iCharRead = 1 To Len(StringNumber) Step 2 sDigit1 = asPattern( Asc( _ Mid( StringNumber, iCharRead, 1 ) ) - 48 ) sDigit2 = asPattern( Asc( Mid( _ StringNumber, iCharRead + 1, 1 ) ) - 48 ) sUnit = "" For i = 1 To 5 sUnit = sUnit & Mid( sDigit1, i, 1 ) & _ Mid( sDigit2, i, 1 ) Next sEncodedSTR = sEncodedSTR & sUnit Next

כל הכבוד! כעת יש בידינו את התוצאות המקודדות והמוחלפות. כעת יש רק להוסיף את תבניות ההתחלה והעצירה ולהחזיר אותם

I25Encode = sSTART & sEncodedSTR & sSTOP End Function

עד עכשיו ראינו איך יוצרים פונקצית I25Encode(). כעת עלינו לכתוב את קוד הASP אשר ידע להציג את הנתונים המספרים בצורת ברקוד.

יצירת גרפיקה מתאימה.

כעת עלינו ליצור גרפיקה מתאימה (GIF), אחד ל"בר" הצר (שחור, 2 פיקסלים ברוחב), לרווח הצר (לבן, 2 פיקסלים ברוחב), אחד ל"בר" הרחב (שחור 4 פיקסלים ברוחב) ואחד לרווח הרחב (לבן, 4 פיקסלים ברוחב), כל גרפיקות אילו צריכות להיות יותר גבוהות מ-39 פיקסלים.

שם הקובץ תאור תמונה
nb.gif באר צר nb.gif
ns.gif רווח צר ns.gif
wb.gif באר רחב wb.gif
ws.gif רווח רחב ws.gif

גרפיקות אילו ישמשו ליצירת דף ה-HTML שבו ניצור את הברקוד מהתמונות.

כתיבת הקוד הסופי.

כעת נכתוב את הקוד הסופי. קוד זה יכיל את המחרוזת המוחזרת מפונקצית I25Encode() ותיצור את דף ה-HTML עם הברקוד תוך שימוש בתמונות שיצרנו. (כמובן יש לצרף את פונקצית I25Encode() לקוד שלמטה או על ידי גזירה והדבקה לתוך הקובץ או על ידי שימוש ב-SSI)

<HTML> <HEAD><TITLE>Interleaved 2-of-5 Example</TITLE></HEAD> <% Ensure that the I25Encode function is in this file... (For this example it has been removed for brevity %> <BODY BGCOLOR=#FFFFFF> <P><FONT FACE=Verdana, Arial SIZE=1> Enter the number to be encoded as Interleaved 2-of-5 Specification. </FONT></P> <FORM NAME=I25 ACTION=i25.asp METHOD=post> <INPUT TYPE=text NAME=txtNUM> <INPUT TYPE=hidden NAME=hidFORM VALUE=fromFORM> <INPUT TYPE=submit> </FORM> <P>&nbsp;</P> <P><FONT FACE=Verdana, Arial SIZE=1> <% If Request("hidFORM") = "fromFORM" Then sMyI25 = I25Encode(Request("txtNUM")) If (sMyI25 = "") Then Response.Write """" & Request("txtNUM") & _ """ is invalid. Try another number." Else Dim iPos, sGIF, bBAR bBAR = True For iPos = 1 To Len(sMyI25) If (bBar) Then Bar sGIF = Mid(sMyI25, iPos, 1) & "b.gif" Else Space sGIF = Mid(sMyI25, iPos, 1) & "s.gif" End If Response.Write "<IMG SRC=" & sGIF & ">" bBar = Not bBar Next End if End If %> </FONT></P> </BODY> </HTML>

קבצים מצורפים
bars.zipקובץ מכווץ של כל תמונות הבארים בהם יש להשתמש ליצירת ברקוד
I25Encode_asp.txtהקוד המלא של הפונקציה I25Encode()


         

מחבר: אלעד רחמילוביץרמת קושי: 3  ||  עוד לא דורגכל הזכויות שמורות ל-IAO ©

חנות לסטלן  |   מתכונים  |   חגי ישראל  |   פורטל משחקים  |   חנויות מחשבים ו-ציוד הקפי  |   מגזין מסטול לסטלן המצוי  |   קליפרים  |   גידול צמחים פרחים  |   ספא פינוק מושלם