Dynamiczne tworzenie tablic

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
4B
Posty: 11
Rejestracja: 07 paź 2012 15:45
Wersja środowiska: LabVIEW 2009

Dynamiczne tworzenie tablic

Post autor: 4B »

Witam,

mam taki wydaje mi się nie jakiś straszny problem, ale nie mogę sobie z tym poradzić. Chodzi o to, że chcę stworzyć tablicę, na podstawie tego co sobie tam użytkownik w interfejsie zaznaczy. Tyle że jak sobie użytkownik zaznaczy 7 opcji, to chciałbym, żeby nowa tablica miała wymiary 7x1, jak 3 opcję - to 3x1 itd.
Na razie doszedłem do takiego momentu, że program generuje mi zawsze tablicę 18x1 (liczba opcji do wyboru), która wygląda powiedzmy tak:

00
01
#
#
#
05
06
07
#
09
itd.

# - używam jako zaznaczenia, że np. opcja numer 08 nie została wybrana (zaznaczona). No i teraz - chciałbym sobie dalej przesłać tablicę, która wygląda tak:

00
01
05
06
07
09

i jej wielkością jest liczba wybranych przez użytkownika opcji (zliczanie tego ile użytkownik zaznaczył True a ile False też już zrobiłem, więc samą wielkość nowej tablicy - też już posiadam.
Czy ktoś wie - jak można tak "dynamicznie" wycinać niepotrzebne znaki (#) z tej pierwszej tablicy? (czy raczej - tworzyć nową zawierającą tylko liczby)
Awatar użytkownika
smiga
Administrator
Posty: 799
Rejestracja: 04 paź 2009 12:41
Wersja środowiska: LabVIEW 2016
Lokalizacja: Słupsk

Re: Dynamiczne tworzenie tablic

Post autor: smiga »

Nie wiem czy dokładnie o to chodziło, ale zerknij na to (snipet w wersj 2012, ale VI w 2009):
Załączniki
tablica_s.png
tablica_s.png (20.6 KiB) Przejrzano 7585 razy
tablica_s.vi
v2009
(9.48 KiB) Pobrany 407 razy
__ Arkadiusz Śmigielski, tel. 662 01 01 74___
ObrazekObrazekObrazek
4B
Posty: 11
Rejestracja: 07 paź 2012 15:45
Wersja środowiska: LabVIEW 2009

Re: Dynamiczne tworzenie tablic

Post autor: 4B »

To znaczy - nadal nie mogę otworzyć (w sumie - nawet tymczasowo mam 2011 - czy mogę prosić o zapisanie tego w przynajmniej tej wersji?)
A co do programu - to jaki jest efekt jego działania? Czy nowa tablica ma zmienną wielkość rzędów? Zasadniczo jak tak - to jest to już jakiś krok naprzód, z którym może coś już zrobię.

-> Ogólnie - w programie który robię - chodzi o to, że użytkownik ma sobie wybrać jedną daną na oś x i ile chce danych (tzn. możliwych jest 17) na oś y. Dlatego ważne jest jeszcze, żeby w nowej tablicy zostały mi cyfry ze starej - tylko tam gdzie były # to całego rzędu ma nie być. A te liczby są o tyle ważne, że są to numery kolumn z pliku, który później jest wyświetlany na XY Graph (kolumn jest 17). Potem ten numer posłuży jako bezpośrednia informacja - którą kolumnę program ma jeszcze dodać do wykresu.
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Dynamiczne tworzenie tablic

Post autor: jogurt_owocowy »

Program w wersji 2009 w załączniku.
Wygląda inaczej niż na obrazku smigi, bo funkcjonalność o nazwie conditional autoindexing (mały terminal z pytajnikiem na wyjściu pętli) wprowadzono dopiero w wersji 2012. Funkcjonalnie są sobie równoważne.
Załączniki
tablica_s.vi
LV 2009
(9.02 KiB) Pobrany 405 razy
4B
Posty: 11
Rejestracja: 07 paź 2012 15:45
Wersja środowiska: LabVIEW 2009

Re: Dynamiczne tworzenie tablic

Post autor: 4B »

Chciałbym podziękować za pomoc. Co do tematu, to ostatecznie rozwiązałem po swojemu. Przeszedłem na stringa, zamieniłem # na 99 jako znak mówiący o nie wybranym wykresie - a następnie sortuję i ucinam stringa między ostatnią liczbą, a pierwszą 99. Ogólnie - chodzi :] Zostawiam .jpg z moim rozwiązaniem. Aha, do pętli for należy podłączyć ilość wybranych wykresów - ja już to miałem zrobione. Na .jpg jest po prostu wstawiona stała "8".
Załączniki
ZmianaWielkosciTabeli.jpg
ZmianaWielkosciTabeli.jpg (62.03 KiB) Przejrzano 7458 razy
ODPOWIEDZ