Страница: 1 |
Страница: 1 |
Вопрос: Тормозня при Open File for Binary
Добавлено: 06.11.04 10:36
Автор вопроса: magish
При открытии большого файла через Open "PATH" for Binary as #1 начинается тормозня. Есть ли API функция или ещё, что-нибудь чтобы небыло тормозов... Очень надо, заранее спасибо...
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #1
Добавлено: 06.11.04 10:45
А ты открывай покусочно в том же бинари, а потом соединяй куски. Вот и все.
Номер ответа: 2
Автор ответа:
magish
Вопросов: 47
Ответов: 47
Профиль | | #2
Добавлено: 06.11.04 11:10
Это как??? я пока так ещ не умею... Подскажите пожалуйста...
Номер ответа: 3
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #3
Добавлено: 06.11.04 12:47
открывай покусочно в том же бинари, а потом соединяй куски
Так будет ещё медленней
Есть CreateFileMapping\MapViewOfFile. Но это хорошо, если не надо одновременно работать со всем объемом файла.
И ещё:
1. Насколько велик файл?
2. Он нужен одновременно весь целиком или нужны определённые куски файла?
Номер ответа: 4
Автор ответа:
magish
Вопросов: 47
Ответов: 47
Профиль | | #4
Добавлено: 06.11.04 13:00
1 - размер файла должен быть любой.
2 - я делаю программу, которая передаёт файлы на другой комп притом, что эту программу юзает не один пользователь, а несколько. Вот и получается, что когда один из Юзеров запрашивает большой файл моя програ виснет и в месте с ней все остальные юзеры. (юзер = пользователь). Так как мен быть подскажите???
Номер ответа: 5
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #5
Добавлено: 06.11.04 17:14
Имхо, просто VB тут не помощник, надо пробовать с API. У меня к сожалению, только один комп, и поэкспериментировать не на чем
Так навскидку несколько моментов:
Если использовать CreateFile\ReadFile, весь файл будет загружен в память (ОЗУ) и потом уже будет проводится работа с ним.
Если использовать CreateFile\CreateFileMapping\MapViewOfFile, то файл в память загружаться не будет, только при перемещении по файлу будут считываться необходимые порции данных
Первый способ хорош для файлов маленькой и средней величины и при необходимости работать со всем файлом сразу
Второй способ лучше при работе с большими файлами и при работе с отдельными частями файла.
Пробуй
Номер ответа: 6
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #6
Добавлено: 09.11.04 08:36
Да при открытии тормозни быть не должно. Я многометровые файлы открывал - никаких тормозов.
Кстати, Open "PATH" for Binary as #1 - не совсем корректно. Лучше примерно так
Dim hFile as Byte
hFile=FreeFile
Open "PATH" for Binary as hFile
От этого тоже могут быть проблемы.
Номер ответа: 7
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #7
Добавлено: 09.11.04 10:22
Скорее всего это от недостатка памяти. А тормозня от записи в своп.