Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
21 / 21 / 3
Регистрация: 11.01.2011
Сообщений: 72

Перевод с Делфи

15.04.2011, 10:19. Показов 1268. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если кто может прокоментировать код(перевести) С Делфи на Шарп отклитнетесь.
Вот код делфи:
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
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, OoMisc, AdPort, ExtCtrls;
 
type
  TForm1 = class(TForm)
    Port1: TApdComPort;
    Timer1: TTimer;
    Timer2: TTimer;
    ListBox1: TListBox;
    Button1: TButton;
    Edit1: TEdit;
    Label1: TLabel;
    Edit2: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Button2: TButton;
    Edit6: TEdit;
        function KSUM(var S: String): String;
    procedure Port1TriggerAvail(CP: TObject; Count: Word);
    procedure Timer1Timer(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
 
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  S, st:string;
  i,j, Tim1, Err1:integer;
  Canal:integer;
implementation
 
{$R *.DFM}
function TForm1.KSUM(var S: String): String;
var
  i, l: Integer;
  KS: Word;
  SS: String;
begin
  KS:=65535;
  for i:=2 to Length(S) do
  begin
    KS := KS xor Ord(S[i]);
    for l:=1 to 8 do
     if (KS div 2)*2<>KS then KS := (KS div 2) xor 40961
     else KS := (KS div 2);
  end;
  Str(KS, SS); { Преобразование KS в текстовый вид }
  KSUM := SS;
end;
 
 
procedure TForm1.Port1TriggerAvail(CP: TObject; Count: Word);
var
  I : Word;
  C : Char;
begin
  for I := 1 to Count do begin
    C := Port1.GetChar;
    case C of
      #0..#12 : {Don't display} ;
      else begin
                //memo1.Lines.Add(inttoSTR(ORD(c)));
                S := S + C;
                //edit1.Text:=Edit1.Text+inttoSTR(ORD(c))+' ';
 
            end;
    end;
  // memo2.Lines.Add(s);
  end;
end;
 
 
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Tim1:=Tim1+1;
end;
 
procedure TForm1.Timer2Timer(Sender: TObject);
Var
  s1,s2,CheckS:string;
  k,k1:integer;
begin
  Edit1.Text:=IntToStr(Canal);
  Edit2.Text:=IntToStr(Tim1);
  Edit4.Text:=S;
 
 
  if Timer1.Enabled=false then begin
                Port1.Open:=false;
                s:='';
                St := ':1;1;'+IntToStr(Canal)+';';        { Пример исходной строки без контр.суммы }
                Port1.Open:=true;
                St := St+KSUM(St)+#13;
                port1.PutString(st);
                Edit3.Text:=St;
                  Tim1:=0;
                Timer1.Enabled:=true;
                                end;
 
 
    i:=length(s); // Длина полученной посылки
    j:=length(st);
    if (j< i) then begin
                      if (s[i]=#13) then begin
                                         s1:='';
                                         CheckS:='';
                                         for k:=j+2 to i do if s[k]=';' then k1:=k;
                                         for k:=j+2 to k1 do s1:=s1+s[k];
                                         for k:=k1+1 to i-1 do CheckS:=CheckS+s[k];
                                         if (KSUM(S1)=CheckS) then begin
                                                                     s2:='';
                                                                     for k:=4 to length(s1)-1 do s2:=s2+s1[k];
                                                                     ListBox1.Items.Strings[Canal]:=S2;
                                                                     end    //if (KSUM(S1)=CheckS)
                                                              else ListBox1.Items.Strings[Canal]:='Error Check Sum';
 
                                         Timer1.Enabled:=false;
                                         Canal:=Canal+1;
                                         if Canal>5 then Canal:=0;
 
                                          end   // if (s[i]=#13)
                     end;        //if (j< i) then begin
      if (Tim1>10) then begin
                        ListBox1.Items.Strings[Canal]:='Error';
                        Canal:=Canal+1;
                        if Canal>5 then Canal:=0;
                        Timer1.Enabled:=false;
                         end;//if (Tim1>100)
 
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
Canal:=0;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Enabled:=false;
Timer2.Enabled:=False;
Port1.Open:=false;
Port1.ComNumber:=StrToInt(Edit5.Text);
Port1.Baud:=StrToInt(Edit6.Text);
Port1.Open:=True;
Timer2.Enabled:=true;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
Port1.Open:=true;
Timer2.Enabled:=true;
end;
 
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.04.2011, 10:19
Ответы с готовыми решениями:

Перевод из Делфи в С#
Привет всем. Есть тут у меня методичка и пример композиции в нем. Так как я в делфи даже переменную объявить не умею, очень хотелось бы...

перевод Делфи кода.
Есть Делфи код: TData8 = array of byte; PData8 = ^TData8; В принципе ни чего сложного в его переводе нету. public byte...

Перевод с С++ на делфи
Помогите решить: Гражданин 1 марта открыл счет в банке, вложив 1000 руб. Через каждый месяц размер вклада увеличивается на 2% от...

2
 Аватар для Петррр
6721 / 3570 / 900
Регистрация: 28.10.2010
Сообщений: 5,937
15.04.2011, 12:07
Могу сказать аналоги:
s.Length - Length(S);
ToString() - IntToStr;
Convert.ToInt32 - StrToInt.

Добавлено через 46 секунд
А лучше выложи проект.
0
21 / 21 / 3
Регистрация: 11.01.2011
Сообщений: 72
15.04.2011, 13:03  [ТС]
Петррр И на етом спасибо)))) я тока сам начал читать Делфи)))
Но вообщето хотелось перевести весь чтоб потом не путаться при составлении всего кода!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.04.2011, 13:03
Помогаю со студенческими работами здесь

Перевод из делфи в с
В заданной строке удалить символ двоеточие (:) и подсчитать количество удаленных символов uses crt; var a:string; kol:integer;...

перевод на делфи
помогите перевести на делфи с паскаля не как не могу перевести. uses crt; { @author Subbotin B.P. @see http://www.sbp-program.ru } ...

перевод с С++ на делфи
Я-начинающий программист Делфи. Кто-нибуть сможет помочь мне перевести код с билдера на делфи? union TVolume{ unsigned...

Перевод из делфи в с++
procedure Shum(k: integer); begin Vd:=Gauss(0,sigmaVd); Vb:=Gauss(0,sigmaVb); Ve:=Gauss(0,sigmaVe); end;

Перевод кодов из Делфи в С++
Нужна помощь в переводе кода из Делфи в С++. procedure TForm1.Button1Click(Sender: TObject); var a: array of integer; i, j, dl:...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru