Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
3 / 3 / 0
Регистрация: 01.02.2012
Сообщений: 5

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

15.02.2012, 19:58. Показов 809. Ответов 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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.02.2012, 19:58
Ответы с готовыми решениями:

Указатели и массивы. Внедрение функции в прогу. C++. Пожалуйста, помогите.
Условие задачи: /* Calculate the length of a string */ #include &lt;stdio.h&gt; #define MAXLINE 30 // String lenght...

Здравствуйте программисты, помогите пожалуйста прогу написать!
Составить программу, выясняющую, какой день недели соответствует введенной с клавиатуры дате(день-месяц-год).Программа должна быть способна...

Помогите пожалуйста переделать прогу на delphi в mathlab
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids,...

1
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
15.02.2012, 21:26
winapi вам в помощь
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.02.2012, 21:26
Помогаю со студенческими работами здесь

Помогите, пожалуйста.... Если не сдам сегодня прогу, то отчислят...
найти первое натуральное число, которое больше 10 в 11 степени. Через внешние подпрограммы

Помогите написать прогу, заметки, под платформу Simbian в qt creatore
Помогите написать прогу, заметки, под платформу Simbian в qt creatore.

Помогите пожалуйста с фильтром (Table1->Filter) в С++ Builder.
У меня есть такой вопрос, как мне написать фильтр так, чтоб он мне вывел все значения которые находятся в поле. Например Table1-&gt;Filter...

Помогите перевести код с Delphi на C++ Builder, пожалуйста!
unit MainUnit; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,...

народ я написал прогу на С++ а в ней какойто косяк и я не знаю какой!ПОмогите его найти пожалуйста
написать и протестировать функцию,подсчитывающую количество положительных элементов в матрице и их среднеарифметическое значение.(матрица...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru