JIS编码转换(DM格式与JIS)

这篇博客介绍了两个函数,JisToStr 和 StrToJis,用于将字符串在DM格式与JIS编码之间进行转换。通过ADODB.Stream对象处理二进制和文本数据,实现了从含有特殊字符的字符串到JIS编码的转换,以及从JIS编码回转到原始字符串的过程。涉及到的编码格式为'iso-2022-jp'。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
Function JisToStr(ByVal Str As String, Nbr As Integer) As String
On Error Resume Next
Dim Stm As ADODB.Stream
Dim StrByt() As Byte
Dim n01 As Integer
Dim m01 As Integer
Dim Asr01Str As String
Set Stm = New ADODB.Stream
Asr01Str = ""
m01 = 0
For n01 = 1 To Nbr Step 2
If Mid(Str, n01, 1) = "#" Then
Asr01Str = Asr01Str & Mid(Str, n01 + 1, 1)
ElseIf Mid(Str, n01, 1) = "" Then
Exit For
Else
ReDim StrByt(7)
StrByt(0) = 27
StrByt(1) = 36
StrByt(2) = 66
StrByt(3) = Asc(Mid(Str, n01, 1))
StrByt(4) = Asc(Mid(Str, n01 + 1, 1))
StrByt(5) = 27
StrByt(6) = 40
StrByt(7) = 66
If Err.Number = 3705 Then
Stm.Close
End If
Stm.Open
Stm.Type = adTypeBinary
Stm.Write StrByt
Stm.Position = 0
Stm.Type = adTypeText
Stm.Charset = "iso-2022-jp" '僶僀僩僨乕僞偺暥帤僐乕僪傪巜?
Asr01Str = Asr01Str & Stm.ReadText()   'String宆偺僨乕僞偲偟偰庢傝弌?
Stm.Close
End If
Next n01
Set Stm = Nothing
JisToStr = Asr01Str
End Function
'====================================
Function StrToJis(ByVal Str As String) As String
On Error Resume Next
Dim Stm As ADODB.Stream
Dim StrByt() As Byte
Dim Str01Nbr As Integer
Dim n01 As Integer
Dim m01 As Integer
Dim Asr01Str As String
Dim Asr02Str As String
Dim A As Byte
Dim C As Byte
'JIS僐乕僪偺僗僩儕乕儉傪嶌?
Set Stm = New ADODB.Stream
Str01Nbr = Len(Str)
Asr01Str = ""
Asr02Str = ""
For n01 = 1 To Str01Nbr
'暥帤楍傪奿擺
If Err.Number = 3705 Then
Stm.Close
End If
Stm.Open
Stm.Type = adTypeText
Stm.Charset = "iso-2022-jp"        '"iso-2022-jp" '偁傞偄偼"Shift_JIS"傗"EUC-JP"偲?
Stm.WriteText Mid(Str, n01, 1)
'JIS僐乕僪偺僶僀僫儕偲偟偰庢?
Stm.Position = 0
Stm.Type = adTypeBinary
StrByt = Stm.Read()
m01 = UBound(StrByt)
A = StrByt(0)
C = StrByt(1)
If UBound(StrByt) = 0 Then
Asr01Str = Asr01Str & "#" & String(1, StrByt(0))
ElseIf m01 = 1 Then
A = StrByt(0)
C = StrByt(1)
Asr01Str = Asr01Str & String(1, StrByt(1))
Else
Asr02Str = StrByt(0) & StrByt(1) & StrByt(2) & StrByt(3) & StrByt(4) & StrByt(5) & StrByt(6) & StrByt(7)
Asr01Str = Asr01Str & String(1, StrByt(3)) & String(1, StrByt(4))
End If
Stm.Close
Next n01
Set Stm = Nothing
StrToJis = Asr01Str
End Function
工业设备名称用power query 将table1 short text 列如下内容进行文本分类,请提供完整power query 代码 XA-492 KSS尼龙扎带 4*250 固定支架 SMBE1-1450T/Y00199 拉杆式位移传感器 GEFRAN: LT-M-0225-S-XL0202 编码器线 J3ENCBL21.5M 集中下件皮带线 尾辊#12 60*600 #油三RTO保养 #油三循环风冷热盘管清洁 #调科目-ABB #调科目-天盟保洁 #进项转出 -..油三空压机年度保养 10号机安全门限位接触器备件 施耐德LC1D09BDC24V 10号机开关电源更换 备件 明伟S-350-24 24V 14.6A 10注塑机伺服电机联轴器改造(更换挡圈) 10转8快换接头SPG10-8 11月油二设备清洁服务费 12月份油二设备清洁服务费 13号机升降机气缸备件SMC气缸 MDBB80-300Z-M9P 13号机升降机气缸密封圈备件 CA2-80Z-PS 14#拉杆油缸密封件维修包 LGH650M-GC 14号注塑机联轴器总成更换 15号注塑机触摸屏更换维修 18#注塑机开合模4WEH25U7X-6HG24N9EK4(400076157) 18#注塑机调模阀 4WE6E7X-HG24N9K4(400076191) 18号机阿尔发机械手A轴减速机1:100 18号注塑机顶出机构维修 18号艾尔发机械手Z轴驱动 101300548-A000 19号机开模电子尺备件GEFRAN PK-M-1750-XL0327 19号机移模油缸 O型密封圈 JIS B2401-NBR70-G75/ 74.4 19号机移模油缸 O型密封圈 JIS B2401-NBR90-G115-114 19号机移模油缸 O型密封圈 JIS B2401-NBR90-G135/ 134 19号机移模油缸 双向活塞封 司达行/ TPM551452 -1-D140-D1 19号机移模油缸 尘封 司达行/ H839-4631800-D100-D110 19号机移模油缸 拉杆封 H605-4312600/ Φ100×Φ115×11 1号机激光切割电源坏更换备件 明纬RSP-1000-48 21A 2024年1月油二设备清洁服务费 2024年2月油二设备清洁服务费 2024年3月油二设备清洁服务费 21#&21#注塑机压力异常维修 22#机背压比例阀 Rexroth:DBETBEX-10/80G24K31A1M 22号机VS20调试工艺支持 22号机不能开机故障检修 22号机射台油管定制 22号机恩格尔压力传感器备件 KS-T-1-Z-B410-H-V-6310222 22号机输送带滚轴加工 22号注塑机背压异常维修 23号机开合模快速油缸密封件 LGH450M-GC 23号机开合模电子尺 AOGESON:TLH-1500 23号机机械手急停开关备件 泰志达急停开关含线 23号机艾尔发机械手减速机0.1KW1:100WPU-5-100-SNH 24V电源 304不锈钢卫生接头卡箍卡盘 50.5 4号机械手Z轴从动手臂梁 伟立:SCD20121506-17/A0 4号机械手Z轴支线导轨 THK:SSR15XW2UU+1000LY-II 4转4快换接头SPU-4 5号机PLC通讯模块 贝加莱:DM465 5号机双合金螺杆三件套 D70 5号机大修后更换液压油46#抗磨液压油 安美 5号机尼佳斯机械手手控器检修 5号机接口模块 贝加莱:7AF101.7 5号机模拟量模块 贝加莱:7AT664.70 6号机更换备件热电偶 1.5米 6号机更换备件热电偶 2米 6号机更换备件热电偶3米 6号注塑机机筒取断丝&螺纹修复 6转4快换接头SPG6-4 6转6快换接头SPU-6 7号机拖链拉坏采购更换备件igus拖链SC105 7号机拖链拉坏采购更换备件igus拖链接头SC105 8号海天机加热进线接触器坏申请备件 接触器 ABB AX40-30-10 8毫米三通快速接头 SPE-8 9号机主板检修 9号机海天450T主板备件 AK-580 A2LL EOL测试线束 ABB-1 ABB换色阀3HNA012770-001 ABB-1 AAB换色阀 3HNA012770-001 ABB-7 ABB隔膜阀 3HNA021676-001 ABB不锈钢压力传感器底座3HNA028511-001 ABB压力传感器 HNA- ABB塑料压力传感器底座 3HNA028511 AGV小车 伺服电机 海康:102800327 AGV小车 驱动器 海康:202900542 AGV小车防撞条 带胶密封条SD-51 AGV小车驱动组件 海康:202900561 AGV服务器调度服务
03-26
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值