Avatar billede christian_h Nybegynder
10. september 2003 - 20:32 Der er 14 kommentarer og
1 løsning

Variabler og lidt mere Delphi vs VB

Hej Alle Eksperter.

Jeg programerer normalt i VB, og lige nu er jeg ved at oversætte noget code fra Delphi, derfor disse måske lidt banale spørgsmål.

Hvis nu man har nedenstående kode, hvad er "Cardinal" så, er det en variable type, og hvad er den tilsvarende variable så i VB ?

Hvad svarer "begin" og "end" til i VB, er det som en "do Loop" eller hva ??.

En "procedure" svarer det til en sub ?, jeg går udfra at en "function" er lige som en function i VB.

Håber nogen kan hjælpe.

Mvh.

Christian_h

function AckPolFlash(Cmd,I : Integer; Value : Word; Signature : Cardinal) : Boolean;
Var B : Byte;
    T : Integer;
begin
  Result:=FALSE;
  Mere kode her
  If Value=$7F then
  begin
    Sleep(10);  //9,6,..,..
  end
  else
  begin
    T:=0;
    repeat
      Sleep(1);
      Mere kode her
    until (Value=B) or (T=500);
    If T=500 then
    begin
      Mere kode her
      Result:=TRUE;
    end;
  end;
end;
Avatar billede arne_v Ekspert
10. september 2003 - 20:36 #1
begin end er en gruppering af kode (ligesom {} i C/C++/C#/Java). Man
kan putte sådan en gruppe ind alle steder hvor der kan stå et enkelt statement.

procedure=sub
function=function

cardinal er en unsigned 32 bit integer (0..4294967295)
Avatar billede christian_h Nybegynder
10. september 2003 - 20:43 #2
OK,

"begin end er en gruppering af kode (ligesom {} i C/C++/C#/Java). Man
kan putte sådan en gruppe ind alle steder hvor der kan stå et enkelt statement"

Hva kan man erstatte ovenstående med i VB ???

Og kan man bruge : Long (long integer) 4 bytes -2,147,483,648 to 2,147,483,647
i stedet for Cadinal, eller skal den også kunne tage bogstaver som i en sting ?
Avatar billede christian_h Nybegynder
10. september 2003 - 20:45 #3
Hva vil det sige at Cardinal er "Unsigned" ??
Avatar billede arne_v Ekspert
10. september 2003 - 20:48 #4
unsigned = altid positiv

0 .. 4 294 967 295 i stedet for -2 147 483 648 .. 2 147 483 647
Avatar billede arne_v Ekspert
10. september 2003 - 20:50 #5
VB ligesom f.eks. FORTRAN har ikke den compund statement (som det hedder).

I Pascal betyder:

if a > 0 then
  b := 1;
c := 2;

at if kun dækker 1 statement (b := 1), hvis den skal dække begge
skal man bruge:

if a > 0 then begin
  b := 1;
  c := 2;
end;

I VB bruger man bare then og end if.

Samme med løkker.
Avatar billede christian_h Nybegynder
10. september 2003 - 20:52 #6
Er det OK, med 30 point, da du ikke har svaret på det med Begin end  ?.

Takker for hjælpen, og åbner nyt ? med Begin end

Mvh.

Christian_h
Avatar billede arne_v Ekspert
10. september 2003 - 20:55 #7
Er det ike det jeg har forklaret i min 20:50:35 kommentar ?
Avatar billede christian_h Nybegynder
10. september 2003 - 21:00 #8
Jo jo Arne, jeg var bare lige lidt hurtig SORRY.

Jeg forstår ikke helt hva du mener, gider du prøve at ændre begin end i nedenstående kode, bare som test, for der er jo også if sætninger i forvejen, du skal ikke tænke på resten af koden.

function AckPolFlash(Cmd,I : Integer; Value : Word; Signature : Cardinal) : Boolean;
Var B : Byte;
    T : Integer;
begin
  Result:=FALSE;
  Mere kode her
  If Value=$7F then
  begin
    Sleep(10);  //9,6,..,..
  end
  else
  begin
    T:=0;
    repeat
      Sleep(1);
      Mere kode her
    until (Value=B) or (T=500);
    If T=500 then
    begin
      Mere kode her
      Result:=TRUE;
    end;
  end;
end;
Avatar billede athlon-pascal Juniormester
10. september 2003 - 21:11 #9
Først: Jeg ved (næsten) intet om VB...

function AckPolFlash(Cmd,I : Integer; Value : Word; Signature : Cardinal) : Boolean;
Var B : Byte; <- Heltal, 0-255
    T : Integer; <- Heltal, også negativ
begin
  Result:=FALSE; <- Result er functionens resultat, en sand/falsk-værdi, der her sættes til falsk.
  Mere kode her
  If Value=$7F then <- Hvis variablen value = hex-værdien 7F, så
  begin <- begynd
    Sleep(10);  //9,6,..,.. <- Kort pause, mener 10 er en 100-del sekund.
  end <- slut
  else <- ellers
  begin <- begynd
    T:=0; <- Variablen T sættes til 0.
    repeat <- fortsæt
      Sleep(1); <- Endnu kortere pause.
      Mere kode her
    until (Value=B) or (T=500); <- Indtil variablen value = variablen b, eller variablen T = 500.
    If T=500 then <- Hvis variablen T = 500 så
    begin <- begynd
      Mere kode her
      Result:=TRUE; < Funktionens resultat sættes til true (sand).
    end; <- slut
  end; <- slut
end; <- slut
Avatar billede arne_v Ekspert
10. september 2003 - 21:13 #10
Pascal:

if betingelse then
begin
  linie 1
  linie 2
  linie 3
end;

bliver til VB:

if betingelse then
  linie 1
  linie 2
  linie 3
end if
Avatar billede arne_v Ekspert
10. september 2003 - 21:14 #11
repeat
...
until betingelse;

i Pascal er:

do
...
loop until betingelse

i VB.
Avatar billede arne_v Ekspert
10. september 2003 - 21:16 #12
function f(v : integer) : integer;

begin
...
end;

i Pascal er:

function f(dim v as integer) as integer
...
end function
Avatar billede athlon-pascal Juniormester
10. september 2003 - 21:17 #13
Jeg ved ikke hvordan VB har det med hex-værdier, men
  If Value=$7F then
kan altid laves om til
  If Value=127 then
Avatar billede arne_v Ekspert
10. september 2003 - 21:17 #14
VB har slet ikke noget der svarer til begin.

VB bruger end xxxxx i stedetfor end.
Avatar billede christian_h Nybegynder
10. september 2003 - 21:17 #15
OK, Arne, tror jeg har den, TAK for hjælpen, jeg har tildelt dig de 60 point

Mvh.

Christian_h
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

Seneste spørgsmål Seneste aktivitet
I går 10:21 Ny printer, men hvilken Af mort1 i Printere
13/0819:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging