VBScript计数新行

时间:2011-08-22 19:15:34

标签: vbscript

我正在寻找一个关于如何计算从DB返回的特定字符串中有多少新行的函数。

我见过使用JavaScript和PHP的函数,但VBScript没有。

我想首先检查字符串中是否有回车符(并计算它们),然后我想将它们替换为<br/>标记。

我想我可以在vbCrLf上进行替换,如果找不到,那么可能不会造成任何伤害。但是,出于调试目的,我现在非常想得到计数,所以我知道它在做什么(如果它是我期待的那样)。

有关如何在VBScript中执行此操作的任何想法

4 个答案:

答案 0 :(得分:4)

您可以尝试拆分字符串并查看数组的UBound

'Split the stringfile into lines
arrLines = Split(strData,vbCrLf)

lineNb = UBound(arrLines)

代码改编自here

答案 1 :(得分:2)

如果您希望Count 替换:

,请使用RegExp
>> s = Join( Array( 1, 2, 3 ), vbCrLf )
>> Set r = New RegExp
>> r.Global = True
>> r.Pattern = vbCrLf
>> WScript.Echo r.Execute( s ).Count
>> WScript.Echo r.Replace( s, "<br />" )
>>
2
1<br />2<br />3
>>

答案 2 :(得分:1)

如果您要更换字符串并且只需要知道有多少替换,那么:

s = StringFromDB
l = Len(s)
s = Replace(s,vbCrLf,"<br/>")

MsgBox "Replaced: " & (Len(s)-l)/3

答案 3 :(得分:1)

一旦我读到新行,就可以使用字符:

import datetime
import matplotlib.pyplot as plt
from matplotlib.dates import AutoDateLocator, AutoDateFormatter, date2num

#make my own data:
date = '2016-02-23'
low = 10

#how to format dates:
date_datetime = datetime.datetime.strptime(date, '%Y-%m-%d')
int_date = date2num( date_datetime)

#create plots:
fig, ax = plt.subplots()

#plot data:
ax.bar(int_date,low, label="Minimum number of players", color="red")

#format date strings on xaxis:
locator = AutoDateLocator()
ax.xaxis.set_major_locator(locator)
ax.xaxis.set_major_formatter( AutoDateFormatter(locator) )

#adjust x limits and apply autoformatter fordisplay of dates
min_date = date2num( datetime.datetime.strptime('2016-02-16', '%Y-%m-%d') )
max_date = date2num( datetime.datetime.strptime('2016-02-28', '%Y-%m-%d') )
ax.set_xlim([min_date, max_date])
fig.autofmt_xdate()

#show plot: 
plt.show()

它们与操作系统相关/特定:我所知道的 vbCrLf 仅适用于win系统平台,而其他适用于linux / unix / mac OS。

我认为对于使用vbNewLine而不是vbCrLf更通用的方法会更好,因为vbNewLine会根据需要适应正确的方式。

如果我错了,请纠正我,因为我不完全确定。 TNX