Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2012, 20:34   #1
Ira20
 
Регистрация: 26.02.2012
Сообщений: 3
По умолчанию Робота с файлами С++

Здравствуйте. Хочу Вас попросить о помощи. Мне нужно открыть любой файл с компьютера в двоичном коде. Я нашла на форуме часть программы, но она открывает очень маленькие файлы, а при больших начинает виснуть. Может кто знает как это исправить? Вот код
Код:
#include <vcl.h>
#pragma hdrstop
#include <fstream.h>
#include <fstream.h>
#include "Unit1.h"
//------------------------------------------------------------------------
TForm1 *Form1;
//------------------------------------------------------------------------
AnsiString Int_To_StrBin(int A)
  {
  AnsiString S, S1;
  int I = 1;

  if (A == 0) S = "0";

  while(A > 0)
    {
    S = S + char((A % 2) + 48); A = A/2;
    if ((I % 4) == 0) S = S + " "; I++;
    }
 
  if ((S.Length() % 5) == 1) S = S + "000 ";
  if ((S.Length() % 5) == 2) S = S + "00 ";
  if ((S.Length() % 5) == 3) S = S + "0 ";

  for (int I = 1; I < (S.Length() + 1); I++)
    {
    S1 = S1 + S[S.Length() + 1 - I];
    }

  return S1;
  }
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{

Form1->OpenDialog1->Title="Выбрать файл";
Form1->OpenDialog1->Execute();
Form1->Edit1->Text=(Form1->OpenDialog1->FileName);

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{

AnsiString FileName = Form1->OpenDialog1->FileName;
ifstream fin(FileName.c_str(), ios::binary);
     if ( !fin )
        {
         ShowMessage ("Нету файла!");
        }
char aa;
   while(fin.get(aa))
        {
         Memo1->SelText = Int_To_StrBin(aa);

        }

}
Ira20 вне форума Ответить с цитированием
Старый 22.03.2012, 21:04   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
а при больших начинает виснуть. Может кто знает как это исправить?
Реализовать с помощью потоков!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 22.03.2012, 22:52   #3
Ira20
 
Регистрация: 26.02.2012
Сообщений: 3
По умолчанию

C потоками это открыть пустой файл и у него переписать а затем вывести его содержимое? Извините что спрашиваю, но я не понимаю как..А как-то по другому нельзя?

Последний раз редактировалось Ira20; 23.03.2012 в 01:00.
Ira20 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
робота с файлами Trofik9 Паскаль, Turbo Pascal, PascalABC.NET 0 12.06.2010 16:25
Робота с файлами maloy-rom Помощь студентам 1 10.06.2009 01:04
Робота с файлами maloy-rom Помощь студентам 2 09.06.2009 11:46
Робота с файлами maloy-rom Помощь студентам 2 07.06.2009 17:35
Робота с файлами maloy-rom Помощь студентам 0 02.06.2009 10:57