Member 13563162 Ответов: 2

Как разделить строку на три части ?


Я хочу разделить строку на три части. Я использую следующий код.
dim length1 as string
dim length2 as string
dim lenght3 as string
length1=Mid$(Text1.text,1,30)
length2=Mid$(Text1.text,30,70)
length3=Mid$(Text1.text,70,100)
msgbox length1
msgbox lenght2
msgbox length3


msgbox 2 показывает мне длину 11,30. Почему?

Что я уже пробовал:

Что случилось с моим кодом? я знаю, что середина$ начинается слева от строки.

Member 13563162

Как я могу это сделать в visual basic 6 ?

Member 13563162

я уже завершил все свои проекты, кроме этой темы, пожалуйста, помогите мне

Member 13563162

я хочу сделать это с помощью функции Mid$, а не только Split$

Member 13563162

Предположим, что text1 содержит 100 символов. Я хочу , чтобы msgbox 1 показывал от 1 до 30 символов, msgbox 2-от 31 до 70 символов, а msgbox 3-от 71 до 100 символов.Спасибо

2 Ответов

Рейтинг:
2

Maciej Los

Как Greeme_Grant[^] упомянуто в комментарии к вашему вопросу, Mid функция сделает это. Проверить это:

Sub Test()
Dim myText As String
Dim tlength As Integer
Dim divider As Integer
Dim counter As Integer

myText = "Begin. Very long string. Lorem ipsusm. Lorem ipsum. Lorem ipsum. Very long string. End."
tlength = Len(myText)
divider = tlength / 3
counter = 1

Do While counter <= tlength
    'if counter + divider > tlength then
    MsgBox Mid(myText, counter, divider)
    counter = counter + divider
Loop

End Sub


Рейтинг:
1

Graeme_Grant

//
// Summary:
//     Retrieves a substring from this instance. The substring starts at a specified
//     character position and has a specified length.
//
// Parameters:
//   startIndex:
//     The zero-based starting character position of a substring in this instance.
//
//   length:
//     The number of characters in the substring.
//
// Returns:
//     A string that is equivalent to the substring of length length that begins at
//     startIndex in this instance, or System.String.Empty if startIndex is equal to
//     the length of this instance and length is zero.
//
// Exceptions:
//   T:System.ArgumentOutOfRangeException:
//     startIndex plus length indicates a position not within this instance.-or- startIndex
//     or length is less than zero.
[SecuritySafeCritical]
public String Substring(int startIndex, int length);
//
// Summary:
//     Retrieves a substring from this instance. The substring starts at a specified
//     character position and continues to the end of the string.
//
// Parameters:
//   startIndex:
//     The zero-based starting character position of a substring in this instance.
//
// Returns:
//     A string that is equivalent to the substring that begins at startIndex in this
//     instance, or System.String.Empty if startIndex is equal to the length of this
//     instance.
//
// Exceptions:
//   T:System.ArgumentOutOfRangeException:
//     startIndex is less than zero or greater than the length of this instance.
public String Substring(int startIndex);


Так...

Dim length1 as string
Dim length2 as string
Dim lenght3 as string
length1 = Text1.text.Substring(0, 9)
length2 = Text1.text.Substring(10, 19)
length3 = Text1.text.Substring(20, 29)


Member 13563162

как я могу сделать это в visual bsaic6 ?

Graeme_Grant

VB6 мертв, так предполагалось VB.Net -да ... здесь: vb6 split string - поиск в Google[^]

Member 13563162

я уже завершил все свои проекты, кроме этой темы, пожалуйста, помогите мне

Graeme_Grant

Ссылка в моем последнем комментарии должна содержать ваш ответ.

Member 13563162

я хочу сделать это с помощью функции Mid$, а не только Split$

Member 13563162

Предположим, что text1 содержит 100 символов. Я хочу , чтобы msgbox 1 показывал от 1 до 30 символов, msgbox 2-от 31 до 70 символов, а msgbox 3-от 71 до 100 символов.Спасибо

Graeme_Grant

МИД сделает это. Просто вычислите точки останова...

Dim width = Len(Text1.text) / 3