51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2278|回复: 9
打印 上一主题 下一主题

[原创] 如何在一个参数中插入字符串(问题已解决,搞的我一身汉)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-8-25 15:54:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在程序或获取一个参数,这个参数是个随机的字符串现在我想插如一个空格
如字符串是"hello"
我想在改为"he_llo"
如何实现 不要用right,split
我只能否用如insert("hellp","_",2) 呵呵 自己想的这种方式随机插入字符串.

[ 本帖最后由 lingxin5013 于 2008-8-26 09:54 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-8-25 16:46:58 | 只看该作者
既然你有这个需要,那自己写一个insert函数就是咯
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-8-25 17:05:32 | 只看该作者
LS关键是我不会写啊 能否帮忙下
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-8-25 17:32:18 | 只看该作者
同意楼上看法,自己写个函数调用吧
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-8-26 09:25:38 | 只看该作者
本身vbs里没有insert这种用法,不过正如上面的朋友说的,可以自己设计个函数.
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2008-8-26 09:49:21 | 只看该作者
LS 的几位说了等于没说!(我这句话说的不对,我改啊@! 哈哈 LS各位都辛苦了 非常感谢!)

[ 本帖最后由 lingxin5013 于 2008-8-26 10:15 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2008-8-26 09:50:08 | 只看该作者
''拿出来给大家看看 昨天搞了好长时间才搞出来 大家看了要顶啊 ''
''读取列表,把试卷处理成如:"中 zhong1"
''Date:   2008-8-25
''

Function DealPinYin(strPinYin, ByRef arrayPinYin())
  Dim index
  Dim i

  index = 0
  '几个字的拼音
  For i = 0 To Len(strPinYin) - 1
    If Mid(strPinYin, i + 1, 1) = "|" Then  '每个字的拼音用'|'分隔
      index = index + 1
    End If
  Next

  ReDim arrayPinYin(index)              '动态数组大小, 日哦,难用极了

  index = 0
  For i = 0 To Len(strPinYin) - 1
        If Mid(strPinYin, i + 1, 1) <> "|" Then  '每个字的拼音用'|'分隔
          arrayPinYin(index) = arrayPinYin(index) + Mid(strPinYin, i + 1, 1)       
        Else
          '---------------------------------------------------------        
             arrayPinYin(index) = Left(arrayPinYin(index),1) + chr(9) + Mid(arrayPinYin(index),2,Len(arrayPinYin(index))-2) + chr(9) + Right(arrayPinYin(index),1)       
          '---------------------------------------------------------              
          index = index + 1
        End If
          Next         
  '---------------------------------------------------------
           arrayPinYin(index) = Left(arrayPinYin(index),1) + chr(9) + Mid(arrayPinYin(index),2,Len(arrayPinYin(index))-2) + chr(9) + Right(arrayPinYin(index),1)
  '---------------------------------------------------------                  
End Function

Function DealHanZi(strHanZi, ByRef arrayHanZi())
  Dim index
  Dim i

  On Error Resume Next '出错后跳到下一句

  ReDim arrayHanZi(Len(strHanZi) / 2)          '汉字占2个字节

  index = 0
  For i = 0 To Len(strHanZi) - 1
    arrayHanZi(index) = Mid(strHanZi, i + 1, 1)
    index = index + 1
  Next
End Function

Function DoProcess(path, OutFileName)
  Dim iCount
  Dim strOneLine

  Dim PinYin()
  Dim HanZi()

  Dim doPinYin
  Dim doHanZi

  Set fsObj = CreateObject("Scripting.FileSystemObject")
  Set fileObj = fsObj.OpenTextFile(path)

  Set fsOutObj = CreateObject("Scripting.FileSystemObject")
  Set fileOutObj = fsOutObj.CreateTextFile(OutFileName, True)

  iCount = 0

  '到行,处理:汉字、拼音、空行
  While Not fileObj.atEndOfStream
    strOneLine = fileObj.readline

    strOneLine = Replace(strOneLine, " ", "")                '去空格
    strOneLine = Replace(strOneLine, Chr(9), "")        '删除Tab
   
  '---------------------------------------------------------
    strOneLine = Replace(strOneLine, "~", "")                '
    strOneLine = Replace(strOneLine, "#", "")                '       
  '---------------------------------------------------------     

    If Len(strOneLine) > 0 Then                   '不是空行
      If Asc(strOneLine) > Asc("a") And Asc(strOneLine) < Asc("z") Then '拼音行
          '---------------------------------------------------------     
            strOneLine = Replace(strOneLine, "zh", "!")                '
            strOneLine = Replace(strOneLine, "ch", "@")                '
            strOneLine = Replace(strOneLine, "sh", "#")                '
          '---------------------------------------------------------   
        DealPinYin strOneLine, PinYin   
        doPinYin = True
      Else
        DealHanZi strOneLine, HanZi
        doHanZi = True
      End If

      '输出结果
      If doPinYin And doHanZi Then
        For i = 0 To UBound(PinYin)
          strOneLine = HanZi(i) + Chr(9) + PinYin(i)
                  '---------------------------------------------------------
                    strOneLine = Replace(strOneLine, "!", "zh")                '
                    strOneLine = Replace(strOneLine, "@", "ch")                '
                    strOneLine = Replace(strOneLine, "#", "sh")                '
                  '---------------------------------------------------------            
          fileOutObj.WriteLine (strOneLine)
        Next

        doPinYin = False
        doHanZi = False
      End If
    End If
    iCount = iCount + 1
  Wend
  fileOutObj.Close
End Function




'''''''''''main()'''''''''''
On Error Resume Next '出错后跳到下一句

Set fsList = CreateObject("Scripting.FileSystemObject")
Set objList = fsList.OpenTextFile("list.txt")

If Err.Number <> 0 Then
  MsgBox ("list.txt文件不存在")
End If

Dim i
Dim iPos

Dim strOneLine
Dim strFileName

While Not objList.atEndOfStream
  strOneLine = objList.readline

  strOneLine = Replace(strOneLine, " ", "")     '去空格
  strOneLine = Replace(strOneLine, Chr(9), "")  '删除Tab

  If Len(strOneLine) > 0 Then                   '不是空行
    '找出文件名开始的位置
    iPos = InStrRev(strOneLine, "\", -1, 1)

    If iPos > 0 Then strFileName = Right(strOneLine, Len(strOneLine) - iPos)

    DoProcess strOneLine, strFileName
  End If
Wend

[ 本帖最后由 lingxin5013 于 2008-8-26 10:16 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-8-26 10:04:18 | 只看该作者
呵呵  给楼主顶一个
下来研究下你这段代码
看能不能给你找几个bug出来

BTW:
"LS 的几位说了等于没说!"
楼主这个话说的不好
大家也是发表自己的意见或者建议
没有功劳也有苦劳吧

尊重别人才能得到别人的尊重
这样才有人给你顶这样长的一段函数数
--说的不好之处不要见怪
呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2008-8-26 10:13:49 | 只看该作者
呵呵LS 说的是 心情有点激动啊 哈哈 
你们搞学计算机的肯定简单 我和你们不一样啊 我大学学的法律 刚开始接触计算机我连字节和位是什么都不知道 辛苦啊  呵呵
VBS学习的地方还是很多 多象大家学习,大家都辛苦了,共同学习,共同提高.
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-8-26 10:55:27 | 只看该作者
顶楼主
好长,有空再看~
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-28 10:49 , Processed in 0.072900 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表