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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Резка jpg http://www.cyberforum.ru/cpp-beginners/thread446836.html
Есть задача написать программу которая будет обрезать jpeg файлы. Но проблема в том что, среди исходых файлов возможны сверх большие, от сотни Мегабайт до пары Гигабайтов(например карты), встает вопрос, есть ли какая нибудь возможность, резать эти файлы не загружая целиком в память, то есть используя что то типо fseek, и декодируя jpeg кусочками. Возможно ли это вообще? Если да, то возможно есть...
C++ Булевская переменная Написать программу, в результате выполнения которой булевская переменная t получает значение true, если выполняется указанное условие, и значение false в противном случае: цифра m входит в десятичную запись четырехзначного числа n Ребята Си открыл в первый раз. Подскажите как это можно сделать. http://www.cyberforum.ru/cpp-beginners/thread446833.html
Возможно ли через C++ создать что то на подобии этого C++
Допустим нам нужно создать тест по всей программе 4 класса для учеников. После решения теста программа выдает результат, показывает ошибки, показывает какой материал усвоен хорошо. а которому нужно уделить внимание, а также способность к дальнейшему обучению.
Сортировка массива. C++
Написал ф-ю сортировки массива методом Шейкера. Собственно проблема в том, что программа впадает в бесконечный цикл после того, как весь массив отсортирован, L и R не пересекаются. Может подскажете в чём проблема? S,P - количество сравнений\ перестановок. N - длина массива. L - левая граница, R - правая. L1,R1 - индикаторы последней перестановки с левой\правой сторон. int SheikerSort(int...
C++ Работа с MyODBC. http://www.cyberforum.ru/cpp-beginners/thread446768.html
Может кто подсказать как вытащить список баз данных на сервере. Продывал подключиться с помощью mysql_connect() пишет что функция не найдена, посмотрел в хеадер файле функции заключены в теги: #ifdef USE_OLD_FUNCTIONS MYSQL * STDCALL mysql_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd); int STDCALL mysql_create_db(MYSQL *mysql, const char *DB);...
C++ Реализовать двухсвязный список. Каждый элемент списка может содержать один объект Здравствуйте, мне нужно было реализовать двухсвязный список. Каждый элемент списка может содержать один объект. Объект может быть трех типов: "целое число", "вещественное число", "строка". В разных узлах одного списка может быть любой объект одного из допустимых типов. Каждый объект должен иметь возможность вывести свое содержимое на консоль. У списка должен быть метод, выводящий все... подробнее

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

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

15.02.2012, 19:58. Просмотров 475. Ответов 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();
}
//---------------------------------------------------------------------------
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru