Avatar billede tknudsen Nybegynder
25. november 1999 - 14:47 Der er 5 kommentarer og
1 løsning

flere variabler med samme absolutte adresse ?

i C findes der en type som hedder union. Den fungere på den måde at 2 eller flere vars bruger samme adresse område. Findes der en lignende type til delphi og i så fald hvad hedder den ?
Avatar billede snorga Nybegynder
25. november 1999 - 15:01 #1
Man kan sikkert lave noget med pointer.. men hvad kan man bruge det til?
Avatar billede tknudsen Nybegynder
25. november 1999 - 15:09 #2
eksempel:

blockread læser bytes til et array fra en fil. Nogle af disse bytes er oprindeligt fp og kan derfor ikke umiddelbart konverteres. Her ville det være smart at kunne læse noget af dette array som fp

c kode:

union fp
{
  uncigned char data[4];
  float value;
}

her vil det give mening at skrive
fp.data[0] = 0x01;
fp.data[1] = 0x70;
fp.data[2] = 0x00;
fp.data[3] = 0x00;

derefter kan der udlæses 1.3000000000000000000000 fra fp.value (ca)
Avatar billede delphi Nybegynder
25. november 1999 - 15:12 #3
Den simple måde med alm variable:
(Se Absolute in on-line hjælpen)

Var
  A : Integer;
  B : Byte Absolute A;

Den mere komplexe med Records (=Unions i C)
(Se "Variant parts in records" i on-line hjælpen)

Uses
  SysUtils, Controls;

Type
  TPerson = Record
    Navn    : String;
    PostNr  : String;
  Case Sex : Boolean of
    True    : (BilType  : String[40]);
    False  : (CykelType : String[20];
              BusLinie  : Integer;
              Foo      : TDate);
  end;

Var
  Person : TPerson;

Implementation

Procedure Bar;
Begin
  Person.Navn    := 'Kurt';
  Person.PostNr  := '8260';
  Person.BilType := 'Stor og voldsom Volvo';

  Person.Navn      := 'Listige Ida';
  Person.PostNr    := '9999';
  Person.CykelType := 'Gammelt vrag';
  Person.BusLinie  := 5;
  Person.Foo      := Now;
end;


NiP/Delphi
Avatar billede tknudsen Nybegynder
25. november 1999 - 15:50 #4
mange tak

jeg brugte absolute ideen og det virker :)
Avatar billede delphi Nybegynder
25. november 1999 - 15:53 #5
Fjong, vil du så også lukke spørgsmålet og evt. stikke mig lidt point - bare så'en for systemts skyld....

Delphi
Avatar billede tknudsen Nybegynder
30. november 1999 - 09:28 #6
Im very very sorry - her er dine points :)
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