簡體   English   中英

VBScript計算新行

[英]VBScript count new lines

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

我見過執行此JavaScript和PHP的函數,但VBScript沒有。

我想先檢查字符串中是否有回車符(並對它們進行計數),然后再將它們替換為<br/>標記。

我想我可以對vbCrLf進行替換,如果找不到,則可能不會造成任何傷害。 但是,出於調試目的,我現在真的很想獲得計數,以便我知道它在做什么(如果它是我期望的)。

有關如何在VBScript中執行此操作的任何想法

您可以嘗試拆分字符串並查看數組的UBound

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

lineNb = UBound(arrLines)

這里改編的代碼

如果需要計數替換,請使用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
>>

一旦我讀到了換行符,就可以使用chars了:

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

它們是與OS系統相關的/特定的:就我所知, vbCrLf僅在win系統平台上有效,而其他在linux / unix / mac OS中有效。

我想這對於使用vbNewLine而不是vbCrLf的更通用的方法會更好,因為vbNewLine會根據需要適應正確的方式。

如果我錯了,請指正我,因為我不太確定。 n

如果要替換字符串,並且只需要知道替換的次數,該如何做:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM