vb

Const strFileStartName As String = "僺僢僉儞僌PL嶌嬈奐巒"
Const strFileEndName As String = "僺僢僉儞僌PL嶌嬈姰椆"
Const strFileDumyEndName As String = "僟儈乕儘働乕僔儑儞擖屔姰椆"
Const strFilePartEndName As String = "僺僢僉儞僌PL嶌嬈姰椆乮堦晹乯"
Const strFileNoDataEndName As String = "僺僢僉儞僌PL嶌嬈姰椆乮柧嵶側偟乯"


Const strSheetNameOutPutFileType As String = "OutPutFileType"


Const strUser As String = "DEFILER"


Const strFilePaht As String = "D:\ReportDefines\"


Sub main()


    Dim strOutPutFileName As String
    Dim strType As String
    Dim iLen As Integer
    '''''''''''''''''''''''''''''''''''''''''''''''''''
    ' 僼傽僀儖撉傒崬傓
    '''''''''''''''''''''''''''''''''''''''''''''''''''
    Dim theSh As Variant
    theSh = Application.GetOpenFilename("Csv Files (*.csv), *.csv", , , , True)
    If VarType(theSh) = vbBoolean Then
        Exit Sub
    Else
        For i = 1 To UBound(theSh)
            Call makeFiles(CStr(theSh(i)))
'            MsgBox theSh(i)
        Next
    End If
    
End Sub




