【问题标题】:reading between two values在两个值之间读取
【发布时间】:2015-09-30 15:55:22
【问题描述】:

在询问用户是否想要介于 '' 之间后,我必须读取 2 个值之间的值。

如果用户在文本中选择 1 为例

'Hi' My name is 'Kev'in and i'm happ'y' to be 'there'

他会有

'Hi' 'Kev' 'y' 'there'

在文本文件中。如果他选择2,他将拥有

My name is in and i'm happ to be

我现在正在使用

Do While objScriptFile.AtEndOfStream <> True
   strCurrentLine = objScriptFile.ReadLine
     intIsComment = InStr(1,strCurrentLine,"'")
   If intIsComment > 0 Then
     objCommentFile.Write strCurrentLine & vbCrLf
   End If
Loop
Else  

目前它只读取两个值(在 '' 之间而不是在之间),但我不知道如何更改它。

【问题讨论】:

  • 为什么是'Hi' 'Kev' 'y' 'there' 而不是'Hi' 'Kev' 'm happ' ' to be ' 这背后的逻辑是什么?

标签: vbscript


【解决方案1】:

这很简单,只要分隔符是唯一的。在' 处拆分行并输出偶数或奇数数组元素,具体取决于选择的是 1 还是 2。

...
strCurrentLine = "'Hi' My name is 'Kev'in and i`m happ'y' to be 'there'"
arr  = Split(strCurrentLine, "'")

For i = choice To UBound(arr) Step 2
  objCommentFile.Write arr(i)
Next
...

choice 的值是用户的选择(1 或 2)。

请注意,要使其正常工作,字符串不得在其他任何地方包含撇号。正如@Ekkehard.Horner 在他的评论中指出的那样,你不能在文本的其他地方使用分隔符(i'm),否则就无法区分它在哪里应该是一个分隔符,在哪里不是。

【讨论】:

  • 因为i'm,问题不是“简单”,而是“无法解决”。您需要不同的标记来引用(成对:'y')或删除(单个:i'm)。
  • @Ekkehard.Horner True.
猜你喜欢
  • 2014-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-29
  • 2017-03-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多