Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

помогите пожалуйста изменить прогу написанную в C++builder, под C++VisualStudio - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Резка jpg http://www.cyberforum.ru/cpp-beginners/thread446836.html
Есть задача написать программу которая будет обрезать jpeg файлы. Но проблема в том что, среди исходых файлов возможны сверх большие, от сотни Мегабайт до пары Гигабайтов(например карты), встает...
C++ Булевская переменная Написать программу, в результате выполнения которой булевская переменная t получает значение true, если выполняется указанное условие, и значение false в противном случае: цифра m входит в... http://www.cyberforum.ru/cpp-beginners/thread446833.html
Возможно ли через C++ создать что то на подобии этого C++
Допустим нам нужно создать тест по всей программе 4 класса для учеников. После решения теста программа выдает результат, показывает ошибки, показывает какой материал усвоен хорошо. а которому нужно...
Сортировка массива. C++
Написал ф-ю сортировки массива методом Шейкера. Собственно проблема в том, что программа впадает в бесконечный цикл после того, как весь массив отсортирован, L и R не пересекаются. Может подскажете...
C++ Работа с MyODBC. http://www.cyberforum.ru/cpp-beginners/thread446768.html
Может кто подсказать как вытащить список баз данных на сервере. Продывал подключиться с помощью mysql_connect() пишет что функция не найдена, посмотрел в хеадер файле функции заключены в теги: ...
C++ Реализовать двухсвязный список. Каждый элемент списка может содержать один объект Здравствуйте, мне нужно было реализовать двухсвязный список. Каждый элемент списка может содержать один объект. Объект может быть трех типов: "целое число", "вещественное число", "строка". В разных... подробнее

Показать сообщение отдельно
mika_vazovski
0 / 0 / 0
Регистрация: 01.02.2012
Сообщений: 5

помогите пожалуйста изменить прогу написанную в C++builder, под C++VisualStudio - C++

15.02.2012, 19:58. Просмотров 481. Ответов 1
Метки (Все метки)

программа для архивирования графич. файлов писалась на билдере, но у меня он криво работает. Помогите пожалуйста,подскажите где надо переписать, чтобы она нормально работала в VisualStudio. привожу код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
#include <stdlib.h>
#include <clocale>
#include <iostream>
#include <time.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
using namespace std;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
void sum(bool a);
TForm1 *Form1;
FILE *in, *out;
char FileIn[150];       // имя входного файла(несжатого или сжатого)
char FileOut[150];      //имя выходного файла(сжатого или разархивированого)
unsigned bayt,sb,size;  //читаемые байты , size - длина имени файла
unsigned char k;      //счетчик повторяюшихся байтов
AnsiString s;         //имя входного файла(несжатого или сжатого)
unsigned long int kol_bayt_vx=0,kol_bayt_vbIx=0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
unsigned char kol,zap;//счетчик одиноковых байтов
if(OpenDialog1->Execute())
{s=OpenDialog1->FileName;}
 else return;
strcpy(FileIn,s.c_str());
strcpy(FileOut,FileIn);  //создание имени сжатого файла
size=strlen(FileIn);
FileOut[size-4]=0;
strncat(FileOut,"_sg.bmp",7 );
in=fopen(FileIn,"rb");
out=fopen(FileOut,"wb");
k=1;zap=0;
sb=fgetc(in);
while((bayt=fgetc(in))!=EOF)  //АРХИВАЦИЯ
{sum(false);
 if(sb==bayt && k<63){k++;}
   else{if(k>=3 ||(k<=2 && (sb&0xC0)==0xC0)) {zap=3;}
         else{zap=k;}
    switch(zap)
    { case 1:fputc(sb,out);sum(true);break;
      case 2:fputc(sb,out);fputc(sb,out);sum(true);break;
      case 3:kol=(sb&0xC0)|0xC0+k;fputc(kol,out);fputc(sb,out);sum(true);break;
    }
   sb=bayt;k=1;}
}
 if(k>=3 ||(k<=2 && (sb&0xC0)==0xC0)) {zap=3;}
    else{zap=k;}
 switch(zap)
    { case 1:fputc(sb,out);sum(true);break;
      case 2:fputc(sb,out);fputc(sb,out);sum(true);break;
      case 3:kol=(sb&0x00)|0xC0+k;fputc(kol,out);fputc(sb,out);sum(true);break;
    }
 for(int i=1;i<=k;i++)
 {sum(false);}
 PageControl1->ActivePage=TabSheet1;
 Image1->Visible=true;
 Image1->Picture->LoadFromFile(s);
if((fclose(in))==0 && (fclose(out)==0))
 {ShowMessage("Архивация изображения прошло успешно");
   ShowMessage("Файл находится в: "+AnsiString(FileOut));}
 Edit1->Text=kol_bayt_vx;
 Edit2->Text=kol_bayt_vbIx;
 }
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{s=0;in=NULL;out=NULL;
if(OpenDialog2->Execute() && FileExists(OpenDialog2->FileName))
{s=OpenDialog2->FileName;} //имя сжатого файла
else return;
strcpy(FileIn,s.c_str());
strcpy(FileOut,FileIn);  //создание имени разархивированого файла
size=strlen(FileIn);
FileOut[size-6]=0;
strncat(FileOut,"raz.bmp",8 );
in=fopen(FileIn,"rb");
out=fopen(FileOut,"wb");
bayt=0x00;
k=0;
sb=bayt;
while((bayt=fgetc(in))!=EOF)    //РАЗАРХИВАЦИЯ
{ if((bayt&0xC0)!=0xC0){fputc(bayt,out);}
   else{k=bayt&0x3F;     //количество байтов которые нужно записать
        sb=fgetc(in);    //значение байта
        for(int i=1;i<=k;i++)
        {fputc(sb,out); }
         k=0;
        }
 
}
 if((fclose(in))==0 && (fclose(out)==0))
 {ShowMessage("Разархивирование сжатого графического файла прошло успешно!");
   ShowMessage("Нахождение разархивированого файла: "+AnsiString(FileOut));}
PageControl1->ActivePage=TabSheet2;
Image2->Visible=true;
Image2->Picture->LoadFromFile(AnsiString(FileOut));
 
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
 BitBtn4->ShowHint=true;
 BitBtn4->Hint="Очистить";
}
//---------------------------------------------------------------------------
 
void sum(bool a)  //если а=false то считаеться количество байтов в входном файле
{if(a==false){kol_bayt_vx++;}   //если a=true - в выходном файле
else{kol_bayt_vbIx++;}
return;}
 
//---------------------------------------------------------------------------
 
void __fastcall TForm1::BitBtn4Click(TObject *Sender)
{
Image1->Visible=false;
Image2->Visible=false;
Edit1->Clear();
Edit2->Clear();
}
//---------------------------------------------------------------------------
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru