Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > VB6 > зависание программы |
Автор: skulida 15.4.2003, 22:24 |
Снова прошу помочь. Ситуация следующая: есть большой текстовый файл (4 Мб). Мне нужно вырезать определенные текстовые блоки начинающиеся определенными симолами. Каждый из этих блоков нужно записать в переменную и поместить в массив, чтобы затем перемешать блоки в произвольном порядке. написанный мною код вырезания блоков почему-то виснит при обработке большого n. Т.е. если n = 30 работает , а если 3000 программа виснит RichText1.Text = "" b = 0 n = Ubound(TempString)' посчитали количество блоков (выше) k = 1 For i = 1 To n a = InStr(k, myString, "&START!") 'ищем вхожднние If a = 0 Then Exit Sub 'если нет выходим b = InStr(a, myString, "&END!") 'ищем окончания блока k = b c = Mid(myString, a, (b + 4 - a)) 'вырезаем блок RichText1.Text = RichText1.Text + c & Chr(13) & Chr(10) & Chr(10) Next i Прошу помочь и указать на ошибку. Что нужно сделать? |
Автор: man2002ua 17.4.2003, 10:18 |
Может переполняется RichEdit1? Попробуй запустить при n=3000, но закомментируй строку: RichText1.Text = RichText1.Text + c & Chr(13) & Chr(10) & Chr(10) |
Автор: Trojan Lord 17.4.2003, 14:59 |
сочерание (Chr(13) & Chr(10)) можно заменить на vbNewLine |
Автор: Trojan Lord 17.4.2003, 14:59 |
сочетание (Chr(13) & Chr(10)) можно заменить на vbNewLine |
Автор: Guest 18.4.2003, 13:58 | ||
да действительно, убрал RichText1 и все заработало. Спасибо |
Автор: Badjo 2.6.2003, 14:41 |
А ты не пробовал занимаится объявлением переменных? Частенько помогает |