¤å³¹½s¸¹: 216399 - ¤W¦¸®Õ¾\: 2007¦~7¤ë20¤é - ª©¦¸: 2.5

¦p¦ó±N ASCII ©M EBCDIC ¦r¤¸¥N½X¤§¶¡Âà´«

¨t²Î´£¥Ü¥»¤å¾A¥Î©ó±z¨Ï¥Îªº§@·~¨t²Î¤§¥~ªº§@·~¨t²Î¡C»P±z¤£¬ÛÃöªº¤å³¹¤º®e¤w°±¥Î¡C

¦b¦¹­¶¤¤

¥þ³¡®i¶} | ¥þ³¡ºPÅ|

µ²½×

³o¥÷¤å¥ó¥]§t ASCII ªº°Q½× EBCDIC Âà´«°ÝÃD¡B ÂàĶªí®æ©Mµ{¦¡½X¨Ó±q ASCII Âàͦ¨ EBCDIC¡A¤Ï¤§¥çµM¡C

¨ä¥L¬ÛÃö¸ê°T

¤å¦rÀɮתº¸ê®Æ±q¤j«¬¥D¾÷¹q¸£¥i¯à·|½s½X EBCDIC ¦r¤¸¨t²Î¤¤¡C³o¤£¬Oª½±µ¥i¥Ñ¨Ï¥Î ASCII ¦r¤¸½s½X¤è¦¡Åª¨ú©M¼g¤J¤å¦rÀɮ׮ɨt²Îªº VBA¡C

¥»¤å´£¨Ñ½Ķ¨âºØ¦r¤¸½s½X¤è¦¡°t¸m©M¤@¨Ç Helper ¨ç¦¡¨Ó«Ø¸mÂàĶªí®æ¤§¶¡ªº¥\¯à¡C

Ãö©ó¦r¤¸¶°ªº³Æ§Ñ½Z

  • VBA ¤ä´© UNICODE §Y ASCII ªº¶W¶°¡C¥u¦r¤¸¡A¸¨¤J ASCII ½d³ò (±N·|ÂàĶ Chr(0) Chr(255))¡C
  • ´£¨ÑªºÂàĶªí®æ¥i¥Î¨Ó½Ķªº¬ü¦¡­^¤å EBCDIC µ{¦¡½X­¶ (CECP 037) ¦r¤¸¶°¤¤ªº [¤å¦r]¡A¥H ISO/ANSI ASCII ¦r¤¸¶°¦r¦ê¨Ã¦A¦^¨Ó¡C
  • ISO/ANSI ASCII ¦r¤¸¶°¥Ñ Windows¡A¦ý¥¦¤£¬O»P IBM ­Ó¤H¹q¸£ OEM ASCII] ¦r¤¸¶°¬Û¦PÁöµM¸û§Cªº 128 ­Ó¦r¤¸¬O§¹¥þ¬Û¦P¡C
  • ¦]¬°¦³ªº EBCDIC ©M ASCII ¦r¤¸²Õ¼Æ­ÓÅܲ§¡A¯S§O¬O°w¹ï°ê»Ú¨Ï¥ÎÀH·N·s¼W¦Û­qªºÂàĶªí®æ¡C
  • ³o¸Ì¦³¤@¨Ç­È±oª`·Nªº®t²§¦b ASCII EBCDIC ÂàĶ¥Í©RÂI¼Æ¡B IBM (·í°µ¤å¥ó¤¤´£¨Ñ IBM 3780 ¤â¥U¤¤)¡A¤Î AT&T¡G

    ºPÅ|¦¹ªí®æ®i¶}¦¹ªí®æ
    ASCII¤Ç EBCDICIBM EBCDICAT&T EBCDIC
    !214f5a5a
    [5b]4a5b]¼s§i
    ]5d5a5dBD
    ^5e5f5e5f

    ¥D­n¤£¦P¦b©ó¸Ó 5A ¥Nªí"!"IBM ¤Î AT&T¡A¦ý"]"HP ¨ì¡C¨ä¥L¥¼¦C¥Xªº®t²§·|¸Ñ¨M¥»¨­½d³ò¤ºªº«D¦C¦L¦r¤¸¡C
¦b¨ç¦¡¬O¡G

ºPÅ|¦¹ªí®æ®i¶}¦¹ªí®æ
¨ç¦¡´y­z
½Ķ±N¦r¦ê±q¤@­Ó¦r¤¸½s½X¤è¦¡°t¸mÂà´«¨ì¥t¤@­Ó¡C »Ý­nÂàĶªí®æ°µ¬°¨ä¤¤¤@­Ó¤Þ¼Æ¡C
ASCII_To_EBCDIC_Table¶Ç¦^¦r¦ê¡A¨ä¤¤¥]§tÂàĶªí¡A¨Ó±N¬° ASCII ¦r¦êÂà´«¦¨¤@­Ó EBCDIC ¦r¦ê¡C
EBCDIC_To_ASCII_Table¶Ç¦^¦r¦ê¡A¨ä¤¤¥]§tÂàĶªí¡A±N¤@­Ó EBCDIC ¦r¦êÂà´«¦¨ ASCII ¦r¦ê¡C
HexToStr¥¦­Ì¥Nªí Helper ¨ç¦¡±N¤Q¤»¶i¦ì¼Æ¦rªº¦r¦êÂà´«¦¨¹ê»Úªº¦r¤¸¡C

¨ç¦¡¨Ó·½¬O¡A¦p¤U©Ò¥Ü¡Cµ{¦¡½X¥i¥H¶K¨ì¥ô¦ó VBA ¼Ò²Õ¡G
Function Translate(ByVal InText As String, xlatTable As String) As String
'
' Uses a translation table to map InText from one character set to another.
'
Dim Temp As String, I As Long  Temp = Space$(Len(InText))
  For I = 1 To Len(InText)
    Mid$(Temp, I, 1) = Mid$(xlatTable, Asc(Mid$(InText, I, 1)) + 1, 1)  Next I
  Translate = Temp
End Function

Function ASCII_To_EBCDIC_Table() As String
'
' Returns the following table as a string for use by the Translate
' function to translate an EBCDIC string to an ASCII-ISO/ANSI string.
'
' 00 01 02 03 37 2D 2E 2F 16 05 25 0B 0C 0D 0E 0F
' 10 11 12 13 3C 3D 32 26 18 19 3F 27 1C 1D 1E 1F
' 40 5A 7F 7B 5B 6C 50 7D 4D 5D 5C 4E 6B 60 4B 61
' F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 7A 5E 4C 7E 6E 6F
' 7C C1 C2 C3 C4 C5 C6 C7 C8 C9 D1 D2 D3 D4 D5 D6
' D7 D8 D9 E2 E3 E4 E5 E6 E7 E8 E9 AD E0 BD 5F 6D
' 79 81 82 83 84 85 86 87 88 89 91 92 93 94 95 96
' 97 98 99 A2 A3 A4 A5 A6 A7 A8 A9 C0 4F D0 A1 07
' 20 21 22 23 24 15 06 17 28 29 2A 2B 2C 09 0A 1B
' 30 31 1A 33 34 35 36 08 38 39 3A 3B 04 14 3E E1
' 41 42 43 44 45 46 47 48 49 51 52 53 54 55 56 57
' 58 59 62 63 64 65 66 67 68 69 70 71 72 73 74 75
' 76 77 78 80 8A 8B 8C 8D 8E 8F 90 9A 9B 9C 9D 9E
' 9F A0 AA AB AC 4A AE AF B0 B1 B2 B3 B4 B5 B6 B7
' B8 B9 BA BB BC 6A BE BF CA CB CC CD CE CF DA dB
' DC DD DE DF EA EB EC ED EE EF FA FB FC FD FE FF
'
  ASCII_To_EBCDIC_Table = _
  HexToStr("00010203372D2E2F1605250B0C0D0E0F101112133C3D322618193F271C1D1E1F") & _
  HexToStr("405A7F7B5B6C507D4D5D5C4E6B604B61F0F1F2F3F4F5F6F7F8F97A5E4C7E6E6F") & _
  HexToStr("7CC1C2C3C4C5C6C7C8C9D1D2D3D4D5D6D7D8D9E2E3E4E5E6E7E8E9ADE0BD5F6D") & _
  HexToStr("79818283848586878889919293949596979899A2A3A4A5A6A7A8A9C04FD0A107") & _
  HexToStr("202122232415061728292A2B2C090A1B30311A333435360838393A3B04143EE1") & _
  HexToStr("4142434445464748495152535455565758596263646566676869707172737475") & _
  HexToStr("767778808A8B8C8D8E8F909A9B9C9D9E9FA0AAABAC4AAEAFB0B1B2B3B4B5B6B7") & _
  HexToStr("B8B9BABBBC6ABEBFCACBCCCDCECFDADBDCDDDEDFEAEBECEDEEEFFAFBFCFDFEFF")
End Function

Function EBCDIC_To_ASCII_Table() As String
'
' Returns the following table as a string for use by the Translate
' function to traslate an EBCDIC string to an ASCII-ISO/ANSI string.
'
' 00 01 02 03 9C 09 86 7F 97 8D 8E 0B 0C 0D 0E 0F    ....?.?-??.....
' 10 11 12 13 9D 85 08 87 18 19 92 8F 1C 1D 1E 1F    ....?....?..'?....
' 80 81 82 83 84 0A 17 1B 88 89 8A 8B 8C 05 06 07    £á???"...?????...
' 90 91 16 93 94 95 96 04 98 99 9A 9B 14 15 9E 1A    ?'.""?-.?(tm)??..?.
' 20 A0 A1 A2 A3 A4 A5 A6 A7 A8 D5 2E 3C 28 2B 7C    . ??????¡±...<(+|
' 26 A9 AA AB AC AD AE AF B0 B1 21 24 2A 29 3B 5E    &(c)?"??(r)¡Â¢X¡Ó!$*);^
' 2D 2F B2 B3 B4 B5 B6 B7 B8 B9 E5 2C 25 5F 3E 3F    -/?????¡P??.,%_>?
' BA BB BC BD BE BF C0 C1 C2 60 3A 23 40 27 3D 22    ?"1/41/23/4?...`:#@'="
' C3 61 62 63 64 65 66 67 68 69 C4 C5 C6 C7 C8 C9    .abcdefghi......
' CA 6A 6B 6C 6D 6E 6F 70 71 72 CB CC CD CE CF D0    .jklmnopqr......
' D1 7E 73 74 75 76 77 78 79 7A D2 D3 D4 5B D6 D7    .~stuvwxyz...[..
' D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 5D E6 E7    .............]..
' 7B 41 42 43 44 45 46 47 48 49 E8 E9 EA EB EC ED    {ABCDEFGHI......
' 7D 4A 4B 4C 4D 4E 4F 50 51 52 EE EF F0 F1 F2 F3    }JKLMNOPQR......
' 5C 9F 53 54 55 56 57 58 59 5A F4 F5 F6 F7 F8 F9    \.STUVWXYZ......
' 30 31 32 33 34 35 36 37 38 39 FA FB FC FD FE FF    0123456789......
'
  EBCDIC_To_ASCII_Table = _
  HexToStr("000102039C09867F978D8E0B0C0D0E0F101112139D8508871819928F1C1D1E1F") & _
  HexToStr("80818283840A171B88898A8B8C050607909116939495960498999A9B14159E1A") & _
  HexToStr("20A0A1A2A3A4A5A6A7A8D52E3C282B7C26A9AAABACADAEAFB0B121242A293B5E") & _
  HexToStr("2D2FB2B3B4B5B6B7B8B9E52C255F3E3FBABBBCBDBEBFC0C1C2603A2340273D22") & _
  HexToStr("C3616263646566676869C4C5C6C7C8C9CA6A6B6C6D6E6F707172CBCCCDCECFD0") & _
  HexToStr("D17E737475767778797AD2D3D45BD6D7D8D9DADBDCDDDEDFE0E1E2E3E45DE6E7") & _
  HexToStr("7B414243444546474849E8E9EAEBECED7D4A4B4C4D4E4F505152EEEFF0F1F2F3") & _
  HexToStr("5C9F535455565758595AF4F5F6F7F8F930313233343536373839FAFBFCFDFEFF")
