Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / операции с текстом / 3 сообщений из 3, страница 1 из 1
25.02.2011, 13:11
    #37135681
29531408
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
операции с текстом
Дано два поля RichTextBox1 и RichTextBox2
В RichTextBox1 может быть ~2000 записей, в RichTextBox2 ~3(это только примерно, числа разные могут быть)
Нужно строку RichTextBox1 добавить к строке RichTextBox2 но так, чтоб на первую строку RichTextBox2 приходилось не более 300 строк из поля RichTextBox1
То есть:
RichTextBox1 RichTextBox2
00000000000 11111111111
99999999999 22222222222
88888888888 33333333333
77777777777
66666666666
55555555555
44444444444
и т.д.(до 2000)
Делаем чтоб было в RichTextBox3:
00000000000 11111111111
99999999999 11111111111
88888888888 11111111111
и так до 300 вариантов, потом переходим к строке 2 но не с начала списка RichTextBox1 а с того места где остановились, то есть с 300 строки
Как это сделать?

Private Sub RichTextBox1_Change()
Dim ctroki1 As Long
ctroki1 = SendMessageLong(RichTextBox1.hwnd, EM_GETLINECOUNT, 0&, 0&)
Label3.Caption = ctroki1
End Sub

Private Sub RichTextBox2_Change()
Dim ctroki2 As Long
ctroki2 = SendMessageLong(RichTextBox2.hwnd, EM_GETLINECOUNT, 0&, 0&)
Label2.Caption = ctroki2
End Sub

так я получаю кол-во строк.. нужно еще заранее определить, хватит ли нам записей в RichTextBox2 на все варианты с поля RichTextBox1 и записать сколько еще нужно добавить строк в RichTextBox2
Помогите пожалуйста
...
Рейтинг: 0 / 0
27.02.2011, 00:25
    #37137857
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
операции с текстом
29531408,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
' надо ли добавлять строки в RichTextBox2
Const ne_bolee&= 300 
Dim dobavka&

dobavka = CLng(Label2.Caption) -  300  * CLng(Label3.Caption)
' было бы удобнее объявить переменные ctroki1 и ctroki2 на уровне модуля - 
' тогда бы не пришлось извращаться с надписями

If dobavka >  0  Then
dobavka = dobavka \ ne_bolee - (dobavka Mod ne_bolee >  0 )
MsgBox "В RichTextBox2 добавить бы надо " & dobavka & " строк(и,у)"
End If
продолжение следует ...
...
Рейтинг: 0 / 0
27.02.2011, 02:11
    #37137905
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
операции с текстом
29531408,
продолжение
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
' переменные ctroki1 и ctroki2 объявлены на уровне модуля и содержат
' количество строк в RichTextBox1 и RichTextBox2 соответственно

' константа ne_bolee объявлена в предидущем посте

Dim v_gruppe&, izbytok As Boolean
Dim lngK&, lngN&, lngT&
Dim lines1$(), lines2$()

v_gruppe = ctroki1 \ ctroki2

If ctroki1 Mod ctroki2 + v_gruppe <= ne_bolee Then 
  izbytok = True
Else
  v_gruppe = v_gruppe +  1 
End If

lines1 = RichTextBox1.Lines
lines2 = RichTextBox2.Lines
ctroki2 = ctroki2 -  1 

On Error Resume Next
For lngN =  0  To v_gruppe -  1 
  For lngK =  0  To ctroki2
    lngT = lngN + lngK * v_gruppe
    lines1(lngT) = lines1(lngT) & " " & lines2(lngK)
  Next lngK
Next lngN
On Error GoTo  0 

If izbytok Then
  For lngN = (ctroki2 +  1 ) * v_gruppe To ctroki1 -  1 
    lines1(lngN) = lines1(lngN) & " " & lines2(ctroki2)
  Next lngN
End If

RichTextBox1.Lines = lines1
Erase lines1, lines2
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / операции с текстом / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]