TextBox - Быть или не быть ?

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

TextBox - Быть или не быть ?

Сообщение alleonid » 22.08.2005 (Пн) 3:43

Ув. участники!
Имею вопросы.

1) Можно ли в текстах переменных использовать нижний и верхний индексы? Если да, то как записать "K10" , где 10 – индекс?

2) В элементе TextBox имеется текст, "разорванный" пустыми строчками – как показано ниже.

этомойтекст этомойтекст этомойтекст
этомойтекст этомойтекст

этомойтекст этомойтекст этомойтекст
этомойтекст



этомойтекст этомойтекст



Нужно написать процедуру, эти строчки удаляющую, типа, чтобы было:

этомойтекст этомойтекст этомойтекст
этомойтекст этомойтекст
этомойтекст этомойтекст этомойтекст
этомойтекст
этомойтекст этомойтекст


Ну, понятно что цикл, да вот неясно, как к примеру идентифицировать пустую строку If … - что иф? И потом Then – и что зен? - как ее, пустую строчку удалить, чтобы ее небыло? И последнее – число строчек в TextBox как посчитать?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 22.08.2005 (Пн) 3:54

Ы...

Для индексов бери richtextbox.
Для замены пустых строк - replace(text, vbnewline & vbnewline, vbnewline), пока не перестанет изменяться.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

alleonid
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 14.07.2005 (Чт) 7:01

Сообщение alleonid » 22.08.2005 (Пн) 4:14

Спасибо, спасибо, сэр.
Но со скидкой на мою природную тупость не могли бы Вы пояснить
1) Что такое richtextbox? Это элемент которого нет в стандартном наборе, или какая то опция обычного TextBox?
2) И вот это replace(text, vbnewline & vbnewline, vbnewline) - не могли бы чуточку поподробнее?

GSerg писал(а):Для индексов бери richtextbox.
Для замены пустых строк - replace(text, vbnewline & vbnewline, vbnewline), пока не перестанет изменяться.

alleonid
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 14.07.2005 (Чт) 7:01

Сообщение alleonid » 22.08.2005 (Пн) 4:37

Да, вот, еще один вопрос.
В VBA и других подобных языках я частенько для узнавания тех или иных команд использую запись интерактивных действий (включаю запись макроса, что то делаю, потом разбираюсь с записанным кодом).
Можно ли в VB практиковать нечно подобное? К примеру, запускать Run = >Start и выпонять некие действия методом тыка, а потом смотреть что этим действиям соответствует?

alleonid
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 14.07.2005 (Чт) 7:01

Сообщение alleonid » 22.08.2005 (Пн) 4:43

RichTextBox я добавил.
Вопрос - при написании программы с использованием данного элемента нужно ли впоследствии что то куда то добавлять для работы под другим Windows или нет? То есть будет ли программа самодостаточной, или у какого либо другого ползователя она может отказаться работать?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 22.08.2005 (Пн) 5:06

1. В VB нет системы макросов. Методом тыка не получится, нужно лезть в MSDN :)
2. Насчет Replace:
Visual Basic писал(а):Find and replace a substring within a string
, поэтому надо написать нечто вроде этого:
Код: Выделить всё
Dim OldText as string, NewText as string

newtext=richtextbox1.text

do
oldtext=newtext
newtext=replace(oldtext,vbnewline & vbnewline,vbnewline)
loop while oldtext<>newtext

richtextbox1.text=newtext

3. Microsoft Rich Textbox - компонент от Microsoft, входящий в стандартную поставку поэтому конкретно его не надо распространять с приложением. Его может не быть разве что в древних версиях (Win95?).

alleonid
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 14.07.2005 (Чт) 7:01

Сообщение alleonid » 22.08.2005 (Пн) 5:32

Где можно найти информацию по командам richtextbox (в интернете).
Как к примеру выглядит нижний или верхний индекс?

alleonid
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 14.07.2005 (Чт) 7:01

Сообщение alleonid » 22.08.2005 (Пн) 6:05

А между прочим, куда что пихать то?
Вложения
example.rar
(1.34 Кб) Скачиваний: 24

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 22.08.2005 (Пн) 6:22

Private Sub Command1_Click()
Dim OldText As String, NewText As String

NewText = Text1.Text

Do
OldText = NewText
NewText = Replace(OldText, vbNewLine & vbNewLine, vbNewLine)
Loop While OldText <> NewText

Text1.Text = NewText

End Sub

Private Sub Form_Load()
Dim StrX As String

StrX = "это текст который нужно модернизировать" & vbCrLf & _
"гребаные пробелы нужно просто уплотнить" & vbCrLf & _
"" & vbCrLf & _
"" & vbCrLf & _
"" & vbCrLf & _
"это - образец произвольного текста, который нужно уплотнить" & vbCrLf & _
"" & vbCrLf & _
"" & vbCrLf & _
"гребаные пробелы нужно просто уплотнить" & vbCrLf & _
"гребаные пробелы нужно просто уплотнить" & vbCrLf & _
"" & vbCrLf & _
"это - образец произвольного текста, который нужно уплотнить" & vbCrLf & _
""

Text1.Text = StrX

End Sub

alleonid
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 122
Зарегистрирован: 14.07.2005 (Чт) 7:01

Сообщение alleonid » 22.08.2005 (Пн) 6:59

Сенкс Amed, смышленыш.
Ты крут!

max-aziat
Обычный пользователь
Обычный пользователь
 
Сообщения: 98
Зарегистрирован: 13.06.2005 (Пн) 13:41
Откуда: Таджикистан

Сообщение max-aziat » 22.08.2005 (Пн) 14:27

тота он же бауманец
не всё сразу дается ...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 22.08.2005 (Пн) 14:29

Amed, лучше не текст, а длину текста.
Код: Выделить всё
Do Until L = Len(Text)
L = Len(Text)
Text = Replace(...)
Loop
Lasciate ogni speranza, voi ch'entrate.

CodeName33
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 297
Зарегистрирован: 01.09.2004 (Ср) 13:25
Откуда: SPb

Сообщение CodeName33 » 22.08.2005 (Пн) 14:35

Amed

Microsoft Rich Textbox - компонент от Microsoft, входящий в стандартную поставку поэтому конкретно его не надо распространять с приложением. Его может не быть разве что в древних версиях (Win95?).


Неа, в 98 его тоже нет (в смысле DLL есть, OCX'а нет, если только через API его создавать...)
Программисты не глючат - глючат компиляторы...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 22.08.2005 (Пн) 14:44

alibek, верно :)

CodeName33, не спорю. 98-й видел последний раз года 4 назад.
Именно его я к древним версиям и приписал.


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

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

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

    TopList