Как уместить в Text Box больше 64 kb текста?
Private Text()
Private Const LineNum = 15
Private Sub Form_Load()
Dim i
Open "D:\win32api.txt" For Input As #1 Len = 1024
Do Until EOF(1)
i = i + 1
ReDim Preserve Text(i + LineNum)
Line Input #1, Text(i)
Loop
Close #1
With vsbText
.Min = 1
.Max = i
.SmallChange = 1
.LargeChange = i \ 10
End With
End Sub
Private Sub vsbText_Change()
Dim i As Integer
Dim Temp
For i = vsbText.Value To vsbText.Value + LineNum
Temp = Temp + Text(i) + vbCrLf
Next i
txtMain.Text = Temp
End Sub
Дело в том, что элемент Text Box не может показывать текст объемом больше 64 kb
(а иногда это значение может сократиться до 30 kb).
Но эту проблему легко решить, если подгружать необходимые куски текста в Text Box по мере надобности.
Данный код загружает файл любого размера в динамический массив и в зависимости от значения Value Scrool Bar'а показывает в Text Boxe, только определенные куски текста.
Для того, что бы все это работало, вам нужно поместьть на форму Text Box, назвать его txtMain, установить его свойство Multiline как True, а свойство ScroolBars, как 1-Horizontal.
А также рядом с Text Box'ом нарисовать вертикальный Scrool Bar с именем vsbText.
|