End Function

Function HexToStr(ByVal HexStr As String) As String
Dim Temp As String, I As Long
  Temp = Space$(Len(HexStr) \ 2)
  For I = 1 To Len(HexStr) \ 2
    Mid$(Temp, I, 1) = Chr$(Val("&H" & Mid$(HexStr, I * 2 - 1, 2)))
  Next I
  HexToStr = Temp
End Function
				

¨Ï¥Î¤è¦¡¡G
  sEBCDIC = Input(#1, 50)     ' input 50 characters
  sASCII = Translate(sEBCDIC, ASCII_To_EBCDIC_Table())
				
©Î­«½Æ©I¥sÂàͱ`¦¡¡A¥i¥H§Ö¨úÂàĶªí®æ¦b String ÅܼÆ:
  xlat = ASCII_To_EBCDIC_Table()
  sASCII = Translate(sEBCDIC, xlat)
				

³o½g¤å³¹¤¤ªº¸ê°T¾A¥Î©ó:
  • Microsoft Visual Basic 6.0 Learning Edition
  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Visual Basic Enterprise Edition for Windows 6.0
  • Microsoft Visual Basic Control Creation Edition
  • Microsoft Visual Basic 5.0 Learning Edition
  • Microsoft Visual Basic 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
  • Microsoft Visual Basic 4.0 Standard Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 Professional Edition
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
  • Microsoft Visual Basic 4.0 32-Bit Enterprise Edition
  • Microsoft Visual Basic for Applications 5.0
  • Microsoft Visual Basic for Applications 6.0
ÃöÁä¦r¡G?
kbmt kbhowto kbsample kbstring KB216399 KbMtzh
¾÷¾¹Â½Ä¶¾÷¾¹Â½Ä¶
­«­n¡G¥»¤å¬O¥H Microsoft ¾÷¾¹Â½Ä¶³nÅé½Ķ¦Ó¦¨¡A¦Ó«D¨Ï¥Î¤H¤u½Ķ¦Ó¦¨¡CMicrosoft ¦P®É´£¨Ñ¨Ï¥ÎªÌ¤H¤u½Ķ¤Î¾÷¾¹Â½Ä¶¨â­Óª©¥»ªº¤å³¹¡AÅý¨Ï¥ÎªÌ¥i¥H¨Ì¨ä¨Ï¥Î»y¨¥¨Ï¥Îª¾ÃÑ®w¤¤ªº©Ò¦³¤å³¹¡C¦ý¬O¡A¾÷¾¹Â½Ä¶ªº¤å³¹¥i¯à¤£ºÉ§¹¬ü¡C³o¨Ç¤å³¹¤¤¤]¥i¯à¥X²{«÷¦r¡B»y·N©Î¤åªk¤Wªº¿ù»~¡A´N¹³¥~°ê¤H¦b¨Ï¥Î¥»°ê»y¨¥®É¥i¯àµo¥Íªº¿ù»~¡CMicrosoft ¤£¬°¤º®eªºÂ½Ä¶¿ù»~©Î«È¤á¹ï¸Ó¤º®eªº¨Ï¥Î©Ò²£¥Íªº¥ô¦ó¿ù»~©Î·l®`­t³d¡CMicrosoft¤]¦P®É±N¤£Â_¦a´N¾÷¾¹Â½Ä¶³nÅé¶i¦æ§ó·s¡C
«ö¤@¤U³o¸Ì¬d¬Ý¦¹¤å³¹ªº­^¤åª©¥»¡G216399? (http://support.microsoft.com/kb/216399/en-us/ )
Microsoft¤Î(©Î)¨ä¨ÑÀ³°Ó¤£´N¥ô¦ó¦b¥»¦øªA¾¹¤Wµoªíªº¤å¦r¸ê®Æ¤Î¨ä¬ÛÃö¹Ïªí¸ê°Tªº«ê·í©Ê§@¥ô¦ó©Ó¿Õ¡C©Ò¦³¤å¦r¸ê®Æ¤Î¨ä¬ÛÃö¹Ïªí§¡¥H¡u²{ª¬¡v¨ÑÀ³¡A¤£­t¥ô¦ó¾á«O³d¥ô¡CMicrosoft¤Î(©Î)¨ä¨ÑÀ³°ÓÂÔ¦¹Án©ú¡A¤£­t¥ô¦ó¹ï»P¦¹¸ê°T¦³Ãö¤§¾á«O³d¥ô¡A¥]¬AÃö©ó¾A°â©Ê¡B¾A¥Î©ó¬Y¤@¯S©w¥Î³~¡BÅv§Q©Î¤£«IÅvªº©ú¥Ü©ÎÀq¥Ü¾á«O³d¥ô¡CMicrosoft¤Î(©Î)¨ä¨ÑÀ³°ÓµL½×¦p¦ó¤£¹ï¦]©Î»P¨Ï¥Î¥»¦øªA¾¹¤W¸ê°T©Î»P¸ê°Tªº¹ê¦æ¦³Ãö¦Ó¤Þ°_ªº«´¬ù¡B¹L¥¢©Î¨ä¥L«IÅv¦æ¬°¤§¶D³^¤¤ªº¯S§Oªº¡B¶¡±µªº¡B­l¥Í©Êªº·l®`©Î¥ô¦ó¦]¨Ï¥Î¦Ó³à¥¢©Ò¾É­Pªº¤§·l®`¡B¸ê®Æ©Î§Q¼í­t¥ô¦ó³d¥ô¡C