Function makeFiles(filePath As String)
    
    Dim fileName As String
    Dim tempV As Variant
    Dim tempStr As String
    
    tempV = Split(filePath, "\")
    
    fileName = tempV(UBound(tempV))
    fileName = Left(fileName, Len(fileName) - 4)


    Dim strLine As String
    Open filePath For Input As #2
        Line Input #2, strLine
    Close #2
Debug.Print strLine
    tempV = Split(strLine, ",")
   
    tempStr = tempV(2)
Debug.Print tempStr
    
    tempStr = VBA.Replace(tempStr, """", "")
   
    Dim str揱昜擭寧擔 As String
    Dim str僺僢僉儞僌廤栺No_僌儖乕僺儞僌NO As String
    Dim str僺僢僉儞僌廤栺No_捠斣 As String
    
    Dim strStartTime As String
    
    str揱昜擭寧擔 = Mid(tempStr, 7, 8)
    str僺僢僉儞僌廤栺No_僌儖乕僺儞僌NO = Mid(tempStr, 15, 7)
    str僺僢僉儞僌廤栺No_捠斣 = Mid(tempStr, 23, 2)
    strStartTime = Format(Now(), "YYYYMMDDHHMMSS")
    
    Dim strOutput As String
    '''''''''''''''''''''''''''''''''''''''''''''''''''
    ' 僺僢僉儞僌PL嶌嬈奐巒 僼傽僀儖嶌惉
    '''''''''''''''''''''''''''''''''''''''''''''''''''
    strOutPutFileName = ThisWorkbook.Path & "\" & fileName & strFileStartName & ".txt"
    Open strOutPutFileName For Output As #1
    
    strOutput = ""
    
    '揹暥ID
    strOutput = strOutput & "PS"
    '揱昜擭寧擔
    strOutput = strOutput & str揱昜擭寧擔
    '僺僢僉儞僌廤栺俶倧_僌儖乕僺儞僌NO
    strOutput = strOutput & str僺僢僉儞僌廤栺No_僌儖乕僺儞僌NO
    '僺僢僉儞僌廤栺俶倧_巬斣
    strOutput = strOutput & "0"
    '僺僢僉儞僌廤栺俶倧_捠斣
    strOutput = strOutput & str僺僢僉儞僌廤栺No_捠斣
    '嶌嬈幰僐乕僪
    strOutput = strOutput & strUser
    '嶌嬈奐巒擔帪
    strOutput = strOutput & strStartTime


    
    Print #1, "PS" & str揱昜擭寧擔 & str僺僢僉儞僌廤栺No_僌儖乕僺儞僌NO & "0" & str僺僢僉儞僌廤栺No_捠斣 _
            & strUser & strStartTime
    Close #1
    
    '''''''''''''''''''''''''''''''''''''''''''''''''''
    ' 僟儈乕儘働乕僔儑儞擖屔姰椆 僼傽僀儖嶌惉
    '''''''''''''''''''''''''''''''''''''''''''''''''''
    strOutPutFileName = ThisWorkbook.Path & "\" & fileName & strFileDumyEndName & ".txt"
    Open strOutPutFileName For Output As #1


    strOutput = ""
    
    '揹暥ID
    strOutput = strOutput & "WA"
    '嶌嬈ID
    strOutput = strOutput & doAddValueType("", "X", 4)
    '嶌嬈幰僐乕僪
    strOutput = strOutput & strUser
    '嶌嬈奐巒擔帪
    strOutput = strOutput & strStartTime
    '嶌嬈姰椆擔帪
    strOutput = strOutput & getEndTime()
    '媥宔帪娫(椵愊)
    strOutput = strOutput & doAddValueType("1", "9", 3)
    
    ''''僶乕僐乕僪忣曬
    '揱昜擭寧擔
    strOutput = strOutput & str揱昜擭寧擔
    '僺僢僉儞僌廤栺俶倧_僌儖乕僺儞僌NO
    strOutput = strOutput & str僺僢僉儞僌廤栺No_僌儖乕僺儞僌NO
    '僺僢僉儞僌廤栺俶倧_捠斣
    strOutput = strOutput & str僺僢僉儞僌廤栺No_捠斣
    
    '俥倝倢倢倕倰
    strOutput = strOutput & doAddValueType("", "X", 22)
    
    Print #1, strOutput
    Close #1
    
    
    '''''''''''''''''''''''''''''''''''''''''''''''''''
    ' 僺僢僉儞僌PL嶌嬈姰椆 僼傽僀儖嶌惉
    '''''''''''''''''''''''''''''''''''''''''''''''''''
    
    strOutput = ""
    '揹暥ID
    strOutput = strOutput & "PE"
    '揱昜擭寧擔
    strOutput = strOutput & str揱昜擭寧擔
    '僺僢僉儞僌廤栺No_僌儖乕僺儞僌NO
    strOutput = strOutput & str僺僢僉儞僌廤栺No_僌儖乕僺儞僌NO
    '僺僢僉儞僌廤栺No_巬斣
    strOutput = strOutput & "0"
    '僺僢僉儞僌廤栺No_捠斣
    strOutput = strOutput & str僺僢僉儞僌廤栺No_捠斣
    '嶌嬈ID
    strOutput = strOutput & doAddValueType("", "X", 4)
    
    '嶌嬈幰僐乕僪
    strOutput = strOutput & strUser
    '嶌嬈奐巒擔帪
    strOutput = strOutput & strStartTime
    '嶌嬈姰椆擔帪
    strOutput = strOutput & getEndTime()
    '媥宔帪娫(椵愊)
    strOutput = strOutput & doAddValueType("1", "9", 3)
    
    'TODO
    '傾儔乕儉 (撉傒庢傝僄儔乕夞悢)
    strOutput = strOutput & doAddValueType("", "9", 2)
    '傾儔乕儉 (廳検専昳僄儔乕悢)
    strOutput = strOutput & doAddValueType("", "9", 2)
    '傾儔乕儉 (攳偓庢傝桳柍)
    strOutput = strOutput & doAddValueType("", "9", 1)
    '傾儔乕儉 (QR儔儀儖報帤帪娫)
    strOutput = strOutput & doAddValueType("", "9", 4)
    '傾儔乕儉 (梊旛)
    strOutput = strOutput & doAddValueType("", "9", 10)
    '壸懙偊愭儘働乕僔儑儞
    strOutput = strOutput & doAddValueType("", "X", 10)


    
    '''''''''''''''''''''''''''''''''''''''''''''''''''
    ' 僺僢僉儞僌PL嶌嬈姰椆乮暘妱僨乕僞側偟乯 僼傽僀儖嶌惉
    '''''''''''''''''''''''''''''''''''''''''''''''''''
    strOutPutFileName = ThisWorkbook.Path & "\" & fileName & strFileNoDataEndName & ".txt"
    Open strOutPutFileName For Output As #1


    Print #1, strOutput
    Close #1


    '
    Dim strOutput2 As String
    strOutput2 = strOutput


    Dim tempValue  As String
    
    Dim str庬暿 As String
    Dim str儘働乕僔儑儞僐乕僪 As String
    Dim str妋擣嬫暘 As String
    Dim str彜昳僐乕僪 As String
    Dim str暔棳斈梡僐乕僪 As String
    Dim str曪憰僐乕僪 As String
    Dim str堷偒摉偰擔_QR梡曄姺幚巤 As String
    Dim str弌壸僷儗僢僩悢 As String
    Dim str抂悢働乕僗悢 As String
    Dim str僶儔悢 As String
    Dim str弌壸嬫暘 As String
    Dim str弌壸応強 As String
    Dim str巜帵堘偄昳嬫暘 As String


    Dim dI As Integer
    dI = 0


    For i = 0 To 9
        tempValue = Mid(tempStr, 51 + 81 * i, 81)
        
        dI = dI + CharacterLen(tempValue) - 81
        
        If Trim(tempValue) = "" Then
            GoTo endFor
        End If




        '庬暿 1
        str庬暿 = Mid(tempValue, 1, 1)
        '儘働乕僔儑儞僐乕僪 10
        str儘働乕僔儑儞僐乕僪 = Mid(tempValue, 2, 10)
        '妋擣嬫暘   1
        str妋擣嬫暘 = Mid(tempValue, 12, 1)
        '彜昳僐乕僪  6
        str彜昳僐乕僪 = Mid(tempValue, 15, 6)
        
        
        '慡妏KILL
        tempValue = Right(tempValue, 29 + dI)
        
        '暔棳斈梡僐乕僪  4
        str暔棳斈梡僐乕僪 = Mid(tempValue, 1, 4)


        '曪憰僐乕僪  6
        str曪憰僐乕僪 = Mid(tempValue, 5, 6)
        '堷偒摉偰擔 (QR梡曄姺幚巤)  3
        str堷偒摉偰擔_QR梡曄姺幚巤 = Mid(tempValue, 11, 3)
        '弌壸僷儗僢僩悢  3
        str弌壸僷儗僢僩悢 = Mid(tempValue, 14, 3)
        str弌壸僷儗僢僩悢2 = makeLess(str弌壸僷儗僢僩悢, 3)
        '抂悢働乕僗悢  3
        str抂悢働乕僗悢 = Mid(tempValue, 20, 3)
        str抂悢働乕僗悢2 = makeLess(str抂悢働乕僗悢, 3)
        '僶儔悢  2
        str僶儔悢 = Mid(tempValue, 23, 2)
        str僶儔悢2 = makeLess(str僶儔悢, 2)
        '弌壸嬫暘 2
        str弌壸嬫暘 = Mid(tempValue, 25, 1)
        '弌壸応強 4
        str弌壸応強 = Mid(tempValue, 26, 4)
        '巜帵堘偄昳嬫暘 1
        str巜帵堘偄昳嬫暘 = "0"
        
    
        '庬暿
        strOutput = strOutput & str庬暿
        '儘働乕僔儑儞僐乕僪
        strOutput = strOutput & str儘働乕僔儑儞僐乕僪
        '妋擣嬫暘
        strOutput = strOutput & str妋擣嬫暘
        '彜昳僐乕僪
        strOutput = strOutput & str彜昳僐乕僪
        '暔棳斈梡僐乕僪
        strOutput = strOutput & str暔棳斈梡僐乕僪
        '曪憰僐乕僪
        strOutput = strOutput & str曪憰僐乕僪
        '堷偒摉偰擔 (QR梡曄姺幚巤)
        strOutput = strOutput & str堷偒摉偰擔_QR梡曄姺幚巤
        


        '弌壸僷儗僢僩悢
        strOutput = strOutput & str弌壸僷儗僢僩悢
        '抂悢働乕僗悢
        strOutput = strOutput & str抂悢働乕僗悢
        '僶儔悢
        strOutput = strOutput & str僶儔悢
        '弌壸嬫暘
        strOutput = strOutput & str弌壸嬫暘
        '弌壸応強
        strOutput = strOutput & str弌壸応強
        '巜帵堘偄昳嬫暘
        strOutput = strOutput & str巜帵堘偄昳嬫暘
    
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        '庬暿
        strOutput2 = strOutput2 & str庬暿
        '儘働乕僔儑儞僐乕僪
        strOutput2 = strOutput2 & str儘働乕僔儑儞僐乕僪
        '妋擣嬫暘
        strOutput2 = strOutput2 & str妋擣嬫暘
        '彜昳僐乕僪
        strOutput2 = strOutput2 & str彜昳僐乕僪
        '暔棳斈梡僐乕僪
        strOutput2 = strOutput2 & str暔棳斈梡僐乕僪
        '曪憰僐乕僪
        strOutput2 = strOutput2 & str曪憰僐乕僪
        '堷偒摉偰擔 (QR梡曄姺幚巤)
        strOutput2 = strOutput2 & str堷偒摉偰擔_QR梡曄姺幚巤
        


        '弌壸僷儗僢僩悢
        strOutput2 = strOutput2 & str弌壸僷儗僢僩悢2
        '抂悢働乕僗悢
        strOutput2 = strOutput2 & str抂悢働乕僗悢2
        '僶儔悢
        strOutput2 = strOutput2 & str僶儔悢2
        
        
        
        '弌壸嬫暘
        strOutput2 = strOutput2 & str弌壸嬫暘
        '弌壸応強
        strOutput2 = strOutput2 & str弌壸応強
        '巜帵堘偄昳嬫暘
        strOutput2 = strOutput2 & str巜帵堘偄昳嬫暘
    
    
    Next


endFor:
    
    '''''''''''''''''''''''''''''''''''''''''''''''''''
    ' 僺僢僉儞僌PL嶌嬈姰椆乮暘妱僨乕僞娷傓乯 僼傽僀儖嶌惉
    '''''''''''''''''''''''''''''''''''''''''''''''''''
    strOutPutFileName = ThisWorkbook.Path & "\" & fileName & strFileEndName & ".txt"
    Open strOutPutFileName For Output As #1
    
    Print #1, strOutput
    Close #1


    '''''''''''''''''''''''''''''''''''''''''''''''''''
    '僺僢僉儞僌PL嶌嬈姰椆乮堦晹乯 僼傽僀儖嶌惉
    '''''''''''''''''''''''''''''''''''''''''''''''''''
    strOutPutFileName = ThisWorkbook.Path & "\" & fileName & strFilePartEndName & ".txt"
    Open strOutPutFileName For Output As #1
    
    Print #1, strOutput2
    Close #1




End Function




''''''''''''''''''''''''''''''''''''''''''
'悢帤偺応崌丄愭摢偵乽0乿傪捛壛偡傞
'暥帤偺応崌丄屻傠偵僗儁僢僗傪捛壛偡傞
''''''''''''''''''''''''''''''''''''''''''
Function doAddValueType(strValue As String, strType As String, iLen As Integer)


    Dim result As String
    result = strValue
    For i = 1 To iLen
        '悢帤偺応崌丄愭摢偵乽0乿傪捛壛偡傞
        If strType = "9" Then
            result = "0" & result
        '暥帤偺応崌丄屻傠偵僗儁僢僗傪捛壛偡傞
        Else
            result = result & " "
        End If
    Next


    '悢帤偺応崌丄愭摢偵乽0乿傪捛壛偡傞
    If strType = "9" Then
        result = Right(result, iLen)
    '暥帤偺応崌丄屻傠偵僗儁僢僗傪捛壛偡傞
    Else
        result = Left(result, iLen)
    End If


    doAddValueType = result
    
End Function


Function getEndTime()
    getEndTime = Format(Now(), "YYYYMMDD") & "235959"
End Function




Sub test()


Debug.Print Format(Now(), "YYYYMMDDHHMMSS")
End Sub






Function CharacterLen(s_str As String) As Integer


Dim i_num As Integer
Dim i_index As Integer
Dim i_len As Integer


i_len = Len(s_str)


For i_index = 1 To i_len


If Asc(Mid(s_str, i_index, 1)) < 0 Then
i_num = i_num + 1
End If
Next
CharacterLen = i_len + i_num
End Function






Function makeLess(numberString As String, iLen As Integer)


    Dim result As String
    If CInt(numberString) > 1 Then
        result = CStr(CInt(numberString) - 1)
    Else
        result = numberString
    End If


    makeLess = doAddValueType(result, "9", iLen)


End Function
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值