VB6 катается на больших пространствах - PullRequest
1 голос
/ 31 июля 2010

Привет всем, я пытаюсь заменить большие пробелы между текстом только одним. Мой вывод выглядит так прямо сейчас:

5964215">

        This is just the first example of the spaces
    5964478">

        This would be the 2nd example of showing how many spaces this thing has in each sentence.
    5964494">

Это происходит из текстового поля с многострочным значением true. Вот как это выглядит, когда он не имеет многострочного истины.

http://www.june3rdsoftware.com/forums/vb6.jpg

Я не могу заставить пробелы уходить! Кстати, этот текст взят с веб-страницы, если это имеет какое-либо значение.

David

Ответы [ 3 ]

6 голосов
/ 31 июля 2010

Согласно предложению MvanGeest, вот некоторый код VB для замены блоков пробелов:

Sub test()
    Dim x As String, y As String
    x = "abcd       defg             1233"
    Dim re As New RegExp
    re.Pattern = "\s+"
    re.Global = True
    y = re.Replace(x, " ")
    Debug.Print y
End Sub

Чтобы это работало, вам нужно добавить ссылку на «Регулярные выражения Microsoft VBScript» в ваш проект.

0 голосов
/ 07 августа 2010

Также, не используя регулярные выражения, вы можете попробовать что-то вроде

str = "длинный текст с пробелами"

i = LenB (str)

str = Replace (str, "", "")

Делать пока LenB (str) <> i

i = LenB (str)

str = Заменить (str, "", "")

Цикл

Конечно, этот код можно оптимизировать для длинных последовательностей пробелов, но это может быть и все, что вам нужно

0 голосов
/ 31 июля 2010

При условии отсутствия поддержки регулярных выражений, почему бы не установить простой конечный автомат, который установит состояние = 1 при обнаружении пробела и установит состояние = 0 при обнаружении не пробела.Вы можете перемещать символ за символом, когда состояние = 0 (таким образом копируя только 1 пробел на серию пробелов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...