Считывание строк из Label ' а

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

Считывание строк из Label ' а

Сообщение Rostik Ultra (2) » 12.05.2005 (Чт) 5:48

Есть Label - в нём меняющийся текст на несколько строк

Как каждую из строк ( верхнюю, по середине и нижнюю ) считать в отдельные переменные :?:

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 12.05.2005 (Чт) 6:56

Привет! Если лейбл не твой, то никак... =)

а если твой то вот так:

Код: Выделить всё

Private Sub Form_Load()
Label1.Caption = "string #1" + vbCrLf + "string #2"
arr = Split(Label1.Caption, vbCrLf)
MsgBox "Первая строчка: " + arr(0) + vbCrLf + "Вторая строчка: " + arr(1)
End Sub
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

Сообщение Rostik Ultra (2) » 12.05.2005 (Чт) 7:24

Jenizix писал(а):Привет! Если лейбл не твой, то никак... =)

а если твой то вот так:

Код: Выделить всё
Private Sub Form_Load()
Label1.Caption = "string #1" + vbCrLf + "string #2"
arr = Split(Label1.Caption, vbCrLf)
MsgBox "Первая строчка: " + arr(0) + vbCrLf + "Вторая строчка: " + arr(1)
End Sub


Label мой

И в нём сплошной текст , считываемый из файла , без всяких vbCrLf

Из-за разности длины слов в строчках разное количество символов , мне и нужно считать содержание строчек в переменные

Jenizix
Географ
Географ
Аватара пользователя
 
Сообщения: 545
Зарегистрирован: 20.04.2004 (Вт) 20:52
Откуда: Москва

Сообщение Jenizix » 12.05.2005 (Чт) 20:32

Ааааа!, поищи на форуме Sources.Ru там вроде нашли выход, нужно считать пиксели и т.п.
Ушел в себя, вернусь не скоро...

Если вам нужно сделать прозрачной только форму, а контролы на ней нет, то вам сюда!!!

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 12.05.2005 (Чт) 22:03

А что тебе TextBox-то не подходит? Если проблема в Lock, то просто сабклась его по все WM'ки и всё...
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

Сообщение Rostik Ultra (2) » 13.05.2005 (Пт) 2:11

Jenizix писал(а):Ааааа!, поищи на форуме Sources.Ru там вроде нашли выход, нужно считать пиксели и т.п.


А напряжение в розетке не посчитать :?: :?

Dim stroka As String
Dim retval

stroka = Label1.Caption
retval = Split(stroka, vbNewLine)
MsgBox UBound(retval)

Этот код хорошо считает количество символов в строке но не считает количество строк

Кстати , програмеры , мне ведь нужно не просто посчитать количество строк в label , мне ещё КАЖДУЮ ИЗ НИХ считать в переменные

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 13.05.2005 (Пт) 3:51

Rostik Ultra (2)

Вообще этот код считает именно строки разделенные Ентером.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

Сообщение Rostik Ultra (2) » 13.05.2005 (Пт) 4:09

FAKK2 писал(а):Rostik Ultra (2)

Вообще этот код считает именно строки разделенные Ентером.


Ну... а как в label посчитать , он же их как то разделяет

snov
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 176
Зарегистрирован: 28.11.2003 (Пт) 10:12
Откуда: Челябинск

Сообщение snov » 13.05.2005 (Пт) 6:19

Тогда считай TextWidth от слов, сперва одно, потом два и т.д. как только TextWidth> Label1.Width в первую строку попадают выбраные слова минус последнее т.д. Думаю разберешся

Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

Сообщение Rostik Ultra (2) » 13.05.2005 (Пт) 7:20

snov писал(а):Тогда считай TextWidth от слов, сперва одно, потом два и т.д. как только TextWidth> Label1.Width в первую строку попадают выбраные слова минус последнее т.д. Думаю разберешся


Это я ваще-то и до этого знал ... просто у меня текст будет считываться при малом значении таймера , а эти манипуляции будут тормозить процесс, поэтому я хотел какой-нибудь более изящный и быстрый способ ( чтобы автоматически )

Rostik Ultra (2)
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 159
Зарегистрирован: 10.05.2005 (Вт) 2:41
Откуда: Антарктическая республика

Сообщение Rostik Ultra (2) » 13.05.2005 (Пт) 7:23

BV писал(а):А что тебе TextBox-то не подходит? Если проблема в Lock, то просто сабклась его по все WM'ки и всё...


Чё там с Text Box ... Объясни плз ...


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 151

    TopList