To co mam na mysli to stworzenie dynamicznie typu enumeracyjnego lub tablicy dynamicznej z odwoływaniem sie do pól poprzez dynamicznie zdefiniowane nazy czyli np.
Tablica[imie]
Tablica[nazwisko]
Jeżeli to jest mozliwe jeśli nie to trudno sie mówi.
To co mam na mysli to stworzenie dynamicznie typu enumeracyjnego lub tablicy dynamicznej z odwoływaniem sie do pól poprzez dynamicznie zdefiniowane nazy czyli np.
Tablica[imie]
Tablica[nazwisko]
Jeżeli to jest mozliwe jeśli nie to trudno sie mówi.
Zrob sobie funkcje Szukaj, która bedzie przeszukiwać tablice i zwracać nr rekordu a potem tylko: Tablica[Szukaj(Imie)]
Przykładowa: (musisz to dopracować, bo jak f-cja niczego nie znajdzie to zwroci 0, a taki rekord też istnieje)
Function Szukaj(Const S:String):Word;
Var I:Word;
Begin
Result:=0;
For I:=0 TO Length(Tablica)-1 Do If S=Tablica[I] Then
Begin
Result:=I;
Break;
End;
End;
Chyba zle sie wyraziłem nie mam na mysli wywolania procedury w celu sprawdzenia zawartosci komorki zeby to zwrocilo tą samą zawartość co podalem w parametrze.
Chcę dynamicznie stworzyc nowy typ np
type Nazwy = (Imie, Nazwisko, Adres)
Jak stworzyc takie cosik dynamicznie albo jak sprawic aby uzyskać efekt taki jak po zrobieniu czegos w tym stylu
type Nazwy = (Imie, Nazwisko, Adres)
var Tablica: array[Nazwy] of string;
procedure wykonaj
begin
Tablica[Imie] := 'Igor'
end;
Typ nazwy ma być generowany DYNAMICZNIE albo ma to dzialac w identyczny sposób ale dynamicznie. "identyczny" odnosi sie do działania odwołan w tablicy.
Jakby ktos nie wiedział czym jest typ enumeracyjny niech wpisze w helpie enumerated i poczyta sobie.
To jest bez sensu. Typ enumeracyjny, to jedynie odpowiednio przyporządkowane liczby. W czasie kompilacji zastępowany jest liczbami. Takie coś:
type Nazwy = (Imie, Nazwisko, Adres)
jest równoważne:
type Nazwy = (0, 1, 2);
A to z kolei:
type Nazwy = 0..2;
A to już zawsze zajmuje 1 bajt, więc spokojnie można zastąpić przez:
type Nazwy = Byte;
Tyle, że bez kontroli zakresu jest :)
No nie powiedziałbym bo jednakowoż jakoś rozpoznaje ze to jest tyle a to tyle no nie. A nawet jezeli to i tak chce wiedziec jak mozna dynamicznie je stworzyć!!
Nie można. To wynika z charakteru tych typów: jak pisał Dryo, kompilator każdej nazwie przypisuje liczbę. Tworząc to dynamicznie kompilator musiałby dowalić nieźle kodu dla przydzielania liczb i rozpoznawania nazw.