Bonjour

J'essaye de convertir ce prg codé en C# en delphi quelqu'un peut m'aider svp .

Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
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
private void btnReadCoils_Click(object sender, EventArgs e)
        {
            try
            {
                byte slaveAddress = 1;
                byte function = 1;
                ushort startAddress = 1536; // 10 decimal = A hexa
                uint numberOfPoints = 16; // 13 decimal = D hexa
 
                byte[] frame = ReadCoilsMsg(slaveAddress, startAddress, function, numberOfPoints);
                txtSendMsg.Text = Display(frame);
                if (serialPort1.IsOpen)
                {
                    serialPort1.Write(frame, 0, frame.Length);
                    Thread.Sleep(100); // Delay 100ms
                    if (serialPort1.BytesToRead >= 5)
                    {
                        byte[] bufferReceiver = new byte[this.serialPort1.BytesToRead];
                        serialPort1.Read(bufferReceiver, 0, serialPort1.BytesToRead);
                        serialPort1.DiscardInBuffer();
                        txtReceiMsg.Text = Display(bufferReceiver);
 
                        // Process data.
                        byte[] data = new byte[bufferReceiver.Length - 5];
                        Array.Copy(bufferReceiver, 3, data, 0, data.Length);
                        bool[] temp = ByteToBool(data);
                        string result = string.Empty;
                        foreach (var item in temp)
                        {
                            result += string.Format("{0} ", item);
                        }
                        txtResult.Text = result;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
 procedure TForm1.Button1Click(Sender: TObject);
var
 address : byte;
 fct    : byte;
 startadress : word;
 registers : longword;
 frameT : string;
 chaine : string;
 i:byte;
 BufferReceiver : array [] of integer;
  begin
 
     address :=  $11;
     fct := $04;
     startadress := $0008;
     registers := $0001;
     frameT := Readcoils( address, fct, startadress, registers);
 
     Chaine:='';
 
     For I := 0 To length(framet)-1   Do
      Chaine:=Chaine+' '+ intToHex(Ord(frameT.Chars[I]),2);
      edit1.Text :=   Chaine+' ';
 
      if comport1.Connected then
        begin
          comport1.Write(framet, framet.Length);
          sleep(100);
            if comport1.InputCount >= 5 then   
              begin
                BufferReceiver :=  comport1.InputCount;
                comport1.Read(bufferReceiver, comport1.InputCount);
                comport1.DiscardNull();
                edit2.Text := bufferReceiver;
 
              end;
        end