ukládání podmínek   zodpovězená otázka

VB.NET

Zdravím.

Potřeboval bych poradit jak a kam ukládat podmínky. Mám funkce

Public Enum STAV
        VOLNO = 0
        OBSAZENO = 1
    End Enum

    Dim blok1 As STAV, blok2 As STAV, blok3 As STAV, blok4 As STAV, blok5 As STAV, stanicniKolej1 As STAV

    Public Function VlakovaCesta1()
        If blok1 = STAV.VOLNO And blok2 = STAV.VOLNO And stanicniKolej1 = STAV.VOLNO Then
            imgBlok1.Image = My.Resource.Blok_zluty
            imgBlok2.Image = My.Resource.Blok_zluty
            imgStKolej1.Image = My.Resource.kolej_zluta
        End If
    End Function

    Public Function VlakovaCesta2()
        If blok3 = STAV.VOLNO And blok4 = STAV.VOLNO And blok5 = STAV.VOLNO And stanicniKolej2 = STAV.VOLNO Then
            imgBlok3.Image = My.Resource.Blok_zluty
            imgBlok4.Image = My.Resource.Blok_zluty
            imgBlok5.Image = My.Resource.Blok_zluty
            imgStKolej2.Image = My.Resource.kolej_zluta
        End If
    End Function

myslel jsem jestli by to šlo někam ukládat, protože ale každá cesta se může skládat z více (někdy 3, někdy 7, apod.) "bloků" a psát si tolik funkci se mi nějak nechce... potřeboval bych něco jako tohle

Public Function VlakovaCesta (ByVal CisloCesty)
    '... tady zjistit z "něčeho" podle "CisloCesty", které části mají být otestovány na volnost, otestovat je a pokud je vše volné pak přečist které obrázky má změnit, a přehodit je
End Function

Jen prostě nevím kde ty data uchovávat, když má každá cesta jiný počet bloků, a jak testovat pokaždé jiný počet podmínek

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

Vámi načrtnutý způsob není vůbec vhodný, protože vyžaduje rekompilaci aplikace při přidávání nových tratí. Navrhoval bych spíš něco jiného. Umíte XML? Zkuste si o něm něco najít. Tratě by se dali zapsat třeba takto:

        If blok3 = STAV.VOLNO And blok4 = STAV.VOLNO And blok5 = STAV.VOLNO And stanicniKolej2 = STAV.VOLNO

Může být

<Cesta>
  <Podminka blok3="VOLNO" blok4="VOLNO" blok5="VOLNO" stanicniKolej2="VOLNO">
    <Zmena imgBlok3="Blok_zluty" />
    <!-- atd, idea je jasná -->
  </Podminka>
</Cesta>

A nebo sofistikovanějí větvení:

<Cesta>
  <Podminka blok3="VOLNO">
    <Podminka blok4="VOLNO">
      <Zmena ... />
      <Chyba>
        <Podminka blok4_2="VOLNO">
          <!-- existuje alternativní trasa... -->
        </Podminka>
      </Chyba>
    </Podminka>
    <Chyba zprava="blok3 není volný" />
  </Podminka>
</Cesta>

Něco takového. Bude to chtít promyslet a doladit, ale mohlo by to fungovat. Navíc bude možné podmínky modifikovat bez změny v programu.

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

O xml ve vb jsem toho moc nenašel. Zkoušel to i podle článku na tomto webu ale zůstal jsem vyset u

 doc.Load("data.xml") 

na tomhle mi program zastaví. Mohl by jste mi alespoň nastínit jak to xml číst.Nebo odkaz na nějaký článek kde se to dozvím?

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

Když si ten článek přečtete pořádně a celý, pochopíte. http://www.vbnet.cz/clanek--80-prace_s_x...

To data.xml je název souboru, ve kterém jsou ta data ve formátu XML a ten soubor musí být ve složce, odkud spouštíte tu aplikaci. V článku je to vysvětleno.

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