Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

[VB 2017] Jak wstawić tablicę jednowymiarową do dwuwymiarowej



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Visual Studio: C#, VB, VC++, …
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
GregoryyyR



Dołączył: 03 Paź 2012
Posty: 32

PostWysłany: Pią Cze 14, 2019 10:04 pm  OP    Temat postu: [VB 2017] Jak wstawić tablicę jednowymiarową do dwuwymiarowej Odpowiedz z cytatem Pisownia

Odbieram dane z portu rs232, które za pomocą funkcji Split zamieniam na tablicę jednowymiarową. Potrzebuję następnie tą tablicę dodać jako kolejny wiersz do tablicy dwuwymiarowej o takiej samej długości. Jak można zrobić to najprościej?? Czy są bezpośrednie polecenia czy pozostaje tylko metoda poprzez iterowanie tablicy?
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
samolot



Dołączył: 26 Sty 2006
Posty: 8316
Skąd: Toruń

PostWysłany: Pią Cze 14, 2019 11:44 pm      Temat postu: Odpowiedz z cytatem Pisownia

Ja bym to zrobił tak jak poniżej:
w module głównym wstawiłbym deklarację struktury, która zawierałaby elementy jako tablice jednowymiarowe:
Kod:
Module Module1

    Public Structure TablicaJednowymiarowa
        Dim Elementy() As String
    End Structure

End Module

Natomiast w module formy na poziomie modułu (wiersze 3 i 4) zadeklarowałbym tablicę tych struktur oraz zmienną na indeks kolejnej tablicy (czyli struktury) w tej tablicy struktur.
Poniżej w wierszach 6-20 jest kod zdarzenia Click Buttona. Każde kolejne klikniecie w button powoduje dodanie do tablicy struktur kolejnej tablicy jednowymiarowej odczytów. W moim przykładzie jest to przykładowa tablica zadeklarowana w wierszu 11. U ciebie byłaby to kolejna tablica jednowymiarowa odczytów.
Kod:
Public Class Form1

    Dim NrTablicy As Integer = -1
    Dim Wielowymiarowa() As TablicaJednowymiarowa

    Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
        Dim NrElementu As Integer = -1

        NrTablicy += 1
        ReDim Preserve Wielowymiarowa(NrTablicy)
        Dim TB_Odczyt() As String = {"Nr1", "Nr2", "Nr3"}

        For NrElementu = 0 To TB_Odczyt.Length - 1
            ReDim Preserve Wielowymiarowa(NrTablicy).Elementy(NrElementu)
            Wielowymiarowa(NrTablicy).Elementy(NrElementu) = TB_Odczyt(NrElementu)
        Next NrElementu

        Dim Ile As Long = Wielowymiarowa.Length

    End Sub


Na obrazku w załączniku jest pokazany ten fragment kodu z podglądem wpisanych do tablicy wartości.
Czyli otrzymana tablica struktur o nazwie Wielowymiarowa jest de facto tablicą tablic jednowymiarowych.

Tak sposób jest dla mnie przejrzysty i od dawna go stosuje.
Bo, na przykład można by od razu deklarować tablicę wielowymiarową i wypełniać ją odpowiednio danymi. Ale przy tym sposobie mi zawsze myliły się indeksy, który indeks dotyczy którego wymiaru tablicy wielowymiarowej.

Natomiast moja tablica struktur jest taką samą tablicą dwuwymiarowa, ale ułatwieniem jest to, że każdy z wymiarów ma inną nazwe i przez to łatwiej się do nich w kodzie odwoływać.



TablicaTablic.png
 Opis:

Pobierz
 Nazwa pliku:  TablicaTablic.png
 Wielkość pliku:  31.04 KB
 Pobierano:  9 raz(y)


_________________
Nie zadawaj bezcelowych pytań / Windows 8.1 / Windows 10 / VB2008 / VB 2010 / VB 2012 / Pisz poprawnie
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Visual Studio: C#, VB, VC++, … Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.14819 sekund, zapytan = 13
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |