Работа со String

Тема в разделе "Lotus - Программирование", создана пользователем 11BOSS11, 19 июл 2010.

Статус темы:
Закрыта.
  1. 11BOSS11

    11BOSS11 Гость

    Репутация:
    0
    Есть строковая переменная , допустим: "Рложрфды оыдлав оывдал оыаж @ывфа@ @выа@ ыва #ыва#"
    как мне достать отсюда все подстроки выделенные @@ и ##..........
     
  2. Akupaka

    Akupaka А че я?.. О.о

    Репутация:
    0
    Регистрация:
    4 окт 2007
    Сообщения:
    3.363
    Симпатии:
    2
    InStr, Left, Right...
     
  3. morpheus

    morpheus скриптописец

    Репутация:
    0
    Регистрация:
    7 авг 2006
    Сообщения:
    3.920
    Симпатии:
    1
    StrLeft
    StrRight

    split ещё можно - тогда получим массив
     
  4. 11BOSS11

    11BOSS11 Гость

    Репутация:
    0

    О!
    Сплит - это то что надо!=) :offtop:
     
  5. 11BOSS11

    11BOSS11 Гость

    Репутация:
    0
    ум , впринципе не все так просто!......

    сплит просто режет все на куски , .. если есть "ылрда@sfd@ @sf@ @sfd@" он выдас "тылрда" , "sfd"," ", "sf", "sfd" , ....
    а мне надо @sfd@, @sf@, @sfd@, //
    вот..........
    может кто кодом поможет?........... :offtop:
     
  6. divankin

    divankin Senjor developer

    Репутация:
    0
    Регистрация:
    13 авг 2009
    Сообщения:
    182
    Симпатии:
    0
    Ну и бери все нечетные
     
  7. vital

    vital Больной Компом Детектед

    Репутация:
    0
    Регистрация:
    29 янв 2006
    Сообщения:
    2.434
    Симпатии:
    39
    может извилинами пошевелите? Вам сказали кучу функций.
     
  8. TIA

    TIA :-)
    Lotus team

    Репутация:
    0
    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    1
    Ещё через StrToken можно сделать
     
  9. 11BOSS11

    11BOSS11 Гость

    Репутация:
    0
    вот пробую как то так сделать.........какая то ф...ня получаетсО................
    помогите пожалуйстС найти ошибку..........


    Код (LotusScript):
    Sub Initialize
    Dim stroka As String


    stroka=" jsadjsf dshkfj d @sdfkl@ jlsdfj@ds@ dkjsf@@         @sdf@  "
    k=0

    For i=1 To Len(stroka)
    If Right(Left(stroka, i),1)="@" Then
    k=k+1
    End If
    Next

    k1=k / 2
    Redim masS(k1) As String

    'формируем масив позицый собак
    Redim masA(k) As Integer
    j=1
    For i=1 To Len(stroka)
    If Right(Left(stroka, i),1)="@" Then
    masA(j)=i
    j=j+1
    End If
    Next
    'берем по парам и создаем масив строк
    f=1
    For i=1 To k1
    masS(i)= Right(Left(stroka, masA(f+1)),masA(f))

    f=f+2
    Next

    Print сть
    End Sub
     
  10. Medevic

    Medevic Что это ? :)
    Lotus team

    Репутация:
    0
    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Проще, как уже сказали, сделать Split и взять четные элементы. Программа на 5 строк.
     
  11. hosm

    hosm * so what *

    Репутация:
    0
    Регистрация:
    18 май 2009
    Сообщения:
    2.445
    Симпатии:
    8
    только если кол-во элементов по сплиту четное, то последний брать не надо (есть только начальный символ @, нет закрывающегося)
     
  12. Xalet

    Xalet Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2008
    Сообщения:
    410
    Симпатии:
    0
    Код (LotusScript):
        Dim stroka As String
    Dim pos As Integer
    Dim tStr As String

    stroka = " jsadjsf dshkfj d @sdfkl@ jlsdfj@ds@ dkjsf@@       @sdf@  "

    While stroka <> ""
    pos = Instr(stroka,"@")
    If pos <> 0 Then
    stroka = Right(stroka,Len(stroka)-pos)
    pos = Instr(stroka,"@")
    If pos <> 0 Then
    tStr = Left(stroka,pos-1)
    Msgbox tStr
    stroka = Right(stroka,Len(stroka)-pos)
    Else
    stroka = ""
    End If
    Else
    stroka = ""
    End If
    Wend
    в массив сам загонишь
     
  13. 11BOSS11

    11BOSS11 Гость

    Репутация:
    0
    Спасибо всем, тема закрыта!=)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей