Moro
Kertokaas mikä tässä on vikana kun on tarkoitus katsoa, löytyykö tuo tiedosto jos ei löydy, siirrytään seuraavaan aliohjelmaan: eli vika1 ja jos löytyy siikrrytään kohtaan jatka.
On Error GoTo vika1
FileOpen(1, "C:\Program Files\Snap\Native.BAT", OpenMode.Input)
FileClose(1)
Dim ver = "PRO"
Dim polku = "C:\Program Files\Snap\"
GoTo jatka
vika1:Siis onko tämän nyt tarkoitus olla VB6 vai VB.Net koodia?
VB.Netillä se toimisi varmaankin jotenkin
If System.IO.File.Exists("C:\Program Files\Snap\Native.BAT") Then
'Jotain
Else
'Muuta
End IfVirheiden käsittely VB.Netissä yleisesti
Try
'Koodi joka voi aiheuttaa virheen
'Suoritetaan jos ei virhettä
Catch ex As Exception
'Suoritetaan jos virhe
End Tryvb.net ja pitää kokeilla tuota kiitos
Sinänsä kai toi alkuperäinenkin koodi toimii (olettaen että jatka: -rivi löytyy jostain), mutta näyttää lähinnä joltain VB6:sta konekäännetyltä. Ihan konkreettisena virheenä pitäisi tuota kiinteän tiedostonumeron käyttämistä, joka voi koodin kasvaessa aiheuttaa ongelmia (siis kun pitäisi itse sitten varmistaa ettei päällekkäisiä numeroita käytetä). Muuten lähinnä kai huonoa koodaustyyliä.
Grez kirjoitti:
(15.09.2019 16:36:19): Sinänsä kai toi alkuperäinenkin koodi toimii...
Kiitos tästä, ihan harraste pohjalla ja QB:n ja VB6.en jälkeen harjoittelemassa VB.Net:in käyttöä. ei ole kone kääntänyt ja kun numeroita olen tottunut käyttämään niin ei niistä pääse eroon eikä vielä ole tullut ongelmia niiden käytössä vaikka olen tätä jo parikymmentä vuotta harrastanut.
No VB6:kaan ei ollut oletuksena monisäikeinen ja sillä oli suht vaikea tehdä monisäikeistä ohjelmaa. Tosin jo QB:ssä muistaakseni (no VB:ssä ainakin) oli FreeFile, jolla sai selville vapaan tiedostunumeron.
VB.Net maailmassa vois melkein sanoa että parhaaseen lopputuloksen pääsee jos unohtaa kaiken VB6:sta ja QB:stä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.