Срочно нужен совет. Скорость обработки текстового файла.

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

Срочно нужен совет. Скорость обработки текстового файла.

Сообщение igor_m » 17.04.2004 (Сб) 21:56

Как быстрее всего обработать текстовый файл? 10-20 тыс. строк. Поскольку чтение мелкими кусками - медленная операция, как я давно убедился, проще считать весь файл одним куском, а потом уже обрабатывать. Вопрос: если я побью его на коллекцию строк Split - ом, какое MAX количество элементов (фактически строк файла) может быть в коллекции? И насколько будет быстрой работа с коллекцией - может считывать последовательным доступом, поскольку длина строк разная и это будет быстрей?
Дайте пожалуйста совет, кто знает. Попросту интересует вопрос - как быстрей считать и обработать текстовый файл?

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

Сообщение GSerg » 18.04.2004 (Вс) 5:40

Код: Выделить всё
Dim Lines() As String
Lines = Split(Input$(LOF(FileNumber), FileNumber), vbNewLine)

Это не коллекция, это массив.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

igor_m
Постоялец
Постоялец
 
Сообщения: 343
Зарегистрирован: 22.03.2002 (Пт) 12:40

Сообщение igor_m » 18.04.2004 (Вс) 7:15

Шаман, спасибо. А я бил его именно на коллекцию. Да, массив это правильнее.

igor_m
Постоялец
Постоялец
 
Сообщения: 343
Зарегистрирован: 22.03.2002 (Пт) 12:40

Сообщение igor_m » 18.04.2004 (Вс) 9:29

GSerg! Еще подскажи, пожалуйста.

Считал я файл в массив. Он получился определенного размера. Чтобы заново считать в него файл другого размера, как мне его переопределить? Опять

Dim Lines() As String

И так перед каждым считыванием? Но он уже определен. ReDim я же тоже не могу сделать - размер нового массива я заранее не знаю. Как тут быть?

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

Сообщение areh » 18.04.2004 (Вс) 9:52

переопределять массив не надо, ты его объявляешь только один раз, а потом тебе функция SPLIT возвращает массив, причем размер массива она меняет сама...

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

Сообщение GSerg » 18.04.2004 (Вс) 11:46

Для верности можно сделать erase lines...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


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

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

Сейчас этот форум просматривают: AhrefsBot, С.Т. и гости: 15

    TopList