array (3 dny praxe s VB)   otázka

VB.NET

uz 2 dny si lamu nad tim jak vytvorit array , prohledal jsem milion stranek na webu a ani z jedny nejsem nejak chytrej.

potrebuju vytvorit vicepole array

promena(0) = (text,cislo,cislo)

promena(1) = (text,cislo,cislo)

atd...

ale kdyz dam Dim promena() As String

promena(0)={"text",1,2}

tak mi to porad hlasi declaration expected.

v php je to jednoduchy

to by bylo takhle:

promena=array(array("text1",1,2),array("text2",11,22));

a zavolam promena[0][1] a vyleze text1

takhle podobne potrebuju vytvorit array ve visul basicu.

A nebo nejak aby Visual basic zavolal script php.exe mujscript.php a vratil vysledky do form okna , ja uz bych si to naprogramoval v php, jen vysledky by to vyhazelo do form okna.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud i ty cisla mají byt uložené jako string, použijte dvourozmerne pole.

dim promenna(10,2) as string
promenna(0,0) = "text"
promenna(0,1) = "cislo"

...

Pak funguje promenna(0)(x)

Ale rozumnější by bylo si vytvořit strukturu nebo třídu s členy string, a dvěma promennymi s čísly.

Udělat si pole těchto tříd nebo struktur.

Pak by jste mohl pohodlně:

Promenna(0).cislo = ...
promenna(0).text = ...

...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

kaslu na to , to je hroznej jazyk .

ja nechci delat 20 tisic promenych extra pro cislo extra pro text

ten array mi ma slouzit jako takova databaze ve ktery budou ulozeny data transformatoru

namaluju to jak to myslim ,snad mne nekdo pochopi

|jmeno_trafa1| rozmer1 | rozmer2 | rozmer3

------------ --------- --------- --------

|jmeno_trafa2| rozmer1 | rozmer2 | rozmer3

------------ --------- --------- --------

|jmeno_trafa3| rozmer1 | rozmer2 | rozmer3

------------ --------- --------- --------

tato cela tabulka bude jedna promena

a pak chci v ni hledat

if rozmer1 >= pozadovany_rozmer

return celej radek tabulky

break

Naprosto jednoduchy v php to mam napsany behem 5 sekund.

Ale jeste mi porad nikdo nevysvetlil jak vytvorit to array pole

porad mi to vyhazuje chybu declaration expected

coz asi znamena ze promena jiz byla definovana nebo nevim

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkuste tohle je to přehlednější a nemusíte si hrát s dvourozměrnými poli a konverzemi string na double...

Module Module1

    Sub Main()

        'List transofrmátorů
        Dim Transformatory As New List(Of clsTransformator)

        'Naplění listu
        Transformatory.Add(New clsTransformator("TR1", 50.0, 100.0, 150.0))
        Transformatory.Add(New clsTransformator("TR2", 70.0, 80.0, 200.0))
        Transformatory.Add(New clsTransformator("TR3", 100.0, 120.0, 220.0))


        Try
            'Hledaný rozměr
            Console.WriteLine("Zadejte rozměr:")
            Dim rozmer As Double = Double.Parse(Console.ReadLine())

            'Hledané trafo
            Dim HledanyTR As clsTransformator = FindTR(Transformatory, rozmer)

            'Výsledek
            Console.WriteLine("Název:{0}, Rozmer1={1}, Rozmer2={2}, Rozmer3={3}", _
                              HledanyTR.Name, HledanyTR.Rozmery(0), HledanyTR.Rozmery(1), _
                              HledanyTR.Rozmery(2))

            Console.ReadKey()

        Catch ex As Exception
            'Chyba
            Console.WriteLine(ex.Message)
            Console.ReadKey()
        End Try
        
    End Sub

    'Funkce pro nalezení transformátoru
    Public Function FindTR(ByVal TR As List(Of clsTransformator), ByVal Rozmer As Double) As clsTransformator

        'Cyklus pro prohledání listu
        For i As Integer = 0 To TR.Count - 1
            If TR(i).Rozmery(0) >= Rozmer Then Return TR(i)
        Next

        'Nenalezeno
        Throw New ArgumentException("Transformátor s požadovaným rozměrem nenalezen")
    End Function

    'Třída zastupující transformátor
    Public Class clsTransformator

        ''' <summary>
        ''' Název transofrmátoru
        ''' </summary>
        Public Name As String

        ''' <summary>
        ''' Rozměry transformátoru
        ''' </summary>
        Public Rozmery() As Double

        ''' <summary>
        ''' Konstruktor
        ''' </summary>
        ''' <param name="Name">Název TR</param>
        ''' <param name="Rozmery">Pole s rozměry TR</param>
        Public Sub New(ByVal Name As String, ByVal ParamArray Rozmery() As Double)
            If Rozmery.Length <> 3 Then Throw New ArgumentException("Pole rozměrů musí mít pouze tři členy")

            Me.Name = Name
            Me.Rozmery = Rozmery
        End Sub

    End Class

End Module
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Super dik , tohle vypada dobre. Problem tu ale je, ze pokud nepochopim array ve visual basicu , tak nema cenu v nem neco delat. Ja jsem zvyklej v programovani pouzivat hodne array. Programovat bez poli je jako programovat bez promenych. Tento program co pisu, ma slouzit jako vypocet pro vystupni transformator pro elektronkovy zesilovac v tride ab. Ten vypocet mam uz napsanej v php , jenze vystup bych musel udelat do html ale ja chci pouzit normalni windows aplikaci. Proto jsem zkusil Visual Basic , rozhodoval jsem se mezi VB, pascalem, C++ a pythonem. Ani s jednim jazykem nemam zkusenosti, tak jsem pristoupil k tomu nejjednodusimu, aspon si to myslim a tim je VB. Navic vysledny program bych potrebova zkompilovat tak, aby nepotreboval od uzivatele instalaci net frameworku.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Vzhledem k tomu, že na Vistách a výše už framework máš naistalovaný, tak to asi moc řešit nemusíš.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

***** kteří nejsou schopni si přečíst pár dílů tutoriálu o vbnetu by neměli vůbec programovat, první si o tom přečtěte a pak se ptejte!

ONDREJ ONDRYAS

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

z manualu a tutorialu nic nepochopim, ja se ucim primo z codu

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Možná by nemuselo být od věcy, si na to udělat nějakou tu vlastní třídičku, což?

nahlásit spamnahlásit spam 0 odpovědětodpovědět
        Dim promena(,) As String = {{"text", 1, 2}, {"text2", 11, 22}}

Snad začnete chápat syntaxi z tohoto příkladu přímo pro vás.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback