В известной папке есть 5 бинарных файлов и известными именами!!! Можно ли как то автоматизировать открытие этих файлов!!! Т.е. в цикле открытие и работу с ними...
for(i=0; i<5; i++)
{
1) открыть файл
2) считать данные в массив
3) поработать с данными
4) закрыть файл
}
Здравствуйте, Аноним, Вы писали:
А>В известной папке есть 5 бинарных файлов и известными именами!!! Можно ли как то автоматизировать открытие этих файлов!!! Т.е. в цикле открытие и работу с ними...
А>
А>for(i=0; i<5; i++)
А>{
А>1) открыть файл
А>2) считать данные в массив
А>3) поработать с данными
А>4) закрыть файл
А>}
А>
TFileStream *Stream = new TFileStream("YourFileName", fmOpenRead);//Создаем поток
Byte *Buf;//Буфер для чтенияif ((Buf=(Byte*)malloc(Stream->Size))== NULL)//выделяем память под буфер данныхreturn;
Stream->Read(Buf, Stream->Size);//читаем из файла
Process(Buf);//Ваша обработка данных
Stream->Free();//Освобождаем потокif (realloc(Buf, Stream->Size)==NULL)//освобождаем память буфераreturn;
Re[4]: Поочередное открывание Бинарных файлов!!!
От:
Аноним
Дата:
25.03.05 09:48
Оценка:
Здравствуйте, siniypin, Вы писали:
S>
S> TFileStream *Stream = new TFileStream("YourFileName", fmOpenRead);//Создаем поток
S> Byte *Buf;//Буфер для чтения
S> if ((Buf=(Byte*)malloc(Stream->Size))== NULL)//выделяем память под буфер данных
S> return;
S> Stream->Read(Buf, Stream->Size);//читаем из файла
S> Process(Buf);//Ваша обработка данных
S> Stream->Free();//Освобождаем поток
S> if (realloc(Buf, Stream->Size)==NULL)//освобождаем память буфера
S> return;
S>
ПРоблема не в том как считать из ФАЙЛА!!!!!!!!!!!!
Я пользуюсь например fread , fopen!!!
А проблема заключается в том что в папке 5 файлов а надо их всех поочередно просмотреть!!!!
У Вас проблема с подстановкой имен файлов в цикле???
А если так:
for(i=0; i<5; i++)
{
1) открыть файл ----
TFileStream *Stream = new TFileStream(ArrayOfYourFileNames[i], fmOpenRead);//Создаем поток
Byte *Buf;//Буфер для чтенияif ((Buf=(Byte*)malloc(Stream->Size))== NULL)//выделяем память под буфер данныхreturn;
2) считать данные в массив -----
Stream->Read(Buf, Stream->Size);
3) поработать с данными -----
Process(Buf);//Ваша обработка данных
4) закрыть файл -------
Stream->Free();//Освобождаем потокif (realloc(Buf, Stream->Size)==NULL)//освобождаем память буфераreturn;
S> TFileStream *Stream = new TFileStream("YourFileName", fmOpenRead);//Создаем поток
S> Byte *Buf;//Буфер для чтения
S> if ((Buf=(Byte*)malloc(Stream->Size))== NULL)//выделяем память под буфер данных
S> return;
S> Stream->Read(Buf, Stream->Size);//читаем из файла
S> Process(Buf);//Ваша обработка данных
S> Stream->Free();//Освобождаем поток
S> if (realloc(Buf, Stream->Size)==NULL)//освобождаем память буфера
S> return;
S>
Поздравляю, вы вызвали UB. Более экзотического способа освобождать память буфера я еще не встречал. Мало того, что через realloc, так еще и обращаемся к свойству свежеубитого объекта. О времена, о нравы...
... << RSDN@Home 1.1.4 beta 4 rev. 347>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Аноним, Вы писали:
А>Я пользуюсь например fread , fopen!!! А>А проблема заключается в том что в папке 5 файлов а надо их всех поочередно просмотреть!!!!
У-у-у... Слов нет FindFirst(),FindNext(),FindClose(). Ctrl+F1 для более подробного ознакомления....
Здравствуйте, <Аноним>, Вы писали: А>ПРоблема не в том как считать из ФАЙЛА!!!!!!!!!!!! А>Я пользуюсь например fread , fopen!!! А>А проблема заключается в том что в папке 5 файлов а надо их всех поочередно просмотреть!!!!
Здравствуйте, Аноним, Вы писали:
А>Ты что не видишь что решения до сих пор нету?!
Так и задачи тоже! Что вообще интересует:
— очередность при открытии файлов? — всевозможные циклы это решают ( хотя сомневаюсь что именно это интересовало)
— Работа с бинарными файлами? — тут начиная от API CreateFile|ReadFile|CloseHandle, продолжая сишными (с++) fopen, fread, fclose (если не ошибаюсь), и заканчивая билдеровскими примочками решений куча
— Алгоритмы работы с конкретными типами файлов? — так хотя бы их название типа файлов тогда....
Как видно для каждого пункта кроме третьего есть куча решений. Если интересно собственно детализация решения, то нужно задавать вопрос в соответствующем контексте.
Вот пример нормального вопроса, на который будут ответы по существу:
Название вопроса: Работа с бинарными файлами на Билдере
Содержание вопроса: Какой самый эффективный метод для сабжа?
Здравствуйте, <Аноним>, Вы писали:
А>Сам ты ЮМОР!! Ты что не видишь что решения до сих пор нету?!
такому учат в 9 классе на ин-тике
смотри
создаешь массив с именами файлов от 1 до 5 и просто работаешь а i используешь в качестве индекса элемента в массиве.
Счастье, это когда множество желаний есть подмножество множества возможностей.... (с)студенты ВМиК
"Если бы не было колобка, его следовало бы придумать..."
Здравствуйте, AlexEagle, Вы писали:
AE>Здравствуйте, ZetRooT, Вы писали:
ZRT>>Здравствуйте, AlexEagle, Вы писали:
AE>>>ИМХО, в юмор ZRT>>в "орешник"
AE>Дык а я о чем ( здесь правда только юмор )
ну можно на delphimaster.ru запостить
Счастье, это когда множество желаний есть подмножество множества возможностей.... (с)студенты ВМиК
"Если бы не было колобка, его следовало бы придумать..."