Ведущие пробелы для обрезки включая вкладки

Многоадресной отправке ответили, получение требует подписки к группе многоадресной передачи.

Это (все еще) кажется недокументированным, но было покрыто в списке рассылки erlang-вопросов прежде. http://www.erlang.org/pipermail/erlang-questions/2003-March/008071.html

    {ok, Socket} = gen_udp:open(Port, [binary, {active, false},
                                       {reuseaddr, true},{ip, Addr}, 
                                       {add_membership, {Addr, LAddr}}]).

, где эти Addr группа многоадресной передачи, и LAddr, является локальным интерфейсом. (любезность кода mog)

те же опции, используемые выше, могут быть переданы inet:setopts включая {drop_membership, {Addr, LAddr}}, чтобы прекратить слушать группу.

5
задан Helen 8 July 2009 в 15:40
поделиться

4 ответа

Ответ Эндрю неверен. LTrim, RTrim и Trim удаляют только пробелы, а не табуляции.

Я переформатировал ваш код и добавил функцию для удаления любых начальных и конечных символов.

filename="test.txt"

set fso = createobject("scripting.filesystemobject")
set f = fso.opentextfile(filename)

do while not f.AtEndOfStream
  s = TrimChars(f.readline, " " + vbTab)
  wscript.echo "|" & s & "|"
loop

f.close

set f = nothing
set fso = nothing

''---

function TrimChars(s, sChars)
  dim n, nLen, nStart

  nLen = Len(s)
  if nLen = 0 then
    TrimChars = s
    exit function
  end if

  ''- skip leading chars
  n = 1
  do while (n <= nLen) And (InStr(sChars, Mid(s, n, 1)) > 0)
    n = n + 1
  loop
  nStart = n

  ''- skip trailing chars
  n = nLen
  do while (n > nStart) And (InStr(sChars, Mid(s, n, 1)) > 0)
    n = n - 1
  loop

  ''- return remaining chars
  nLen = n - nStart + 1
  if (nLen > 0) and (nStart <= len(s)) then
    TrimChars = Mid(s, nStart, nLen)
  else
    TrimChars = ""
  end if
end function
0
ответ дан 18 December 2019 в 08:30
поделиться

Эта функция удаляет все начальные пробелы (пробелы, табуляции и т. Д.) Из строки:

Function LTrimEx(str)
  Dim re
  Set re = New RegExp
  re.Pattern = "^\s*"
  re.Multiline = False
  LTrimEx = re.Replace(str, "")
End Function
10
ответ дан 18 December 2019 в 08:30
поделиться
Function LTrimEx(str)
    Do Until x
        If Left(str, 1) = Chr(32) Or Left(str, 1) = Chr(9) then
            str = Right(str, Len(str) - 1)
        Else
            x = true
        End If
    Loop
    LTrimEx = str
End Function
0
ответ дан 18 December 2019 в 08:30
поделиться

For a both left and right trim (including tabs, carriage return, line feeds, spaces) in a multiline string this will work.

Function MultilineTrim (Byval TextData)
    Dim textRegExp
    Set textRegExp = new regexp
    textRegExp.Pattern = "\s{0,}(\S{1}[\s,\S]*\S{1})\s{0,}"
    textRegExp.Global = False
    textRegExp.IgnoreCase = True
    textRegExp.Multiline = True

    If textRegExp.Test (TextData) Then
        MultilineTrim = textRegExp.Replace (TextData, "$1")
    Else
        MultilineTrim = ""
    End If
End Function
9
ответ дан 18 December 2019 в 08:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: