Длина текста в TextBox

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

xob
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 20.11.2005 (Вс) 17:39

Длина текста в TextBox

Сообщение xob » 04.07.2009 (Сб) 15:07

Подскажите пожалуйста, как сделать :
Есть TextBox который выводит данные из таблицы access , как задать параметр что бы выводимый текст обрезался по принципу (кол-во символов выводимого текста \2) - 1 символ ? Кол-во символов всегда четное так что дробных не будет.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Длина текста в TextBox

Сообщение Viper » 04.07.2009 (Сб) 15:13

String.Substring?
Весь мир матрица, а мы в нем потоки байтов!

xob
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 20.11.2005 (Вс) 17:39

Re: Длина текста в TextBox

Сообщение xob » 04.07.2009 (Сб) 16:06

а синтаксис можно где-нибудь посмотреть?

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Длина текста в TextBox

Сообщение Joo » 04.07.2009 (Сб) 17:09

xob писал(а):а синтаксис можно где-нибудь посмотреть?

Да какой там синтаксис. Ну если очень хочется то вот:
Синтаксис
Visual Basic (Объявление)
Public Function Substring ( _
startIndex As Integer, _
length As Integer _
) As String

Visual Basic (Использование)
Dim instance As String
Dim startIndex As Integer
Dim length As Integer
Dim returnValue As String

returnValue = instance.Substring(startIndex, _
length)

Параметры
startIndex
Тип: System..::.Int32

Позиция первого знака подстроки в данном экземпляре (с нуля).

length
Тип: System..::.Int32
Число символов в подстроке.

Возвращаемое значение
Тип: System..::.String
Объект String, эквивалентный подстроке длиной length, которая начинается с startIndex в данном экземпляре, или Empty, если startIndex равен длине данного экземпляра и значение length равно нулю.

Исключения
Исключение Условие : ArgumentOutOfRangeException
Значение
: startIndex плюс length задает позицию вне пределов данного экземпляра.
— или —
Значение параметра: startIndex или length меньше нуля.

Заметки
Значение параметра startIndex отсчитывается с нуля.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

xob
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 20.11.2005 (Вс) 17:39

Re: Длина текста в TextBox

Сообщение xob » 04.07.2009 (Сб) 18:27

спасибо за подсказки )) ссылка на страничку MSDN была бы правда короче , ну да ладно ))
переделал задачу, убрал всю арифметику , сделал проще отсекать весь текст в TextBox`e после символа "#"

Код: Выделить всё
Imports VB = Microsoft.VisualBasic

Dim vh As Integer
        vh = InStr(TextBox4.Text, "#")
        If vh = 0 Then vh = Len(TextBox4.Text) + 1
        TextBox4.Text = VB.Left(TextBox4.Text, vh - 1)


если текст забит руками все работает но,только вот проблема в TextBox данные идут из БД access и данный код не работает (( кто-нибудь знает в чем загвоздка ?

То есть на выходе из текста в бд "XXXX#XXXX#" в textbox должно попасть "XXXX"

p/s как идея есть добавить еще один TextBox1 и копировать в него текст из TextBox и применять код уже к TetxBox1 (он то по идее не будет связан с бд) .....

Update после шаманства с tetxbox`ми искомый результат достигнут, если кто знает путь проще поделитесь, если не трудно

Dmitry81
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 52
Зарегистрирован: 20.06.2009 (Сб) 0:43
Откуда: Украина, Запорожье

Re: Длина текста в TextBox

Сообщение Dmitry81 » 06.07.2009 (Пн) 14:11

Ну вот возможное решение для дотнета:
оставляет в строке ПЕРВЫЕ N/2-1 символов от начальной строки длиной N
Код: Выделить всё
Function StrTrim(ByVal Origin As String) As String
        Dim ol As Integer = Origin.Length
        Dim l As Integer = ol / 2 - 1
        If l > 0 Then
            StrTrim = Microsoft.VisualBasic.Left(Origin, l)
        Else
            StrTrim = Origin
        End If
        Return StrTrim
    End Function

Может быть легко переделано под другое остаточное число символов. Если надо оставить ПОСЛЕДНИЕ N/2-1 символов, юзаем
Код: Выделить всё
StrTrim = Microsoft.VisualBasic.Right(Origin, l)

xob, подходит?
Из БД сторку загоняем в функцию, а затем результат функции загоняем в ТекстБокс:
Код: Выделить всё
Me.TextBox1.Text=Me.StrTrim(значениезаписиизБД)

и таким образом избегаем всяческого форматирования.
Или еще вариант:
Загоняем значение записи из БД в ТекстБокс, а затем вызываем обработку готового значения в нем самом
Код: Выделить всё
Me.TextBox1.Text=Me.StrTrim(Me.TextBox1.Text)
А.Эйнштейн: Есть две бесконечные вещи - вселенная и человеческая глупость. Хотя, насчет вселенной я сомневаюсь...

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Длина текста в TextBox

Сообщение Nord777 » 06.07.2009 (Пн) 19:42

То есть на выходе из текста в бд "XXXX#XXXX#" в textbox должно попасть "XXXX"

TextBox1.Text = ValueFromDB.Split("#"c)(0)
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 83

    TopList