elementy zbioru

  • Rejestracja: dni
  • Ostatnio: dni
0

Mam zbiór zdefiniowany następująco:
Type
Zbior= set of char;
i zmienną: var Litery: Zbior;

{i podstawiamy wartości do zmiennej}
begin
Litery:= [d,f,g,r,e,y,r,t];

I teraz załóżmy że nie znam zawartości zmiennej "Litery", a chciałbym się dowiedzieć jaka litera jest na n-tym miejscu , to jak uzyskać tę informację?

Odysseus
  • Rejestracja: dni
  • Ostatnio: dni
0

Chyba coś zmieniło się matrix'ie bo mam deja vu. :-|

Odysseus
  • Rejestracja: dni
  • Ostatnio: dni
0

No tak... zmieniła się nazwa autora postu http://4programmers.net/Forum/viewtopic.php?id=100670

Jeżeli piszesz to w Delphi i nie potrzebujesz polskich znaków to można zrobić to tak:
do sekcji uses dodajesz moduł TypInfo i deklarujesz typ wyliczeniowy:

Kopiuj
type
  {$M+}  //dołącz informację RTTI dla dla typu TTypWylicz
  TTypWylicz=(d,f,g,r,e,y,t);
  {$M-}

dodajesz zmieną Nazwa i n:

Kopiuj
var
  Nazwa:String[1];  
  n:Integer;

używasz funkcji GetEnumName(), znajdującej się w dodanym module TypInfo:

Kopiuj
Nazwa:=GetEnumName(TypeInfo(TTypWylicz),ord(n));

Inna funkcja, która może się przydać w tym przypadku to GetEnumValue().

Kopiuj
n:=GetEnumValue(TypeInfo(TTypWylicz),Nazwa);
brodny
  • Rejestracja: dni
  • Ostatnio: dni
0

O ile dobrze zrozumiałem, to jemu chodziło o kolejność elementów zbioru ale w zmiennej typu zbiorowego. Jak ktoś słusznie wcześniej napisał, jest to bez sensu, bo albo wartość do zbioru należy, albo nie, bez roztrząsania kwestii jej "miejsca" w przypisaniu wartości do zmiennej bądź kolejności dodawania elementów do zbioru. Natomiast kod Odyseusza poda wszystkie możliwe elementy zbioru (o ile dobrze pamiętam :) ).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.