Удаление определенного символа справа и слева от строки в vb6 (TrimChar) - PullRequest
4 голосов
/ 16 декабря 2011

Я хочу удалить некоторые символы, которые неправильно использовались в строке.

"........ I.wanna.delete.only.the.dots.outside.of.this.text ..............."

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

"I.wanna.delete.only.the.dots.outside.of.this.text"

но я не смог найти способ получить эту работу.

Ответы [ 2 ]

12 голосов
/ 16 декабря 2011

VB6 имеет функцию Trim(), но она удаляет только пробелы.

Чтобы удалить символы с обоих концов, вам нужно проверять каждый конец по очереди, удаляя символ, пока не получите что-то еще:

Function TrimChar(ByVal Text As String, ByVal Characters As String) As String
  'Trim the right
  Do While Right(Text, 1) Like "[" & Characters & "]"
    Text = Left(Text, Len(Text) - 1)
  Loop

  'Trim the left
  Do While Left(Text, 1) Like "[" & Characters & "]"
    Text = Mid(Text, 2)
  Loop

  'Return the result
  TrimChar = Text
End Function

Результат:

?TrimChar("........I.wanna.delete.only.the.dots.outside.of.this.text...............", ".")
I.wanna.delete.only.the.dots.outside.of.this.text

Это далеко не оптимизировано, но вы могли бы расширить его, чтобы просто обработать конечные позиции, а затем сделать один Mid() вызов.

1 голос
/ 16 декабря 2011
    Public Function Remove(text As String) As String

      text = Replace(text, "..", "")

      If Left(text, 1) = "." Then
         text = Right(text, Len(text) - 1)
      End If

      If Right(text, 1) = "." Then
         text = Left(text, Len(text) - 1)
      End If

      Remove = text

    End Function

Если вы удалите все экземпляры «..», то вы можете иметь или не иметь единственную начальную точку и одну конечную точку для работы. Если вам посчастливилось гарантировать, что точки всегда будут четными, то

 text = Replace(text, "..", "")

- это все, что вам нужно.

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