Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.65/176: Рейтинг темы: голосов - 176, средняя оценка - 4.65
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320

Конвертер алгоритмов c++ Builder в delphi и обратно

30.04.2011, 18:25. Показов 38003. Ответов 198
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проект конвертирования алгоритмов. Всем добры вечер, предлогаю к обсуждению такой интересный проект "Конвертер алгоритмов" c языка c++ builder в delphi и наоборот. Тема поднималась много раз и альтернативных конвертеров не существует а т что есть полная лажа. Я бы хотел предложить сдесь на странчке обсудить такой проектик. И если может у когота будет желание поучаствовать в его реализации. Я неплохо знаю delphi в этом языке помогу. Иметься статья:Автокнопка. Перевод кода исходника на delphi в С++ Builder
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.04.2011, 18:25
Ответы с готовыми решениями:

URL-encoded конвертер туда и обратно
Есть куча декодеров которые могут перевести непонятную белебурду, как...

создать программу конвертер c .mp3 в .wav и обратно
создать программу конвертер c .mp3 в .wav и обратно. в С# пожалуйста...очень нужно...

ПОМОГИТ! Уже целый год пишем конвертер с с++ билдера на дельфи и обратно
вот проблемма много уже написано но надо еще переконвертировать типы, подскажите у кого какие идеии. или допишите типы схожие например: ...

198
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
26.09.2011, 13:29
Студворк — интернет-сервис помощи студентам
Да, у меня так программа и переводит.
Если в
делфи....................С++
var заменяем на //
Begin заменяем на {
begin заменяем на {
end; заменяем на }
end. заменяем на }
: заменяем на =
:= заменяем на =
until заменяем на }while(
while заменяем на while(
for заменяем на for(
if заменяем на if(
then заменяем на )
а есть и по сложнее, надо корректировать лапками
// цикл for на Delphi
b:=0;
for a:=1 to 10 do
begin
b:= a;
end;

// цикл for на C++
b=0;
for (a=1; a <= 10; a = a + 1)
{
b = a;
}
to заменяем на ;?<=?;?++
Что бы работало автоматически(без лап)
надо продумать код, уже в голове что то крутится, это наверно будет записано в коде, виде констант.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
26.09.2011, 17:59
традиционо
C++
1
for (a=1;a<=10;a++)
1
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
27.09.2011, 02:31
Какие операторы сравнения использует DELPHI, в цикле for?
1)
Delphi
1
for a:=1 to 10 do
А в переводе на С++
C++
1
for (a=1; a <= 10; a++)
2)DELPHI
Delphi
1
    for i:=100 downto  0 do
переводе на С++
C++
1
for (i=100; i>=0; i-- )
Что, только 2 ?
<= to и >= downto
1
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
27.09.2011, 21:55  [ТС]
гарик это пред переводить цикл фор к циклу фор. Я перевел цикл фор к циклу вхил и работает лучше пример откоректирую через пару недель выложу.. Гарик дай прогу посмотреть. Ну шоб готово все было к работе...
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
27.09.2011, 22:32  [ТС]
Цитата Сообщение от Garic_ Посмотреть сообщение
Какие операторы сравнения использует DELPHI, в цикле for?
1)
Delphi
1
for a:=1 to 10 do
А в переводе на С++
C++
1
for (a=1; a <= 10; a++)
2)DELPHI
Delphi
1
    for i:=100 downto  0 do
переводе на С++
C++
1
for (i=100; i>=0; i-- )
Что, только 2 ?
<= to и >= downto
много кратно читал про шаг в цикле фор для дельфи и читал об довн ту тока вот незадача не разу невидел чтобы програмисты его использовали а инструкция на мой взгляд не работает но щас пойду проверю для точности

Добавлено через 2 минуты
Цитата Сообщение от Garic_ Посмотреть сообщение
Какие операторы сравнения использует DELPHI, в цикле for?
1)
Delphi
1
for a:=1 to 10 do
А в переводе на С++
C++
1
for (a=1; a <= 10; a++)
2)DELPHI
Delphi
1
    for i:=100 downto  0 do
