![]() |
|
![]() ![]() ![]() |
|
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 18 Всего: 154 |
||||
|
||||
W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 2 Всего: 121 |
У автора исходник на Си.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Данные нужно грузить целиком, ну или хотя бы подряд. Многочисленные fseek в коде очищают буфер чтения файла, следующий fscanf закачивает буфер (что гораздо больше, чем ему удасться прочесть до следующего fseek)
В результате всякая буферизация отсуствует, а файл читается С библиотекой МНОГОКРАТНО. |
|||
|
||||
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
подскажите пож-та как конкретно загружать файл блоками (какими именно) и главное как потом работать с данным массивом посимвольно...
я делал так:
большой разницы с пред. вариантом (с fseek-ами) по скорости нет... |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Про fscanf забудьте (и про все семейство scanf)
Читать надо с помощью fread, обрабатывать строковыми функциями (str* и/или mem*) |
|||
|
||||
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
хотелось бы конкретный пример, позволяющий в дальнейшем оперировать с каждым символов файла...
|
|||
|
||||
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
почему при варианте №2 9-ый столбец считанных из файла данных получается верным, а при варианте №1 тот же столбец (но под №8, так как данные записываются с [0][0] …– а как сделать запись с использованием fread, начиная с произвольного № элемента массива (mas)???) записывается неверно…. Мне надо скачать из бинарного файла и записать в массив 40000(например) строк по 16 байт (символов) в каждой строке… Это сообщение отредактировал(а) gordmiand - 26.6.2009, 19:11 |
|||
|
||||
xvr |
|
||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Потому что в С (и в С++) массивы индексируются с 0. Вариант 2 у вас в принципе неправильный - происходит переполнение по 2му индексу массива (индекса 16 быть не может - максимум 15)
|
||||||||
|
|||||||||
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
понятно...а что значит "к массиву надо потом правильно обращаться (это не Pascal!)"?
чем мой вывод значений массива из примера выше неверен? |
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Индексы начинаются с 0, в Pascal с 1 (по умолчанию)
|
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |