Avatar billede lassem Nybegynder
27. august 2002 - 13:36 Der er 8 kommentarer og
1 løsning

Konvertering Pascal => VB

Hej ...

Jeg vil gerne have nederstående kode konverteret til VB
hvis der skal mere info til må i jo lige sige til :)

m.v.h.
l. madsen

type //  A-Z
  TMArray = array[1..26] of Integer;

const
  DataArray1: TMArray = (0,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);

  DesArray: array[1..26] of Char = ('A','B','C','D','E','F','G',
                                    'H','I','J','K','L','M','N',
                                    'O','P','Q','R','S','T','U',
                                    'V','W','X','Y','Z');


type //  0-9 og A-Z
  TMyArray = array[1..36] of Integer;

const
  DataArray: TMyArray = (0,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);

  DescArray: array[1..36] of Char = ('0','1','2','3','4','5','6',
                                    '7','8','9','A','B','C','D',
                                    'E','F','G','H','I','J','K',
                                    'L','M','N','O','P','Q','R',
                                    'S','T','U','V','W','X','Y','Z');


procedure TForm1.GdataClick(Sender: TObject);
//Beregner fra seriel nummer til uniqe ID
var
C1,C2,C3,C4,Serial1,cur:Integer;

begin
Serial1:= StrToInt(Sernum.Text);
// C1 til C4 = char
  C1 := (SerIal1-10000000) div(36*36*36);
begin
  C2 :=((Serial1-10000000)-(36*36*36*c1)) DIV (36*36);
  begin
  C3 :=((Serial1-10000000)-(36*36*36*C1)- (36*36*c2)) DIV 36;
  begin
  C4 :=((Serial1 -10000000)-(36*36*36*C1)-(36*36*C2)) - (36*c3) ;
  // Beregning
  begin
  Cur := C1;
  if Cur = 26 then Cur := -1;
  C1 := Cur ;
  Cha1 := DesArray[C1 + 1];
  // Char 1
begin
  Cur := C2;
  if Cur = 36 then Cur := -1;
  C2 := Cur ;
  Cha2:= DescArray[C2 + 1];
  // Char 2
  begin
  Cur := C3;
  if Cur = 36 then Cur := -1;
  C3 := Cur ;
  Cha3 := DescArray[C3 + 1];
  // Char 3
  begin
  Cur := C4;
  if Cur = 36 then Cur := -1;
  C4 := Cur ;
  Cha4 := DescArray[C4 + 1];
  // Char 4
    globalID.text:=(cha1+cha2+cha3+cha4);
    crtID.text:=(cha1+cha2+cha3+cha4);
    end;end;end;end;end;end;end;


end;
Avatar billede djones Nybegynder
27. august 2002 - 15:15 #1
Hvad er: cha1,cha2,cha3,cha4? - variabler?
Avatar billede djones Nybegynder
27. august 2002 - 15:15 #2
Glem det
Avatar billede djones Nybegynder
27. august 2002 - 15:18 #3
Det gøres således:

BTW Husk at tilføje de 3 editboxe og knappen

/////////////////////////////////////////////
// Her begynder koden
/////////////////////////////////////////////

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TMArray = array[1..26] of Integer;
const
  DataArray1: TMArray = (0,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);

  DesArray: array[1..26] of Char = ('A','B','C','D','E','F','G',
                                    'H','I','J','K','L','M','N',
                                    'O','P','Q','R','S','T','U',
                                    'V','W','X','Y','Z');


type //  0-9 og A-Z
  TMyArray = array[1..36] of Integer;

const
  DataArray: TMyArray = (0,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);

  DescArray: array[1..36] of Char = ('0','1','2','3','4','5','6',
                                    '7','8','9','A','B','C','D',
                                    'E','F','G','H','I','J','K',
                                    'L','M','N','O','P','Q','R',
                                    'S','T','U','V','W','X','Y','Z');
type
  TForm1 = class(TForm)
    GDataClick: TButton;
    Sernum: TEdit;
    globalid: TEdit;
    crtid: TEdit;
    procedure GdataClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

//Beregner fra seriel nummer til uniqe ID
procedure TForm1.GdataClick(Sender: TObject);
var
C1,C2,C3,C4,Serial1,cur:Integer;
cha1,cha2,cha3,cha4: char;
begin
Serial1:= StrToInt(Sernum.Text);
// C1 til C4 = char
  C1 := (SerIal1-10000000) div(36*36*36);
begin
  C2 :=((Serial1-10000000)-(36*36*36*c1)) DIV (36*36);
  begin
  C3 :=((Serial1-10000000)-(36*36*36*C1)- (36*36*c2)) DIV 36;
  begin
  C4 :=((Serial1 -10000000)-(36*36*36*C1)-(36*36*C2)) - (36*c3) ;
  // Beregning
  begin
  Cur := C1;
  if Cur = 26 then Cur := -1;
  C1 := Cur ;
  Cha1 := DesArray[C1 + 1];
  // Char 1
begin
  Cur := C2;
  if Cur = 36 then Cur := -1;
  C2 := Cur ;
  Cha2:= DescArray[C2 + 1];
  // Char 2
  begin
  Cur := C3;
  if Cur = 36 then Cur := -1;
  C3 := Cur ;
  Cha3 := DescArray[C3 + 1];
  // Char 3
  begin
  Cur := C4;
  if Cur = 36 then Cur := -1;
  C4 := Cur ;
  Cha4 := DescArray[C4 + 1];
  // Char 4
    globalID.text:=(cha1+cha2+cha3+cha4);
    crtID.text:=(cha1+cha2+cha3+cha4);
    end;end;end;end;end;end;end;


end;

end.
Avatar billede djones Nybegynder
27. august 2002 - 15:19 #4
Og det var så self. et SVAR og ikke en kommentar - min fejl
Avatar billede djones Nybegynder
27. august 2002 - 15:20 #5
DOOOOH - så lige nu at det var fra Pascal til VB.

Jeg skal vist lære at læse hvad der står før jeg handler
Avatar billede medions Nybegynder
27. august 2002 - 15:34 #6
Hmm nu kan jeg ikke Pascal, så hvis du ville prøve at oversætte præcis hvad den gør så kan jeg prøve at lave det for dig...

//>Rune
Avatar billede bak Forsker
27. august 2002 - 16:39 #7
Hvilket tal kunne fx. være dit input ?
jeg har lidt overflow-problemer
Avatar billede bak Forsker
27. august 2002 - 17:12 #8
Dette er det tætteste jeg kommer på uden at have noget at chekke op imod

Sub test(sernumtext)
  Dim DataArray1
  dataarray1 = Array(0, 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)
  Dim DesArray
  DesArray = Array("A", "B", "C", "D", "E", "F", "G", _
                      "H", "I", "J", "K", "L", "M", "N", _
                      "O", "P", "Q", "R", "S", "T", "U", _
                                    "V", "W", "X", "Y", "Z")


Dim DataArray
  DataArray = Array(0, 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)

Dim DescArray
  DescArray = Array("0", "1", "2", "3", "4", "5", "6", _
                                    "7", "8", "9", "A", "B", "C", "D", _
                                    "E", "F", "G", "H", "I", "J", "K", _
                                    "L", "M", "N", "O", "P", "Q", "R", _
                                    "S", "T", "U", "V", "W", "X", "Y", "Z")


'//Beregner fra seriel nummer til uniqe ID
Dim c1 As Long, c2 As Long, c3 As Long, c4 As Long
Dim SerIal1 As Long, cur As Integer
Dim test1 As Long

SerIal1 = Val(sernumtext)
'// C1 til C4 = char
  c1 = (SerIal1 - 10000000) \ 36 ^ 3
  c2 = ((SerIal1 - 10000000) - (36 ^ 3 * c1)) \ (36 ^ 2)
  c3 = ((SerIal1 - 10000000) - (36 ^ 3 * c1) - (36 ^ 2 * c2)) \ 36
  c4 = ((SerIal1 - 10000000) - (36 ^ 3 * c1) - (36 ^ 2 * c2)) - (36 * c3)
'  // Beregning
  cur = c1
  If cur >= 26 Then cur = -1
  c1 = cur
  cha1 = DesArray(c1 + 1)
  cur = c2

 
  If cur >= 36 Then cur = -1
  c2 = cur
  cha2 = DescArray(c2 + 1)

' // Char 2
  cur = c3
  If cur >= 36 Then cur = -1
  c3 = cur
  cha3 = DescArray(c3 + 1)
  cur = c4
  '// Char 3
  If cur >= 36 Then cur = -1
  c4 = cur
  cha4 = DescArray(c4 + 1)
  '// Char 4
  globalID.Text = (cha1 + cha2 + cha3 + cha4)
  crtID.Text = (cha1 + cha2 + cha3 + cha4)
 
End Sub
Avatar billede lassem Nybegynder
28. august 2002 - 08:31 #9
Tak til Bak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester