Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.96/23: Рейтинг темы: голосов - 23, средняя оценка - 4.96
_arty_
29 / 28 / 7
Регистрация: 10.07.2009
Сообщений: 317
1

Конвертация кода Pascal на C++

25.12.2010, 10:22. Просмотров 4477. Ответов 2
Метки нет (Все метки)

Здравствуйте, нужна помощь, у меня есть такой код:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var chosenDir:string;
  fs: tSearchRec;
dbq : String;
begin
  if SelectDirectory('Выберите каталог','', chosenDir)
  then
 
    begin
 
      if (FindFirst(chosenDir+'\*.dbf', faAnyFile, fs)=0)
      then
      repeat
       dbq :=chosenDir;
       //DefaultDir := chosenDir;
        FindNext(fs);
 
    until FindNext(fs)<>0;
 
    end;
end.
этот код вызывает окно обзора папок и и запоминает выбор в переменную (по заданному формату), хотелось бы знать как этот же код реализуется в C++, или может есть какие то встроенные средства для вызова подобного окна обзора?

P.S. Пишу на RAD STUDIO 2009
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2010, 10:22
Ответы с готовыми решениями:

Конвертация кода Pascal на C++
Приветствую! Люди добрые помогите перегнать из Pascal в C++.

Конвертация кода Pascal на C++
Здравствуйте, нужно конвертировать код из Паскаля в С++. задание со строками,...

Конвертация кода из С++ в Java
Помогите пожалуйста с переводом кода из с++ в Java. В Java не разбираюсь к...

Конвертация кода из паскаля в С++
Доброго времени суток!!! не могу сделать вывод программы на с++ из кода паскаль...

Конвертация кода из с++ в java
Доброго времени суток. Перейду сразу к сути. Я затеял перевод кода из c++ в...

2
_arty_
29 / 28 / 7
Регистрация: 10.07.2009
Сообщений: 317
26.12.2010, 15:48  [ТС] 2
Лучший ответ Сообщение было отмечено _arty_ как решение

Решение

решение нашёл:

C++
1
2
3
4
5
6
7
8
#include <FileCtrl.hpp>
const SELDIRHELP = 1000;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString Dir = "C:\\Program Files\\MyApp";
  if (SelectDirectory(Dir, TSelectDirOpts() << sdAllowCreate << sdPerformCreate << sdPrompt,SELDIRHELP))
    Label1->Caption = Dir;
}
0
Mishan99999
0 / 0 / 0
Регистрация: 14.05.2017
Сообщений: 1
01.10.2017, 19:22 3
PROGRAM LAB2;
Uses Crt,Graph;

const Path_of_driver='C:\TP7\BGI';
{описание класса точки}
Type
tPoint = object
x, y: integer;
color: word;
{вывод на экран}
procedure Draw;
{закрасить цветом фона}
procedure Hide;
{перемещение точки}
procedure Move(newX, newY:Integer);
{установка х}
procedure setX(x0:Integer);
{установка у}
procedure setY(y0:Integer);
{установка цвета}
procedure setColor(color0 : Word);
{функции получения координат}
function getX : Integer;
function getY : Integer;
end;

procedure tPoint.setX(x0 : Integer);
begin
x:=x0;
end;

procedure tPoint.setY(y0 : Integer);
begin
y:=y0;
end;
procedure tPoint.setColor(color0 : Word);
begin
color:=color0;
end;
function tPoint.getX;
begin
getX:=x;
end;
function tPoint.getY;
begin
getY:=y;
end;

procedure tPoint.Draw;
begin
putPixel(x,y,color);
end;

procedure tPoint.Hide;
begin
putPixel(x,y,GetBkColor);
end;
procedure tPoint.Move(newX, newY : Integer);
begin
Hide;
setX(newX);
setY(newY);
Draw;
end;
{процедура расчета новых координат по нажатой клавише}
Procedure Coords(a:char; var NewX,NewY:integer; h:integer);
begin
case a of
#80: begin
Inc(NewY,h); if NewY>GetMaxY-20 then NewY:=20;
end;
#75: begin
dec(NewX,h); if NewX<10 then NewX:=GetMaxX-10;
end;
#77: begin
inc(NewX,h); if NewX>GetMaxX-10 then NewX:=10;
end;
#72: begin
dec(NewY,h); if NewY<20 then NewY:=GetMaxY-20;
end;
end;
end;

var
mas: array [1..100] of tPoint; {массив точек}
gd,gm,NewX,NewY,i, h: integer;
Q,a:char;
str:string;
NewColor : Word;

begin
randomize;
{инициализация графического режима}
gd:=Detect;
InitGraph(gd,gm,Path_of_driver);
if GraphResult<>grok then begin
write('error:',GraphErrorMsg(GraphResult));
halt;
end;
{установка свойств всех точек в массиве – случайные значения}
for i:=1 to 100 do
begin
NewX:=Random(GetMaxX);
NewY:=Random(GetMaxY);
NewColor:=Random(256);
mas[i].setX( NewX);
mas[i].setY(NewY);
mas[i].setColor(NewColor);
mas[i].Draw;
end;
h:=50; {расстояние, на которое перемещается точка}
RestoreCrtMode; {текстовый режим}
Q:='y';
While Q<>'n' do begin
write('Выберите режим движения точек: 1 (случайное движение)');
write (' 2 (движение по стрелкам клавиатуры): ');
readln(str); {пользователь вводит символ}
{случайное движение}
if str='1' then
begin
SetGraphMode(gm);
repeat
for i:=1 to 100 do
begin
{новые случайные координаты}
NewX:=Random(GetMaxX);
NewY:=Random(GetMaxY);
mas[i].Move(NewX,NewY);
end;
delay(10000); {задержка}
until keypressed; {пока не нажата клавиша}
end
else
{движение по стрелкам}
begin
writeln('Нажмите Enter');
writeln('Управляйте движением точек с помощью стрелок клавиатуры');
readln;
SetGraphMode(gm);
{вывод массива точек}
for i:=1 to 100 do
mas[i].Draw;
repeat
a:=readkey;
for i:=1 to 100 do
begin
{получаем текущие координаты}
newX:=mas[i].getX;
newY:=mas[i].getY;
{новые координаты, куда передвинется точка}
Coords(a,NewX,NewY,h);
{передвижение точки}
mas[i].Move(NewX,NewY);
end;
until a=#27; {пока не нажата escape}
end;
RestoreCrtMode;
write('Продолжить? (y/n) ');
readln(Q);
end;
closegraph;
clrscr;
end.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2017, 19:22

Перевод кода с Pascal в C++
ребятки, помогите с переводом с паскаля на C++ данный код var...

Портация кода Pascal
Нужно сжать массив в котором есть нулевые элементы выкинув их. вот пример на...

Перевод кода с Pascal
const p=1; const x=2.1; var t,a,b,y:real; begin write('t='); readln(t);...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru