• 路径问题之一时/一时\一时//一时\\然后有头有尾有头无尾有尾无头无头无尾


    某些人总要在提示了输入"/"的情况下偏要输入"\"

    某些人总要在提示了输入"/"的情况下偏要输入"\\"

    某些人总要在提示了输入"/"的情况下偏要输入"//"

    为了不被 "我就要!" 这样的话语堵得哑口无言,

    这时候,以下函数(getUniformSeparator)怀着十足的使命感默默地跳出来:

    ' ===========================================
    '
    将路径字符串当中的\\,\,//转化成统一的/
    '
    并返回处理后的结果
    '
    ===========================================
    '
    参数如下:
    '
    sPath :待处理的路径字符串
    Function getUniformSeparator(ByVal sPath)
    Dim iLen
    sPath = Trim(""&sPath)
    iLen = Len(sPath)

    If iLen > 0 Then
    sPath = Replace(sPath, "\", "/") ' 消灭\\和\
    Do While Instr(sPath, "//") > 0 '消灭//
    sPath = Replace(sPath, "//" , "/")
    Loop
    End If

    getUniformSeparator = sPath
    End Function

    某些人(包括我)总会轻易间将"以/结尾","以/开头","不要以/结尾","不要以/开头" 的提示语从正眼略到余光再抛之脑后,

    并以一句"我哪知!"来诉苦.好吧,以下函数(getFormatePath)会省略NNN遍的"我告诉你......":

    ' ===========================================
    '
    将路径字符串进行格式化处理(包括路径分隔符的统一)
    '
    并返回处理后的结果
    '
    本函数依赖于:getUniformSeparator函数
    '
    ===========================================
    '
    参数如下:
    '
    sPath :待处理的路径字符串
    '
    sType :格式化形式,有"L","R","LR","K"等几种形式(不分大小写)
    '
    "L"--"只有左侧有路径符"(left)
    '
    "R"--"只有右侧有路径符"(right)
    '
    "LR"--"左右侧都有路径符"(left&right)
    '
    "K"--"不变化,原来怎么样就怎么样"(keep)
    Function getFormatePath(ByVal sPath, ByVal sType)
    Dim bLeft,bRight,iLen
    sPath = getUniformSeparator(sPath)
    sType = UCase(Trim(""&sType))
    iLen = Len(sPath)

    ' 对于根路径,快速处理
    If iLen < 2 Then
    If sType = "L" Or sType = "R" Or sType = "LR" Then
    sPath = "/"
    ElseIf sType <> "K" Then
    sPath = ""
    End If
    getFormatePath = sPath
    Exit Function
    End If

    bLeft = (Left(sPath, 1) = "/") '以/开头
    bRight = (Right(sPath,1) = "/") '以/结尾

    Select Case sType
    Case ""
    If bLeft Then sPath = Mid(sPath, 2, iLen)
    If bRight Then sPath = Mid(sPath, 1, Len(sPath)-1)
    Case "L"
    If Not bLeft Then sPath = "/" & sPath
    If bRight Then sPath = Mid(sPath, 1, Len(sPath)-1)
    Case "R"
    If bLeft Then sPath = Mid(sPath, 2, iLen-1)
    If Not bRight Then sPath = sPath & "/"
    Case "LR"
    If Not bLeft Then sPath = "/" & sPath
    If Not bRight Then sPath = sPath & "/"
    Case "K"
    ' Sth. to do...
    Case Else
    If bLeft Then sPath = Mid(sPath, 2, iLen)
    If bRight Then sPath = Mid(sPath, 1, Len(sPath)-1)
    End Select

    getFormatePath = sPath
    End Function




     

  • 相关阅读:
    poj1068
    make&&gcc/g++ 生成 map file
    游戏系统开发笔记(九)——构建战斗系统
    归并排序
    士兵杀敌(四)
    ftp报错 200 port command successful. consider using pasv 425 failed to establish connection
    HDU 4649 Professor Tian
    如何将ASM中的数据文件复制到操作系统中
    Struts2 学习笔记 10 Result部分 part1
    交通管理系统
  • 原文地址:https://www.cnblogs.com/dreamyoung/p/2398234.html
Copyright © 2020-2023  润新知