Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Бинарное чтение в мемо 
:(
    Опции темы
klein
Дата 12.3.2007, 01:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 30.5.2006
Где: Київ

Репутация: нет
Всего: нет



Пишу на билдере, но решил, что вопрос относится к  этому разделу.
Нужно бинарно  прочитать файл и записать в мемо.
Получилось вот что: 

Код

#include <vcl.h>
#pragma hdrstop
#include <cstdio>
#include "Unit1.h"
#include <iostream.h>
#include <stdio.h>
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner) {}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{ 
  unsigned char buffer[ 10 ];

     if (OpenDialog1->Execute())
   {
     FILE*inp = fopen(OpenDialog1->FileName.c_str(), "rb" );
     fread( buffer, 1, 10, inp);
     fclose( inp );
     int i;
     for (i=0; i=10; i++)
     Memo1->Lines->Add(buffer[i]);
   }
}


Получилась абра-кадабра. Выводит одно и тоже + тормозит и не останавливается.
Что посоветуете? 

PM MAIL   Вверх
Kuvaldis
Дата 12.3.2007, 03:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


механик-вредитель
***


Профиль
Группа: Участник Клуба
Сообщений: 1189
Регистрация: 16.6.2006
Где: Минск

Репутация: 11
Всего: 61



klein, 
Код

     for (i=0; i=10; i++)    
          Memo1->Lines->Add(buffer[i]);


Условие цикла неправильно записано, нужно
Код

 for (i=0; i < 10; i++)    


Поэтому и получается бесконечный цикл:
на каждом шаге идет присваивание i = 10, результатом этого присваивания является 10.. Это условие компилятором расценивается как истина, так как оно не 0. Отсюда и цикл. А выводит одно и то же, так как на каждом шаге i равно 10 smile

Это сообщение отредактировал(а) Kuvaldis - 12.3.2007, 03:13


--------------------
Помни - когда ты спишь, враг не дремлет
Спи чаще и дольше, изматывай врага бессоницей
PM MAIL ICQ   Вверх
klein
Дата 12.3.2007, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 30.5.2006
Где: Київ

Репутация: нет
Всего: нет



Протупил smile  , только есть еще ошибка - пишет просто десятичными числами, а хотелось чтобы показало бинаррный код. smile  Подозрения на unsigned char buffer[ 10 ]; его надо в бул перевести?
PM MAIL   Вверх
klein
Дата 12.3.2007, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 30.5.2006
Где: Київ

Репутация: нет
Всего: нет



Эксперементировал записывать прочитаное в файл (с масива unsigned char buffer[ 10 ])

Код

{
  unsigned char buffer[ 10 ];

     if (OpenDialog1->Execute())
   {
     FILE*inp = fopen(OpenDialog1->FileName.c_str(), "rb" );
     fread( buffer, 1, 10, inp);
     fclose( inp );
     int i;
     for (i=0; i<10; i++)
     Memo1->Lines->Add(buffer[i]);
   }
     if (SaveDialog1->Execute())
       {  
           int i;
           FILE*inp = fopen(SaveDialog1->FileName.c_str(), "wb" );
           for (i=0; i<10; i++)
           fputc(buffer[i]);
           fclose( inp );
       } 
}


Ошибка только с  fputc. Я ведь правильно выбрал  fputc для записи в файл? Или лучьше использовать чтото другое?

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0641 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.