Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: deklarowanie zmiennych w kodzie
HejHo




Typ: neutral
Postów: 66
Zarejestrowany: Apr 2003
deklarowanie zmiennych w kodzie

mam pewien problem:
mam 2wymiarowa tablice z taka zawartoscia:
nazwa zmiennej, wartosc zmiennej
i musze utworzyc zmienne o nazwie pobranej z tablicy i przypisac do niej odpowiadajaca jej wartosc... nie chodzi mi o tablice zmiennych, tylko zadeklarowac zmienna po nazwie, CallByName w tym przypadku nie dziala

15-11-2004 19:38
Pokaż profil HejHo  Wyślij email do HejHo        6384729
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Obawiam się, że nie ma sposobu na stworzenie w run-time zmiennej o zadanej nazwie - i to nie tylko w VB. Wynika to z tego, że nazwy zmiennych są tylko symbolicznymi nazwami potrzebnymi programiscie - podczas kompilacji zostają poprostu usunięte, bo program do niczego ich nie potrzebuje.
Żeby stworzyć zmienne w run-time możesz spróbować posłużyć się funkcjami WinAPI do zarządzania pamięcią, ale ostrzegam, że to wiąże się z używaniem adresów (ewentualnie uchwytów), czego wiele osób (nie wiem dlaczego) nie lubi. Drugim sposobem jest stworzenie pustej tablicy, która w czasie działania programu będzie pełniła roli twojej własnej, niewielkiej pamięci wirtualnej (którą oczywiście sam musisz zarządzać). Jeśli koniecznie chcesz używac nazw - możesz zrobić następujący trick: jako zmiennych używać... rekordów w kolekcji. Można im nadać nazwę (i tutaj nie jesteś ograniczony regułami nazewnictwa VB) i można im przypisać wartość, więc się do tego nadają.

Moge się jednak mylić, niech ktoś mnie poprawi, jeśli tak jest.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

15-11-2004 21:55
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Wszystkich odpowiedzi: 1 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1