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 If
Virheiden käsittely VB.Netissä yleisesti
Try 'Koodi joka voi aiheuttaa virheen 'Suoritetaan jos ei virhettä Catch ex As Exception 'Suoritetaan jos virhe End Try
vb.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.