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

Перевод с Delphi на C++ - C++

Восстановить пароль Регистрация
 
razdvatri123
0 / 0 / 0
Регистрация: 15.10.2015
Сообщений: 26
15.10.2015, 20:12     Перевод с Delphi на C++ #1
есть люди, которые могут перевести код с делфи на с++? проблема в том, что делфи не изучал

Delphi
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
Отображение файлов на память:
function TfrmFileTest.CopyByMapping:Integer;
type
  TBuf=array[0..1024-1] of Byte;
  PBuf=^TBuf;
var
  i,SrcSize:ULONG;
  hSrc,hDst:THandle;
  ptrIn,ptrOut:Pointer;
  hMapFileIn,hMapFileOut:THandle;
  BPI,BPO:PBuf;
  Start,Finish:TDateTime;
Begin
  if FileExists(DestinationFileName) then DeleteFile(DestinationFileName);
  Start:=GetTime;
  hSrc:=CreateFile(PAnsiChar(SourceFileName),GENERIC_READ,FILE_SHARE_READ   ,nil,OPEN_EXISTING ,FILE_ATTRIBUTE_NORMAL,0);
  hDst:=CreateFile(PAnsiChar(DestinationFileName),GENERIC_WRITE or GENERIC_READ,FILE_SHARE_WRITE    ,nil,CREATE_NEW  ,FILE_ATTRIBUTE_NORMAL,0);
  SrcSize:=GetFileSize(hSrc,nil);
  prbStatus.Max:=SrcSize div 1024;
  hMapFileIn:=CreateFileMapping(hSrc,nil,PAGE_READONLY,0,0,nil);
  hMapFileOut:=CreateFileMapping(hDst,nil,PAGE_READWRITE,0 ,SrcSize,nil);
  ptrIn:=MapViewOfFile(hMapFileIn,FILE_MAP_READ,0,0,0);
  ptrOut:=MapViewOfFile(hMapFileOut,FILE_MAP_WRITE,0,0,SrcSize);
 
  BPI:=PBuf(ptrIn);
  BPO:=PBuf(ptrOut);
  for i:=1 to SrcSize div 1024 do
  begin
    BPO^:=BPI^;
    Inc(BPO);
    inc(BPI);
    prbStatus.Position:=i;
    Application.ProcessMessages;
  end;
 
  UnmapViewOfFile(ptrIn);
  UnmapViewOfFile(ptrOut);
  CloseHandle(hMapFileIn);
  CloseHandle(hMapFileOut);
  CloseHandle(hSrc);
  CloseHandle(hDst);
 
  Finish:=GetTime;
  CopyByMapping:=MilliSecondsBetween(Start,Finish);
 
  prbStatus.Position:=0;
end;
 
Использование Windows API:
function TfrmFileTest.CopyByWindowsAPI: integer;
var
  hSrc,hDst:THandle;
  FileSize:ULONG;
  Buf:array[0..1024-1]of Byte;
  i:Integer;
  Start,Finish:TDateTime;
begin
 
  if FileExists(DestinationFileName) then DeleteFile(DestinationFileName);
  Start:=GetTime;
  hSrc:=CreateFile(PAnsiChar(SourceFileName),GENERIC_READ,FILE_SHARE_READ   ,nil,OPEN_EXISTING ,FILE_ATTRIBUTE_NORMAL,0);
  hDst:=CreateFile(PAnsiChar(DestinationFileName),GENERIC_WRITE,FILE_SHARE_WRITE    ,nil,CREATE_NEW  ,FILE_ATTRIBUTE_NORMAL,0);
  FileSize:=GetFileSize(hSrc,nil);
  prbStatus.Max:=FileSize div 1024;
  
  for I:=1 to FileSize div 1024 do
  begin
    // вставить операторы для чтения из файла источника и записи в файл приемник 
    prbStatus.Position:=i;
    Application.ProcessMessages;
  end;
 
  CloseHandle(hSrc);
  CloseHandle(hDst);
 
  Finish:=GetTime;
  CopyByWindowsAPI:=MilliSecondsBetween(Start,Finish);
 
  prbStatus.Position:=0;
 
end;
 
Использование файловых потоков:
(Реализовать самостоятельно)
 
Использование файловых переменных:
(Реализовать самостоятельно)
 
Генерация тестового файла:
procedure TfrmFileTest.CreateTestFile;
var i,FileLen:integer;
  F:TFileStream;
  Buf:array[0..1023]of byte;
begin
    FileLen:= StrToInt(txtFileSize.Text);
    prbStatus.Max:=FileLen*1024;
    F:=TFileStream.Create(SourceFileName, fmCreate);
    for i:=1 to FileLen*1024 do
    begin
      F.Write(Buf,1024);
      prbStatus.Position:=i;
      Application.ProcessMessages;
    end;
    F.Free;
end;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2015, 20:12     Перевод с Delphi на C++
Посмотрите здесь:

Перевод C++ на Delphi Delphi
Delphi Перевод из C++ в Delphi
Delphi Перевод из 2 сс в 10 на Delphi
Перевод из Си в Delphi Delphi
Перевод с++ на delphi Delphi
Перевод на Delphi Delphi
Перевод из С в Delphi Delphi
Delphi Перевод из С в Delphi

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 15:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru