Podminka If - else   zodpovězená otázka

VB.NET

Zdravim,

nejsem programator, takze se omlouvam za neumetelsky jazyk.

Potrebuji napsat jednoduchou podminku, jenze nevim jak dal.

Fungovat to ma tak, ze zjisti zda nejaky xls soubor existuje pokud ano, dale zjistuje, zda je jen pro cteni.... Pokud soubor neexistuje, pokracuje dal ve vykonavani dalsich prikazu.

Predpokladal jsem, ze pokud tam mam dvakrat podminku If musim tam mit dve Else, ale kdyz zadam druhe Else, editor mi hlasi, ze klicovemu slovu Else musi predachatzet If. Pokud tam druhe Else nedam tak program nefunguje tak jak potrebuji.

Diky


If System.IO.File.Exists(cesta) Then
		attributes = System.IO.File.GetAttributes(cesta)
	
        	If ((attributes And System.IO.FileAttributes.ReadOnly) = System.IO.FileAttributes.ReadOnly) Then
           	 MessageBox.Show("Soubor XLS je pouze pro čtení, aktuální kusovník nebude uložen!!!",cesta)
      	    Else
	
	Kill (cesta)
	
Else

.
.
.
.

End If
End If

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

If můžete mít ve variantě If-End If nebo If-Else-End If. Pokud If vnořujete do jiného If musíte ho mít stejně jako každý jiný příkaz celý buď v části If-Else/If-End If nebo Else-End If (podle logiky).

If System.IO.File.Exists(cesta) Then
    attributes = System.IO.File.GetAttributes(cesta)
     
    If ((attributes And System.IO.FileAttributes.ReadOnly) = System.IO.FileAttributes.ReadOnly) Then
        MessageBox.Show("Soubor XLS je pouze pro čtení, aktuální kusovník nebude uložen!!!",cesta)
    Else
        'Zpracování souboru
    End If
End If
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Toto bude, ale fungovat jen v pripade, ze soubor existuje. Chtel bych, aby "Zpracování souboru" probehlo i v pripade, ze soubor neexistuje. Samozrejme pro me by bylo nejjednodussi pers ctrl-c ctrl-v vlozit kod "Zpracovani souboru" jeste jednou, ale nechci zase ten kod zbytecne nafukovat.

Existuje nejake elegantnejsi a jednoduche reseni?

Diky

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

Existuje, prostě se to dá to samostatné metody:

    Private Sub ExportFile(ByVal filename As String)
         If System.IO.File.Exists(filename) Then
             attributes = System.IO.File.GetAttributes(filename)
             If ((attributes And System.IO.FileAttributes.ReadOnly) <> 0) Then
                 MessageBox.Show("Soubor XLS je pouze pro čtení, aktuální kusovník nebude uložen!!!", filename)
                 Return
             End If
             
             Kill (filename)
         End If

         'Vytvoření souboru
     End Sub
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Parada, uz to Funguje :)

Dekuji za Vase cenne rady.

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

.NET Framework 4+ má hezkou funkci na zjišťování položek výčtového typu (pokud je označen <Flags()>):

If IO.File.GetAttributes(cesta).HasFlag(IO.FileAttributes.ReadOnly) Then

Kill je pozůstatek z VB6, používejte

IO.File.Delete(cesta)
nahlásit spamnahlásit spam 0 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