我有一个未知长度的IP地址
例如192.168.5.1 或 192.168.7.129我怎样才能截取最后一个小数点前面的字段呢
就是只要192.168.5
        192.168.7应该怎么做呢,请写出详细语句好吗

解决方案 »

  1.   

    tmppos=instr(tmpstr,"?")
    message=""
    if tmppos > 0 then
    message= right(tmpstr,len(tmpstr)-tmppos)
    end if
    实现截取第一个?以后的字段,循环几次可得到,供参考。
      

  2.   

    dim i as long
    dim address as string
    address = "192.168.7.129"
    i = instrrev(address,".")
    msgbox left(address,i-1)
      

  3.   

    InStrRev函数
          描述返回一个字符串在另一个字符串中出现的位置,从字符串的末尾算起。语法InstrRev(string1, string2[, start[, compare]])InstrRev函数语法有如下几部分:部分 描述 
    string1 必需的。要执行搜索的字符串表达式。 
    string2 必需的。要搜索的字符串表达式。 
    start 可选的。数值表达式,设置每次搜索的开始位置。如果忽略,则使用–1,它表示从上一个字符位置开始搜索。如果start包含 
    Null,则产生一个错误。
     
    compare 可选的。数字值,指出在判断子字符串时所使用的比较方法。如果忽略,则执行二进制比较。关于其值,请参阅“设置值”部分。 
    设置值compare参数值如下:常数 值 描述 
    vbUseCompareOption –1 用Option Compare语句的设置值来执行比较。 
    vbBinaryCompare  0 执行二进制比较。 
    vbTextCompare  1 执行文字比较。 
    vbDatabaseCompare  2 只用于Microsoft Access。基于您的数据库信息执行比较。 
    返回值InStrRev返回值如下:如果 InStrRev返回 
    string1长度为零。 0 
    string1为Null。 Null 
    string2长度为零 Start 
    string2为Null Null 
    string2没有找到。 0 
    string2在string1中找到。 找到匹配字符串的位置。 
    start > Len(string2) 0 
      

  4.   

    s = "192.168.44.34"
    i = InStrRev(s, ".")
    s = Left(s, i - 1)
    MsgBox s
      

  5.   

    dim ip as string 
    dim s as string
    dim i,j,k as integerip="192.168.5.1"
    i=instr(ip,".")
    s=mid$(ip,i+1)
    j=instr(s,".")
    s=mid$(ip,i+j+1)
    k=instr(s,".")
    s=mid$(ip,i+j+k)
    最后的s得值就是您要的结果。