NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
IT rekvalifikace s podporou uplatnění. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Avatar
Neaktivní uživatel:5.3.2017 17:16

Ahoj, jak jsem programoval a zkoušel začal mi naskakovat ERROR že Soubor client.cfg už prostě něco využívá. A nevím jakou chybu mám v Source kódu.

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    If ListBox1.SelectedIndex = 0 Then
        Dim outputLines As New List(Of String)()
        Dim stringToMatch As String = "net.connect"
        Dim replacementString As String = "Nothing"
        For Each line As String In System.IO.File.ReadAllLines(AppDomain.CurrentDomain.BaseDirectory & "cfg\" & "client.cfg")
            Dim matchFound As Boolean
            matchFound = line.Contains(stringToMatch)

            If matchFound Then
                ' Replace line with string
                outputLines.Add(replacementString)
            Else
                outputLines.Add(line)
            End If
        Next
    End If


    Dim myStreamReaderL1 As System.IO.StreamReader
        Dim myStream As System.IO.StreamWriter

        Dim myStr As String
        myStreamReaderL1 = System.IO.File.OpenText(AppDomain.CurrentDomain.BaseDirectory & "cfg\" & "client.cfg")
        myStr = myStreamReaderL1.ReadToEnd()
        myStreamReaderL1.Close()


        myStr = myStr.Replace("Nothing", ListBox1.GetItemText(ListBox1.SelectedItem))
        'Save myStr
        myStream = System.IO.File.CreateText(AppDomain.CurrentDomain.BaseDirectory & "cfg\" & "client.cfg")
        myStream.WriteLine(myStr)
        myStream.Close()
        Shell(AppDomain.CurrentDomain.BaseDirectory & "rust.exe")
End Sub
Editováno 5.3.2017 17:16
Odpovědět
5.3.2017 17:16
Neaktivní uživatelský účet
Avatar
Nahoru Odpovědět
5.3.2017 17:19
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Michal Štěpánek:5.3.2017 20:27

Tato chyba se většinou objeví, když otevřeš soubor, něco s ním děláš, neuzavřeš ho a chceš ho otevřít znovu...

Nahoru Odpovědět
5.3.2017 20:27
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
VitekST
Člen
Avatar
Odpovídá na Neaktivní uživatel
VitekST:8.3.2017 21:20

Jak kolega Michal zmínil, otevřeš soubor si soubor a pak ho neuzavřeš, díky tomu ho program znovu nemůžeš otevřít aby ho mohl využívat, jinak řečeno vznikl ti tam resource leak.

Pro bezpečné uzavření veškerých prostředků po tom, co je přestaneš používat (třídy implementující rozhraní IDisposable) použij konstrukci Using: https://msdn.microsoft.com/…td05whh.aspx?…

 
Nahoru Odpovědět
8.3.2017 21:20
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.