Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Разделить полученный текст на две переменные


Автор: DENSHER 4.2.2011, 10:29
Доброго времени суток господа!
Покажите как разделить полученный текст на две переменные?

Например: text1: text2: text3: text4 (ключевой разделитель текста первые двоеточия, вторичные и т.д. не учитывались)
Нужно получить
_a = text1:
_b = text2:  text3: text4
вот такой вот вариант в переменные.

Заранее благодарю.

Автор: Akina 4.2.2011, 10:37
Код

a=left(txt,instr(txt,":"))
b=mid(txt,1+instr(txt,":"))

Автор: DENSHER 4.2.2011, 10:48
Цитата(Akina @  4.2.2011,  10:37 Найти цитируемый пост)
a=left(txt,instr(txt,":"))

Чёто он на Left у меня ругается (

Автор: Akina 4.2.2011, 10:58
Или txt у тебя не текст, или в нём нет двоеточия, или a - не текстовая.
А вообще когда ругается - надо цитировать ругательства.

Автор: DENSHER 4.2.2011, 11:18
Извиняюсь за оплошность. Вот что выдает:
Ошибка    1    "Public Property Left As Integer" не имеет параметров, поэтому невозможно проиндексировать возвращаемый им тип.    C:\Users\Admin\AppData\Local\Temporary Projects\WindowsApplication1\Form1.vb    6    14    WindowsApplication1

Для эксперимента ,я создал вот такой вот вариант:

Код

Public Class Form1
    Dim _txt As String = "text1: text2: text3: text4"
    Dim _a As String
    Dim _b As String

    Private Sub Button1_Click(ByVal sender As System.Object, _
                                          ByVal e As System.EventArgs) Handles Button1.Click
        _a = Left(_txt, InStr(_txt, ":"))
        _b = Mid(_txt, 1 + InStr(_txt, ":"))
        Label1.Text = _a
        Label2.Text = _b
    End Sub

End Class


При этом варианте , ругается на Left! 

Автор: Akina 4.2.2011, 11:23
Цитата(DENSHER @  4.2.2011,  12:18 Найти цитируемый пост)
Public Property Left As Integer

Значит, укажите явно, что Left надо брать из Strings - вероятно, по умолчанию выполняется обращения к свойству формы или контрола.
На всякий случай сделайте то же и для Mid - хоть тут и не будет пересечения по именам.

Автор: DENSHER 4.2.2011, 11:30
Цитата(Akina @  4.2.2011,  11:23 Найти цитируемый пост)
Значит, укажите явно, что Left надо брать из Strings - вероятно,

Подскажи пожалуйста как это сделать , если тебе не сложно.

Решил проблему вот таким вот образом:
Код

_a = Microsoft.VisualBasic.Left(_txt, InStr(_txt, ":"))


Akina , спасибо большое за помощь  smile 

Автор: diadiavova 4.2.2011, 13:52
http://msdn.microsoft.com/ru-ru/library/system.string.indexof.aspx
http://msdn.microsoft.com/ru-ru/library/system.string.substring.aspx

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)