переводе на С++
C++
1
for (i=100; i>=0; i-- )
Что, только 2 ?
<= to и >= downto
Многократно читал об шаге в цикле фор но скока не пробовал вроде не работало. Сейчас пойду проверю. Но отмечу что в кодах других програмистов в среде дельфи не видел да и про этот шаг чета не пишут особото.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
27.09.2011, 22:40
еще есть гламурное in для цикла
а также покопайте в сторону assigned(Form1)... , например
2
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
27.09.2011, 22:46  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
еще есть гламурное in для цикла
а также покопайте в сторону assigned(Form1)... , например
ты варианты накинь. А еще очень важно целесобразность и частота использования ин
1
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
27.09.2011, 23:14  [ТС]
вобще просматривал код гарика и по его прогекоду тестиовал свой код. Скажу что циклы обьявлены у негь класически они достаточно легко переводять. Хотя мне недовелось видеть код закодрюченый но думаю такие програмисты которые пишут супер наворотами думаю им не составит труда перевести свою стрепню на другуй язик или язики...

Добавлено через 13 минут
хочу попросить вас о нескромном. Я с телефона сижу. И не как немогу скачать дельфи 2010 а так хочеть дайте торрень тока не кладите его в архив...а если можно еще хе ну это типа которая последняя вышла.
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
27.09.2011, 23:18
LK, Правильно говорит n971030, (ты варианты накинь.)
А для for нацарапал спец. код., на досуге перенесу в прогу и выложу проект.
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
27.09.2011, 23:28  [ТС]
гарик а вот вопрос что означает в цикле такая инструкция.

