Работа с файлами с произвольным доступом

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

Работа с файлами с произвольным доступом

Сообщение Smoke865 » 24.06.2005 (Пт) 15:35

Пожалуйста откликнитесь! Не буду писать, что пробовал сделать, так как раз не работает, значит лажу писал, но есть большая проблема.
Например есть 10 произвольных файлов и информацией. Необходимо загнать все в один, чтобы можно было вызвать информацию по идентификатору записи. Проблема у меня при записи (возможно и при чтении, но до этого еще не доплыл). Вые время выдает неверный тип (Err 58). Пробовал всеми известными мне способами, но без толку. Хелп!!!

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 24.06.2005 (Пт) 15:38

читай файлы в массивы типа byte и записывай эти массивы в один файл.

dim f as integer
f = freefile
Open "File.any" for Binary as f
' Чтение или запись
close f
ХЎ

Smoke865
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 20.06.2005 (Пн) 17:10

Сообщение Smoke865 » 24.06.2005 (Пт) 15:44

Если я правильно понял, то запись записью, а вот как быть с идентификаторами? Это прийдется весь файл перебирать? Если так, то не выйдет, будет жутко лагать, так как файл порядка 25 мб...

val
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 168
Зарегистрирован: 14.11.2002 (Чт) 1:14

Сообщение val » 24.06.2005 (Пт) 15:44

Ты бы хоть код выставил....
А то "Найдите мне ошибку...."

Smoke865
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 20.06.2005 (Пн) 17:10

Сообщение Smoke865 » 24.06.2005 (Пт) 15:50

val писал(а):Ты бы хоть код выставил....
А то "Найдите мне ошибку...."

Вот пожалуйста код:
Код: Выделить всё

'id - id файла
'в text(id) данные из файла уже записаны и перебирается массивом
nfile = FreeFile
Open "d:\smoke\base.dat" For Random As #nfile
Put #nfile, id, text(id)
Close #nfile

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 24.06.2005 (Пт) 16:06

Рандом нах?
ХЎ

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 24.06.2005 (Пт) 16:08

И что за идентификаторы? Положи в файл сначала длинны всех масивов, затем при чтении ты будешь знать какой размер информации для каждого файла считывать.
ХЎ

Smoke865
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 20.06.2005 (Пн) 17:10

Сообщение Smoke865 » 27.06.2005 (Пн) 10:52

d3drm писал(а):И что за идентификаторы? Положи в файл сначала длинны всех масивов, затем при чтении ты будешь знать какой размер информации для каждого файла считывать.

Если не очень сложно, можешь написать пример???


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 172

    TopList