1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
| TarasBer |
31.05.2011 11:40
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Мне очень не нравится скорость побайтового чтения - 3МБ файл читается больше секунды, когда дельфовый аналог на BlockRead считывает его моментально.
Всё, что приходит в голову - открыть файл для типа byte, узнать размер, потом открыть файл для массива данного размера и считать за раз.
Но это выдаёт raised STORAGE_ERROR : EXCEPTION_STACK_OVERFLOW (даже после того, как я вместо заведения массива на стеке завёл указатель) Да и мало ли размер файла изменится между первым и вторым открытиями. И вообще много дёргать винт это плохо. Последний вариант - через ВинАПИ, но мне неохота туда лезть. ПС Настраиваемые пакеты во внутреннем блоке - это сильно. Реально круто, я про язык. Сообщение отредактировано: TarasBer - 31.05.2011 12:16 -------------------- |
![]() ![]() |
| TarasBer |
2.06.2011 10:25
Сообщение
#2
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
>Работай с потоками, они умеют.
Да только я не умею... Из описания в книге я так и не понял, как должен выглядеть полный пример использования потока. Я не понял, как и что необходимо закрывать. Ну завёл я F: File_Type, ну открыл файл, ну написал S := Stream(F); В конце что делать с этими S и F? Если бы я работал только с F, то я бы просто написал Close, а тут что надо? С этим S надо что-то делать? И ещё. Я не люблю вручную писать закрытие файла по исключению, и просто писать закрытие в конце тоже не люблю, я вообще считаю, что все подобные вещи должны быть завёрнуты в контролируемый объект (и тут простой РАИИ позволяет делать то, где навороченные, но недетерминированные ГЦ не помогут никак), вплоть до жёсткого контроля на уровне запрета компилятора. Так вот, нету ли стандартного контролируемого потока? -------------------- |
TarasBer Ada BlockRead 31.05.2011 11:40
IUnknown Не подтверждается... В пустом проекте читает трехм... 31.05.2011 14:20
TarasBer Так, я понял. При инициализации шаблона там, в мод... 31.05.2011 14:40
IUnknown Работай с потоками, они умеют. Если правильно орга... 31.05.2011 16:30
IUnknown Нет. Ни файлов, ни потоков контролируемых нет и не... 2.06.2011 12:02
TarasBer А почему именно от 1 до 19? Специально, чтобы не д... 2.06.2011 13:59
IUnknown Очень странно. Воообще-то такое поведение должно б... 2.06.2011 15:37
TarasBer Код такой:
procedure Load_From_File(V: out Vector... 2.06.2011 16:13![]() ![]() |
|
Текстовая версия | 10.12.2025 16:42 |