Программирование на 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, Google-бот, PetalBot, Yandex-бот и гости: 7