2011-08-22 34 views
1

我正在尋找一個函數,瞭解如何計算從數據庫返回的特定字符串中有多少新行。VBScript計數新行

我已經看到函數來做這個JavaScript和PHP,但沒有爲VBScript。

我想先檢查字符串中是否有回車符(並計算它們),然後我想對它們替換爲<br/>標記。

我想我可以做vbCrLf上的替換,如果它沒有找到一個,那麼可能沒有任何傷害。但是,現在爲了調試目的,我真的很想知道計數,所以我知道它在做什麼(以及它是我的期望)。

如何做到這一點在VBScript任何想法

回答

4

您可以嘗試拆分字符串,並看到該陣列的UBound

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

lineNb = UBound(arrLines) 

代碼改編自here

+0

我會試試看。謝謝你的回答。 – webdad3

+0

+1我喜歡,再加上'
'標籤的最終結果,你可以簡單地做一個'加入(arrLines,「
」)' – 2011-08-23 07:31:25

2

使用正規,如果你想要計數的更換:

>> 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 
>> 
1

如果您要更換的字符串,只需要知道有多少替代品,怎麼樣:

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

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

一次,我讀了新線路的字符可以使用:

Cr (Carriage return) 
Lf (Line feed) 
CrLf (Both of the previous) 

他們是操作系統相關/具體:我知道的vbCrLf只適用於win系統平臺,而其他適用於linux/unix/mac操作系統。

我想這會更好地使用vbNewLine來代替vbCrLf,因爲vbNewLine會根據需要採用正確的方法。

如果我錯了,請糾正我,因爲我不完全確定。 tnx