דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. קידוד עברית דוס ל windows vba

קידוד עברית דוס ל windows vba

מתוזמן נעוץ נעול הועבר ארכיון code613m
12 פוסטים 4 כותבים 965 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    ארכיטקט
    כתב ב נערך לאחרונה על ידי
    #3

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

    פורסם במקור בפורום CODE613 ב07/01/2014 16:17 (+02:00)

    אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

    תגובה 1 תגובה אחרונה
    0
    • רחמיםר מנותק
      רחמיםר מנותק
      רחמים מורחק
      כתב ב נערך לאחרונה על ידי
      #4

      אם המהדר לא מבין את הגיבריש אתה יכול להשתמש בפונקציות CHR או CHRW ולעשות מזה מערך.
      כדי לבדוק מה המספר של כל תו אתה יכול לרשום את כולם בוורד ועל כל אחד להפעיל את הפונקציה ASC שתאמר לך מה המספר של אותו תו, אח''כ תרשום את המספר שקיבלת כך :

      CHRW(המספר שהתקבל)
      

      פורסם במקור בפורום CODE613 ב07/01/2014 16:20 (+02:00)

      תגובה 1 תגובה אחרונה
      0
      • clickoneC מנותק
        clickoneC מנותק
        clickone
        כתב ב נערך לאחרונה על ידי
        #5

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

        בכל מקרה:

        'API שהופך קידוד ווינדוס לדוס - מתאים להמרה בשביל הקובץ מסב
        Private Declare Function CharToOemA Lib "user32.dll" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
        ' API הפוך. ממיר לווינדוס
        Private Declare Function OemToCharA Lib "user32.dll" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
        
        
        Public Function test()
        Dim t As String
        t = "ˆ—˜‰‰ƒ ˆ˜‹€˜™‰ "
        OemToCharA t, t
        'צריך להשתמש בStrReverse כדי להפוך את הסטרינג
        MsgBox StrReverse(t)
        End Function
        

        פורסם במקור בפורום CODE613 ב07/01/2014 16:43 (+02:00)

        אין טסט כמו פרודקשן.

        המייל שלי urivpn@gmail.com

        תגובה 1 תגובה אחרונה
        2
        • M מנותק
          M מנותק
          magicode
          כתב ב נערך לאחרונה על ידי
          #6

          זה קוד עתיק שכתבתי לפני 4 שנים בערך.

          'עברית זה קוד 1264
              Function ToUnicode(ByVal Str As String, ByVal CodeNumber As Int16) As String
                  Dim s As String = ""
                  For a As Integer = 1 To Len(Str)
                      Dim b As Integer = AscW(Mid(Str, a, 1))
                      If b >= &H80 Then 'And b <= &HFF
                          s &= ChrW(b + CodeNumber)
                      Else
                          s &= ChrW(b)
                      End If
                  Next
                  Return s
              End Function
          

          הרעיון זה להגדיל את הקוד באופן יחסי.

          פורסם במקור בפורום CODE613 ב07/01/2014 17:21 (+02:00)

          תגובה 1 תגובה אחרונה
          0
          • M מנותק
            M מנותק
            magicode
            כתב ב נערך לאחרונה על ידי
            #7

            תסתכל גם בפוזיצה 60 גודל 1 אמור להיות שם קוד של חברת האשראי.

            פורסם במקור בפורום CODE613 ב07/01/2014 17:26 (+02:00)

            תגובה 1 תגובה אחרונה
            0
            • א מנותק
              א מנותק
              ארכיטקט
              כתב ב נערך לאחרונה על ידי
              #8

              הקוד של מגיקוד מוליך אותי מגי'בריש לג'יבריש ב vba כמובן
              וזה מה שהוא נותן: ޶ߌ┩▜ߌ☒┠
              עכשיו גם האתר של ג'יבריש לא יודע איך לאכול את זה.

              הקוד הזה:

              Public Function UnicodeEncode(Str) As String
                  If IsNull(Str) Then Exit Function
                  Dim i, a
                  For i = 1 To Len(Str)
                          a = AscW(Mid(Str, i, 1))
                          If a > -1 And a < 127 Then
                              UnicodeEncode = UnicodeEncode & "%" & String(2 - Len(Hex(a)), "0") & Hex(a)
                          ElseIf a > -1 Or a < 65535 Then
                              UnicodeEncode = UnicodeEncode & "%u" & String(4 - Len(Hex(a)), "0") & Hex(a)
                          End If
                  Next
              End Function
              

              מחזיר את זה:
              %20%20%20%20%20%20%20%20%u02C6%u02DC%u2039%u20AC%u02DC%u2122%u2030

              שזה כמדומני משהו בסיגנון של json אלא אם כן אני מדבר שטויות.

              את הקוד של קליק וואן עוד לא ניסתי, יש לי קושי להשתמש ברפרנסים ופוקציות וינדווס. גם בגלל החילוק בין 32 ל 64 ביט.

              פורסם במקור בפורום CODE613 ב07/01/2014 18:12 (+02:00)

              אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

              תגובה 1 תגובה אחרונה
              0
              • clickoneC מנותק
                clickoneC מנותק
                clickone
                כתב ב נערך לאחרונה על ידי
                #9

                @ארכיטקט

                את הקוד של קליק וואן עוד לא ניסתי, יש לי קושי להשתמש ברפרנסים ופוקציות וינדווס. גם בגלל החילוק בין 32 ל 64 ביט.

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

                פורסם במקור בפורום CODE613 ב07/01/2014 22:06 (+02:00)

                אין טסט כמו פרודקשן.

                המייל שלי urivpn@gmail.com

                תגובה 1 תגובה אחרונה
                0
                • רחמיםר מנותק
                  רחמיםר מנותק
                  רחמים מורחק
                  כתב ב נערך לאחרונה על ידי
                  #10

                  אפשר גם להשתמש בדבר כזה בתוך הפונקציה או בכל מקום בקוד:

                  #If VBA7 Then
                   ' קוד המתאים ל 64 ביט
                      #Else
                     'קוד המתאים ל 32 ביט
                      #End If
                  

                  פורסם במקור בפורום CODE613 ב07/01/2014 22:26 (+02:00)

                  תגובה 1 תגובה אחרונה
                  0
                  • clickoneC מנותק
                    clickoneC מנותק
                    clickone
                    כתב ב נערך לאחרונה על ידי
                    #11

                    @ארכיטקט

                    את הקוד של קליק וואן עוד לא ניסתי, יש לי קושי להשתמש ברפרנסים ופוקציות וינדווס. גם בגלל החילוק בין 32 ל 64 ביט.

                    בנוסף, אם באמת אתה סוגר את האקסס גם ל64 ביט (או לא סוגר אותו בכלל :lol: :lol: :lol: ), יש לך דרך להשתמש בפונקציות API, אתה צריך רק להוסיף
                    הגדרה בהצהרה שזו פונקצייה בטוחה.
                    להגדרה קוראים: PtrSafe
                    ולפיכך ההצהרה תהיה:

                    Private Declare PtrSafe Function OemToCharA Lib "user32.dll" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
                    

                    כדי שלא תצטרך לנהל גירסאות 32 ו64 ביט, תוכל להשתמש בהצהרה בתחביר הבא:

                    #If VBA7 Then
                        Private Declare PtrSafe Function OemToCharA Lib "user32.dll" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
                    #Else
                        Private Declare Function OemToCharA Lib "user32.dll" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long
                    #End If
                    

                    כמובן שההצהרה יושבת בראש המודול. הסולמית בהתחלה מאפשרת לIF לרוץ אפילו שהוא לא בתוך פונקצייה.
                    מידע נוסף לגבי פונקציות API בסביבת אופי 64 ביט תוכל למצוא כאן

                    פורסם במקור בפורום CODE613 ב07/01/2014 22:32 (+02:00)

                    אין טסט כמו פרודקשן.

                    המייל שלי urivpn@gmail.com

                    תגובה 1 תגובה אחרונה
                    0
                    • א מנותק
                      א מנותק
                      ארכיטקט
                      כתב ב נערך לאחרונה על ידי
                      #12

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

                      פורסם במקור בפורום CODE613 ב04/11/2014 13:47 (+02:00)

                      אידיאולוגיות גדולות נכנסות למטחנה של עולם המעשה ויוצאות ממנו בפירורים (ווינסטון צ'רצ'יל, סתם סתם, זה שלי)

                      תגובה 1 תגובה אחרונה
                      1

                      בא תתחבר לדף היומי!
                      • התחברות

                      • אין לך חשבון עדיין? הרשמה

                      • התחברו או הירשמו כדי לחפש.
                      • פוסט ראשון
                        פוסט אחרון
                      0
                      • דף הבית
                      • קטגוריות
                      • פוסטים אחרונים
                      • משתמשים
                      • חיפוש
                      • חוקי הפורום