Добавлено через 4 минуты
for (int i=0; i<6;I+9) ТИПО ОБЫЧНОЕ ТУПОЕ СЛОЖЕНИЕ ПРИ КОТОРОМ ЦИКЛ ЗАВИСНИТ, ВЕРНО
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
27.09.2011, 23:32
n971030, for (int i=0; i<6;I+9)----три ошибки
делай так
for (int i=0; i<=6;i++)
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
27.09.2011, 23:41  [ТС]
Цитата Сообщение от Garic_ Посмотреть сообщение
n971030, for (int i=0; i<6;I+9)----три ошибки
делай так
for (int i=0; i<=6;i++)
Я имею введу что люди разные бывают суют коментарии околл каждого слова и т.п для компилятора канечно пустяк а для разработки проги на такой случай требуеться усилие... Вот например если я вставлю коментарий между for (i=/*bla bla 0;*/ ; i<=6; i+=9)
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
28.09.2011, 09:30
n971030,
суют коментарии....Вот например если я вставлю коментарий между for (i=/*bla bla 0;*/ ;....
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
02.10.2011, 21:42  [ТС]
гарик я тут почти нацарапал кодик по переводу циклов ты эксперемент выложи свой я скоро выложу свой сравним недостатки.
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
02.10.2011, 22:58
n971030,
выложу свой сравним недостатки
Вот зто переводим.
for a:=1 to 10 do
for i:=100 downto 0 do
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
//-------------для цикла for--------------------------
 if(Bufer1P=="for") {//1
  String Const[11]={"for (", ":", "=", ";", "<=", ">=", "to", "downto","++","--",")"};
  String Buf2; //для записи i
  String Buf3; //для записи числа (первое)
  String Buf4; //для записи to или downto
  String Buf5; //для записи числа (второе)
  String tyty;  //для значений
  j++;
  //****************************************
   for(int iii=j;j<=DSR1;j++){//2  для записи i-й
      tyty = RichEdit1->Lines->Strings[i][j];
       if(tyty==Const[1]) {
          break;
          }
       else{
          Buf2=Buf2+RichEdit1->Lines->Strings[i][j]; //записуем i
          }
  }//2
  //****************************************
       j= j+2;     //записуем число--------------------
       for(int iii=j;j<=DSR1;j++){//3
         if(isdigit(RichEdit1->Lines->Strings[i][j])) { //4
              // char str[3]={"as2"};
              //if(isdigit(str[2]))
               tyty = RichEdit1->Lines->Strings[i][j];
             if(tyty!=" ") {
                Buf3 = Buf3 + RichEdit1->Lines->Strings[i][j];
                }
          } //4
           else{
               break;
          } //4
       }//3
  //***************************************
       j= j++;
       for(int iii=j;j<=DSR1;j++){// для to или downto
               tyty = RichEdit1->Lines->Strings[i][j];
             if(tyty!=" ") {
                Buf4 = Buf4 + RichEdit1->Lines->Strings[i][j];
             }
              else{
                   break;
               }
       }
   //***************************************
           j= j++;     //записуем число №2--------------------
       for(int iii=j;j<=DSR1;j++){//3
         if(isdigit(RichEdit1->Lines->Strings[i][j])) { //4
              // char str[3]={"as2"};
              //if(isdigit(str[2]))
               tyty = RichEdit1->Lines->Strings[i][j];
             if(tyty!=" ") {
                Buf5 = Buf5 + RichEdit1->Lines->Strings[i][j];
                }
          } //4
           else{
               break;
          } //4
       }//3
   //***************************************
                if(Buf4==Const[6]){
                   Const[0]=Const[0]+Buf2+Const[2]+Buf3+Const[3]+Buf2+Const[4]+Buf5+Const[3]+Buf2+Const[8]+Const[10]; //"for (" + a + "=" 1;a
                  // break;
                }
                if(Buf4==Const[7]){
                   Const[0]=Const[0]+Buf2+Const[2]+Buf3+Const[3]+Buf2+Const[5]+Buf5+Const[3]+Buf2+Const[9]+Const[10];
                 //  break;
                }
 
  RichEdit2->Lines->Add(Const[0]);
  break;
 } //1
//---------------------------------------------
             //---ПОИСК------
получим результат
for ( a=1; a<=10; a++)
for ( i=100; i>=0; i--)
Недостатки есть, если пробел не один, а более. И второй недостаток это большой программный код, и циклов много. Будет время, в один запихну.
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
04.10.2011, 12:38

Все устранил! Вставляйте в написанную программу этот код и пользуйтесь переводом.
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
//-------------äëÿ öèêëà for--------------------------
 if(Bufer1P=="for") {//1
  String Const[11]={"for (", ":", "=", ";", "<=", ">=", "to", "downto","++","--",")"};
  String Buf2; //äëÿ çàïèñè i
  String Buf3; //äëÿ çàïèñè ÷èñëà (ïåðâîå)
  String Buf4; //äëÿ çàïèñè to èëè downto
  String Buf5; //äëÿ çàïèñè ÷èñëà (âòîðîå)
  String Buf6; //äëÿ çàïèñè áóêâ (do)
  String tyty;  //äëÿ çíà÷åíèé
 
  int Bucva1 = true;
  int Bucva2 = false;
  int Bucva3 = false;
  int Cifra1 = true;
  int Cifra2 = false;
  int Simvol = true;
  j++;
  //****************************************
   for(int iii=j;j<=DSR1;j++){//2  äëÿ çàïèñè i-é
      tyty = RichEdit1->Lines->Strings[i][j];
      if ((isalnum(RichEdit1->Lines->Strings[i][j]))&&(Bucva1==true)) {  //ïåðâàÿ ïåðåìåíàÿ ìîæåò áûòü è ñ öèôðîé (i1-âîò òàê)
         Buf2 = Buf2 + RichEdit1->Lines->Strings[i][j];
      }
      if (tyty != " ")
      if ((isprint(RichEdit1->Lines->Strings[i][j]))&&(Simvol == true)) { //Åñëè ñèìâîë  iscntrl
         Bucva1 = false;
      }
      if ((isdigit(RichEdit1->Lines->Strings[i][j]))&&(Cifra1==true)) {  //Öèôðà ïåðâàÿ
        Bucva2 = true;
        Simvol = false;
        Buf3 = Buf3 + RichEdit1->Lines->Strings[i][j];
      }
      if ((isalpha(RichEdit1->Lines->Strings[i][j]))&&(Bucva2==true)) { //Áóêâà âòîðàÿ
       Buf4 = Buf4 + RichEdit1->Lines->Strings[i][j];
       Cifra1 = false;
       Cifra2 = true;
      }
      if ((isdigit(RichEdit1->Lines->Strings[i][j]))&&(Cifra2==true)) { //Öèôðà âòîðàÿ
          Buf5 = Buf5 + RichEdit1->Lines->Strings[i][j];
          Cifra2 = false;
          Bucva2 = false;
          Bucva3 = true;
          }
   /*  if ((isalpha(RichEdit1->Lines->Strings[i][j]))&&(Bucva3==true)) { //Áóêâà òðåòüÿ
         Buf6 = Buf6 + RichEdit1->Lines->Strings[i][j];   //
     }   */
  }//2
            if(Buf4==Const[6]){
                   Const[0]=Const[0]+Buf2+Const[2]+Buf3+Const[3]+Buf2+Const[4]+Buf5+Const[3]+Buf2+Const[8]+Const[10]; //"for (" + a + "=" 1;a
                  // break;
                }
                if(Buf4==Const[7]){
                   Const[0]=Const[0]+Buf2+Const[2]+Buf3+Const[3]+Buf2+Const[5]+Buf5+Const[3]+Buf2+Const[9]+Const[10];
                 //  break;
                }
 
  RichEdit2->Lines->Add(Const[0]);
  break;
 } //1
//---------------------------------------------
             //---ÏÎÈÑÊ------
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
04.10.2011, 21:17  [ТС]
ну нифегась ты как быстро...а че он какой короткий код???я тут нацарапал за 963строки....вижу возможности билдера это компакитность....

Добавлено через 2 минуты
гарик. Я этот код на тестирование не смог скачать...я с телефона можно просто текстовый файл???
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
05.10.2011, 00:09
Держи.
Вложения
Тип файла: txt for.txt (2.4 Кб, 20 просмотров)
0
188 / 120 / 4
Регистрация: 23.01.2010
Сообщений: 1,320
12.10.2011, 22:56  [ТС]
гарик как дела продвигаються?
0
72 / 72 / 5
Регистрация: 03.11.2009
Сообщений: 492
12.10.2011, 23:50
n971030, Обрати внимание на это
Delphi синтаксис для движка к переводчику
что пишет LK,
Скачай Тип файла: 7z Borland C++ Builder & Delphi Translation.7z
И это все нужно сопоставить, код(C++)=код(паскаль)?
можешь поработать!?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.10.2011, 23:50

Конвертер с Delphi в C++
Кто нибудь знает, существует нормальный конвертер с Delphi в C++. Если существует подскажите какие

Delphi конвертер
Помогите написать программу конвертер величин универсальный чтоб можно было выбирать (время длину вес и тд)

Перевод кода из Delphi в C++ Builder / C++ Builder
Кто нибудь сможет помочь перевести проект с делфи на билдер? Выкладываю исходники на делфи. procedure TForm1.SpeedButton1Click(Sender:...

конвертер величин на delphi
Подскажите как написать конвертер величин на делфи с использованием combo box. И чтоб было как можно больше вариантов например из метров в...

Delphi: Конвертер WAV в PCM
очень прошу помощи! по данной теме задали курсовик, а я никогда не работала в данной программе, да и разбираться абсолютно нет времени,...


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

Или воспользуйтесь поиском по форуму:
140
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru