Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492

Скачать с CD/DVD инфо в битах.

05.05.2010, 00:21. Показов 2763. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем! Задача состоит в том чтоб из CD/DVD лаз. диска перенести(скачать) всю информацию(биты), в RichEdit. Скачать именно в битах!!! Плиз.

Добавлено через 23 часа 56 минут
Пож. подскажите с чего начинать, может битный поток с шлейфа считывать, или другой подход?
в if (OpenDialog1->Execute()) выбирает только один файл, а как выбрать все файлы?

Да и по инету много дней копал, всё пусто.

Добавлено через 3 часа 12 минут
В OpenDialog изменил ofAllowMultis false на true, Ctrl-A выделяю всё, но проблема с папками.
На них ругается, если без них то выводит в RichEdit1:
Code
1
яыРЈ—yтYєЖКҐ3ТjB·†е.аЫ$ЉхОТђћВ^•ЦЄЯfЌђI§©bfЮ№¤nСэCuЦљdЗЊ
а мне надо 10.....биты
Code
1
2
3
4
5
6
7
if (! OpenDialog2->Execute())         //åñëè áûë îòêðûò
 return;//ïîëüçîâàòåëü íàæàë êíîïêó îòìåíà
   for(int i = 0; i < OpenDialog2->Files->Count; i++)
    {
      ListBox1->Items->Add(OpenDialog2->Files->Strings[i]);
    }
   RichEdit1->Lines->LoadFromFile(OpenDialog2->FileName);
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.05.2010, 00:21
Ответы с готовыми решениями:

определить тип носителя (hdd/usb/cd/dvd/dvd-ram/hd dvd/blue ray)
всем доброго вечера. собственно вопрос в сабже. вариант, определять сабж по типу ФС не катит. какие есть варианты? всем спасибо.

DVD-ROM перестал видеть DVD-R диски, а DVD+R видит
DVD-ROM перестал видеть DVD-R диски, а DVD+R видит. Подскажите пожалуйста как решить проблему.

DVD-ROM не записывает диски DVD-R и -DVD-RW, а только CD.
Доброго времени суток.У меня случилась проблема, это то что DVD-ROM не записывает диски DVD-R и -DVD-RW, а только CD.Раньше проблемы не...

26
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
05.05.2010, 13:15
C++
1
RichEdit1->Lines->LoadFromFile(OpenDialog2->FileName);
Не текстовый файл у вас загрузить не получится таким способом. Большинство компонентов способны выводить только текстувую информацию. Посмотрите в справке от "Билдера" следующие статьи:
FileWrite
FileRead
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
05.05.2010, 17:49  [ТС]
FileRead, судя по названию на верно это то что мне надо, буду смотреть по инету, если кто работал подскажите как FileRead реализовать?
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
05.05.2010, 18:14
Посмотрите в справке от "Билдера" следующие статьи:
FileRead
Сделайте это пожалуйста.
А вот сам пример:
C++
1
2
3
4
5
6
7
8
9
 
TMemoryStream *str=new TMemoryStream;
 str->LoadFromFile("E:\\test.exe"); //Файл, который мы загружаем
 char *buffer;
 buffer=new char[str->Size];
 str->ReadBuffer(buffer,str->Size); //Считаваем информацию
 delete str;
 RichEdit1->Text=buffer; //Выводим в RichEdit1
 delete [] buffer;
Добавлено через 2 минуты
Хм..... в RichEdit не выводит.
1
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
05.05.2010, 18:30  [ТС]
Сейчас под рукой диск с mp3
ругается на
Code
1
str->LoadFromFile("E:\\001 Snap-The power");
cannot open fale
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
05.05.2010, 18:39
А где расширение файла в имени?

Добавлено через 16 секунд
Это тоже часть имени!

Добавлено через 5 минут
Вот рабочий код, только загружать один файл будет долго:
C++
1
2
3
4
5
6
7
8
9
10
11
12
TMemoryStream *str=new TMemoryStream;
 str->LoadFromFile("E:\\test.exe");
 char *buffer;
 buffer=new char[str->Size];
 str->ReadBuffer(buffer,str->Size); 
 
 //RichEdit1->Text=buffer; 
 for(int i=0;i<str->Size;i++){
 RichEdit1->SelText=buffer[i];
 Application->ProcessMessage();
 }
 delete [] buffer;   delete str;
Его отличие в том, что в RichEdit информацию,в этот раз, мы записываем по байтово.
1
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
05.05.2010, 18:39  [ТС]
О сори! Теперь выводит в RichEdit1 только це яы°
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
05.05.2010, 18:44
Код выше избавлен от этого.

Добавлено через 2 минуты
Внимание!!! Данный код не переваривает большие файлы. Точнее: переваривает, только очень долго.
1
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
05.05.2010, 18:49  [ТС]
А можно его как то использовать для вывода двоичного кода?
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
05.05.2010, 18:51
Незнаю.
1
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
05.05.2010, 19:11  [ТС]
Ni'Tan - Всё равно спасибо! Может кто еще по форуму присоединится?
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
06.05.2010, 01:29
Цитата Сообщение от Garic_ Посмотреть сообщение
Скачать именно в битах!!!
в файл скачать так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <fstream>
#include <bitset>
//----------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    std::ifstream ifs( "f_0101.bin", std::ios::binary );
    std::ofstream ofs( "f_0101.txt" );
 
    BYTE c;
    typedef _STL::bitset<8> C;
    while ( ifs >> c ) ofs <<  C(c) << '\n';
 
    ofs.close();
    ifs.close();
}
//----------------------------------------------------------------------
и уже из файла - обычно
C++
1
2
3
4
5
6
//----------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    RichEdit1->Lines->LoadFromFile("f_0101.txt");
}
//----------------------------------------------------------------------
ну, или можешь сразу в RichEdit
C++
1
2
3
4
    std::bitset<8> bs;     
    std::stringstream ss;
    while ( ifs >> c ) ss << (bs = c) << '\n';
    RichEdit1->Text = ss.str().c_str()
а каждый бит - через цикл bs.test(0... 7);
2
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
06.05.2010, 11:45  [ТС]
mirso-Интересный вариант!!! в
в файл скачать так
но он выдаёт тоже что и уменя.
Code
1
2
3
4
5
6
if (! OpenDialog2->Execute())         //если был открыт
 return;//пользователь нажал кнопку отмена
   for(int i = 0; i < OpenDialog2->Files->Count; i++) {
      ListBox1->Items->Add(OpenDialog2->Files->Strings[i]);
    }
  RichEdit1->Lines->LoadFromFile(OpenDialog2->FileName);
Вот это выдаёт. Вопрос что это за код?
Code
1
2
яы°Kќ&#152;Д1o|ѕщВ@™C+%rІ/\км{щ»БаЮG –І%eВLa™ІMdлѓ©
М*$ЭцЗ$FъCЬJ0ZїCxt.&#152;UPrљЌшe„№‡Т†ф8щзґђHhcAqr%!н
ну, или можешь сразу в RichEdit
проверить не получилось ругается на std::stringstream ss;
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
06.05.2010, 21:57
Цитата Сообщение от mirso Посмотреть сообщение
в файл скачать так
Цитата Сообщение от mirso Посмотреть сообщение
std::ofstream ofs( "f_0101.txt" );
Цитата Сообщение от Garic_ Посмотреть сообщение
но он выдаёт тоже что и уменя.
Цитата Сообщение от Garic_ Посмотреть сообщение
Вопрос что это за код?
Код
яы°Kќ˜Д1o|ѕщВ@
Это у тебя в RichEdit1 в программе
или в созданном "f_0101.txt"() в блокноте?
*********************
Цитата Сообщение от Garic_ Посмотреть сообщение
проверить не получилось ругается на std::stringstream ss;
#include <sstream>
1
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
06.05.2010, 23:49  [ТС]
Всё заработало! Огромное спасибо! Пример понравился.
Правда следовало ожидать один не достаток, файл 5МГБ(.mp3) грузит около минуты (в двоичной).
А как тоже, но в десятичной, может будет быстрее грузить?
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
06.05.2010, 23:52
а так?
C++
1
2
3
    RichEdit1->Lines->BeginUpdate();
    RichEdit1->Text = ss.str().c_str();
    RichEdit1->Lines->EndUpdate();
1
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
07.05.2010, 10:29  [ТС]
как не странно, но на 5 сек медленее.

Добавлено через 9 часов 46 минут
mirso
Это у тебя в RichEdit1 в программе
или в созданном "f_0101.txt"() в блокноте?
Код
яы°Kќ˜Д1o|ѕщВ@
из "E:\\001 Snap-The power.mp3"
в RichEdit1 выводит
Знаю 2-ю 10-ю 16-ю, а эту систему исчисления не знаю?

Да еще, в одной микрофонной программе выводит из pHdr->lpData
®¯®®®¯®¯®¯®¯®¯¯®¯¯¯¯®°¯¯¯°°¯¯¯¯¯¯°¯°°°¯¯ °¯°¯¯¯°°¯°¯°°¯¯¯°°°°°¯¯¯°°¯¯¯¯°¯¯°°°¯°°° ¯°°¯°°¯°¯°¯°¯¯¯°°°°°°¯¯°¯°°°°°°¯°¯±°°¯±± ±±±°±±²²±²²±²±²±²²±²³²²³±±±±±²²±±²±²±²±± ±±±°±±±±±²±±±±°
Он в десятичный преобразовывается, таким способом:
Code
1
2
3
 i=(int) ((unsigned char) pHdr->lpData[n])-128;
или
i=(int) ((signed char) pHdr->lpData[n]);
А можно эту программку изменить не в двоичный, а десятиричный?
Code
1
2
3
4
5
6
7
8
9
10
std::ifstream ifs( "E:\\001 Snap-The power.mp3", std::ios::binary );
    std::ofstream ofs( "E:\\001 Snap-The power.mp3" );
    BYTE c;
    typedef _STL::bitset<8> C;
    std::bitset<8> bs;
    std::stringstream ss;
    while ( ifs >> c ) ss << (bs = c) << '\n';
    RichEdit1->Text = ss.str().c_str();
    ifs.close();
    ofs.close();
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
07.05.2010, 21:48
Цитата Сообщение от Garic_ Посмотреть сообщение
а десятиричный?
C++
1
2
3
4
5
    std::ifstream ifs( "E:\\001 Snap-The power.mp3", std::ios::binary );
    unsigned char c;
    std::stringstream ss;
    while ( ifs >> c ) ss << (c&0xff) << ' ';
    ifs.close();
1
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
08.05.2010, 01:10  [ТС]
mirso Огромное большое спасибо!
Теперь этот файл в десятичной, обрабатывает за 25 сек., на 10 сек. быстрее двоичной!
Спасибо!
0
 Аватар для mirso
562 / 373 / 55
Регистрация: 05.04.2009
Сообщений: 767
08.05.2010, 01:34
Цитата Сообщение от Garic_ Посмотреть сообщение
Спасибо!
Пожалуйста!
**************************************
Тока так, в дальнейшем, лучше не делай!
Цитата Сообщение от Garic_ Посмотреть сообщение
std::ofstream ofs( ".........................mp3" );
сравни
Цитата Сообщение от mirso Посмотреть сообщение
std::ofstream ofs( "...............txt" );
Иначе - наперевыпортишь по незнанию кучу бед!
Ты файл f_0101.txt нашел на компьютере?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.05.2010, 01:34
Помогаю со студенческими работами здесь

DVD-привод не пишет только DVD-болванки (DVD-RW пишет)
Добрый день всем! Возникла следующая аномальная (по-крайней мере, для моего понимания) проблема: Не могу записать DVD-болванки (ни DVD...

Отрицательное число в битах
Можете объяснить зачем при переводе числа в отрицательное мы берем сначала обратный код а потом прибавляем к нему единицу?? Можете пояснить...

Не работает привод Pioneer DVD-RW DVRTD08A АТА для чтения CD/DVD
Данный привод на ноутбуке Toshiba Satellite P300D(опер.система Windows Wista HP) проработал 1,5 года и после переустановки нового лиценз-го...

Может ли обычный недорогой DVD-привод Asus записать диск DVD-9 ?
Привет всем! Подскажите, пожалуйста, может ли обычный недорогой DVD-привод Asus записать диск DVD-9 ? Просто у меня есть образ...

DVD-ROM при вставке DVD-диска открывает его пустым
У меня тип дисковода ДВД но бывает что при вставке ДВД-диска открывает его пустым и обозначает тип дисковода как СД, после переустановки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru