Прямой доступ к файлу

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
lesya_anyone
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 24.03.2011 (Чт) 17:59

Прямой доступ к файлу

Сообщение lesya_anyone » 24.03.2011 (Чт) 18:09

Дорого времени суток)
У меня возникла проблема при прямом доступе к файлу. Есть файл .txt, в каждой строке - по 3 числа, длина строки везде разная.
Строки нужно считывать в неопределенном порядке, это нужно для алгоритма.
Пример строки:
12253.08 2471.72 236.00517864548
4208.069999 2553.148 260.00000013561
4289.3327262828 2553.148 259.88554081346

При открытии файла нужно задать размер стандартной строки
Код: Выделить всё
Open "c:\tmp.mmm" For Random As #1 Len = Len (tmprec)

а для чтения этот размер как раз и учитывается
Код: Выделить всё
Get #номер_файла, [<номер_записи>], <переменная>

Как задать размер строки?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Прямой доступ к файлу

Сообщение Хакер » 24.03.2011 (Чт) 18:51

Зачем вообще хранить в текстовом виде?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

lesya_anyone
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 24.03.2011 (Чт) 17:59

Re: Прямой доступ к файлу

Сообщение lesya_anyone » 25.03.2011 (Пт) 9:27

Текстовый файл - входное условие. В нем содержится регулярная сетка.
Для работы алгоритма требуется обращаться к нему постоянно, но размер файла может оказаться большим...
Я мотаюсь между двумя вариантами (не знаю что хуже):
1- использовать структуру, хранящую 3 значения (xyz), и каждый элемент записать в ячейку двумерного массива (может оказаться довольно много, и работать с таким массивом будет требовать много времени)
2- использовать прямой доступ к файлу - в этом случае файл в памяти висеть не будет, но операции ввода/вывода всегда занимают много времени....

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Прямой доступ к файлу

Сообщение iGrok » 25.03.2011 (Пт) 13:57

Ну, если файл ОЧЕНЬ большой, и постоянно требуются разные куски информации, можно как вариант при запуске распарсить файл, и составить массив смещений до каждой строки. Можно, конечно, и сразу составить массив данных. Он тоже будет занимать меньше места, чем строки.

В любом случае, чтобы получить рандомную строку из файла, надо знать её смещение в файле.
label:
cli
jmp label

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Прямой доступ к файлу

Сообщение Debugger » 25.03.2011 (Пт) 18:50

Если файл не меняется, можно хранить отдельно таблицу смещений.


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

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

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

    TopList