Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   VB (http://forum.oszone.net/showthread.php?t=30535)

skulida 15-04-2003 22:32 209006

Снова прошу помочь.
Ситуация следующая: есть большой текстовый файл (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

Прошу помочь и указать на ошибку. Что нужно сделать?

SergOst 18-04-2003 20:20 209007

Запусти отладочную печать
debug.print что-нибудь изменяющееся
и посмотри, где, что случилось

strannik2002 26-04-2003 11:24 209008

А DoEvents для чего придумали ?
Этот цикл подвешивает комп сразу.


Время: 04:31.

Время: 04:31.
© OSzone.net 2001-