VBScript количество новых строк - PullRequest
1 голос
/ 22 августа 2011

Я ищу функцию для подсчета количества новых строк в конкретной строке, возвращаемой из БД.

Я видел функции для выполнения этого JavaScript и PHP, нонет для VBScript.

Я хочу сначала проверить, есть ли в строке возврат каретки (и сосчитать их), затем я хочу заменить их на тег <br/>.

Полагаю, я мог бы сделать замену на vbCrLf, и если он не найдет ее, то, вероятно, никакого вреда не будет.Однако для целей отладки сейчас мне бы очень хотелось получить счетчик, чтобы я знал, что он делает (и если это то, что я ожидаю).

Любые идеи о том, как это сделать в VBScript

Ответы [ 4 ]

4 голосов
/ 22 августа 2011

Вы можете попытаться разбить строку и увидеть UBound массива:

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

lineNb = UBound(arrLines)

код, адаптированный с здесь

2 голосов
/ 22 августа 2011

Используйте RegExp, если вы хотите, чтобы Count и заменили:

>> 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 голос
/ 29 февраля 2016

Как только я прочитал, что для новых строк можно использовать символы:

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

Они относятся к системе ОС / специфичны: насколько я знаю vbCrLf работает только на платформах win-системв то время как другие в linux / unix / mac OS.

Я полагаю, что для более общего подхода будет лучше использовать vbNewLine вместо vbCrLf, потому что vbNewLine адаптируется к нужному способу при необходимости.

Пожалуйста, поправьте меня, если я ошибаюсь, потому что я не совсем уверен в этом.Тпй

1 голос
/ 23 августа 2011

Если вы заменяете строку и вам нужно только знать, сколько замен, как насчет:

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

MsgBox "Replaced: " & (Len(s)-l)/3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...