Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten
Autor
Nachricht
sollniss_
Coder
Coder

Anmeldedatum: 08.09.2007
Beiträge: 212

Mehrere Problemchen (Dateizugriff & Textbox)
Verfasst am: 11.04.2008, 14:53

Jo mein erstes Problem:

ich hab Textbox1.locked = true, aber trotzdem kann ich da was eingeben ~.~

und 2.:

Ich will sowas wie "Änderung speichern" machen und dazu lese ich vorher den Inhalt der Datei aus in Vergleiche ihn mit dem was im Prog steht. Leider bekomm ich beim Auslesen nen Fehler:

Der Prozess kann nicht auf die Datei C:\bla\blubb.txt zugreifen, da sie von einem anderen Prozess verwendet wird.

oO

benutze die Funktion hier:

Code:
    Private Function DateiAuslesen(ByVal Pfad As String) As String
        Dim strInhalt As String
        Dim objReader As StreamReader

        objReader = New StreamReader(Pfad)
        strInhalt = objReader.ReadToEnd()
        objReader.Close()
        DateiAuslesen = strInhalt
    End Function

http://sollniss.1x.to/

 
Viruz_
Newbie
Newbie

Anmeldedatum: 19.09.2007
Beiträge: 8


Verfasst am: 11.04.2008, 15:01

hi,
also erstmal kannst du die Textbox mit Textbox.enabled = false ausschalten aber auch mit textbox.locked = true naja nimm halt enabled geht auch.

Und dein 2th problem liegt daran das die Datei bereits ausgeführt ist...sagt der Fehler doch evt startest du die datei 2 mal
 
sollniss_
Coder
Coder

Anmeldedatum: 08.09.2007
Beiträge: 212


Verfasst am: 11.04.2008, 16:16

ich lade die datei beim start, aber da schließe ich den filestream auch wieder kp woran das liegen soll

wenn ne textbox disabled is kann doch das prog auch nix mehr reinschreiben oder?
http://sollniss.1x.to/

 
tr4st_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 17.12.2007
Beiträge: 315
Wohnort: Private Class _ Villa()


Verfasst am: 11.04.2008, 16:28

Es gibt dafür extra die ReadOnly Eigenschaft, aber Disabled funktioniert auch nur kann man dann den Text nicht mehr markieren.
Code:
TextBox.ReadOnly = True

Und wie liest du bitte eine Datei aus?
Also ich hab dir mal nen Vierzeiler geschrieben.
Code:
Private Function ReadContent(ByVal FilePath As String)
        Dim ContentFile As New System.IO.StreamReader(FilePath)
        Return ContentFile.ReadToEnd.ToString()
End Function

Und vergleichen kannst du die Dateien über ihren MD5 Hash Wink eine Function dazu findest du in unserem Source Bereich.
Avoid Suspicion, Manipulate your friends, Eliminate your enemies.
 
sollniss_
Coder
Coder

Anmeldedatum: 08.09.2007
Beiträge: 212


Verfasst am: 11.04.2008, 17:10

Code:
Private Function DateiAuslesen(ByVal Pfad As String) As String

        Dim strInhalt As String
        Dim objReader As StreamReader

        objReader = New StreamReader(Pfad) ' Hier kommt der oben genannte Fehler
        strInhalt = objReader.ReadToEnd()
        objReader.Close()
        DateiAuslesen = strInhalt
    End Function

 Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            Dim strName As String
            Dim strPW As String
            Dim buffer As String

            Dim objStream As FileStream = _
                  New FileStream(Application.StartupPath & "\accounts.txt", FileMode.Open)
            Dim objReader As StreamReader = New StreamReader(objStream)
            Dim i As Integer
            ltvAccounts.Items.Clear()
            Do Until objReader.Peek() = -1

                buffer = Nothing
                buffer = objReader.ReadLine

                strName = buffer.Split(vbTab)(0)
                strPW = buffer.Split(vbTab)(1)
                ltvAccounts.Items.Add(strName)
                ltvAccounts.Items(ltvAccounts.Items.Count - 1).SubItems.Add(strPW)

                i += 1
            Loop
            objReader.Close()
            objStream.Close()
        Catch except As Exception
            Exit Sub
        End Try
    End Sub

Private Sub frmMain_Disposed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Disposed
        Dim strInhalt As String = DateiAuslesen(Application.StartupPath & "\accounts.txt")

        Dim strNeuerInhalt As String
        Dim i As Integer

        For i = 0 To ltvAccounts.Items.Count - 1
            strNeuerInhalt = strNeuerInhalt & ltvAccounts.Items(i).Text & vbTab & ltvAccounts.Items(i).SubItems(1).Text & vbCrLf
        Next

        If Not strInhalt = strNeuerInhalt Then
            If MessageBox.Show("Wollen sie die Änderungen speichern?", "Speichern", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then

                Dim objStream As FileStream = _
                New FileStream(Application.StartupPath & "\accounts.txt", FileMode.OpenOrCreate)
                Dim objWriter As StreamWriter = New StreamWriter(objStream)
                objWriter.WriteLine(strNeuerInhalt)
                objWriter.Close()
                objStream.Close()
            End If
        End If
        End
    End Sub


Der relevante Code. Wie gesagt kann Datei nicht Öffnen.
http://sollniss.1x.to/

 
tr4st_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 17.12.2007
Beiträge: 315
Wohnort: Private Class _ Villa()


Verfasst am: 11.04.2008, 17:35

Sehr unübersichtlich und viel überflüssiger Kram, versuch mal den Buffer der geöffneten Datei vor dem Schließen mit Flush() zu leeren.
Ich schreib dir später mal eine anständige Function zum vergleichen.
Avoid Suspicion, Manipulate your friends, Eliminate your enemies.
 
sollniss_
Coder
Coder

Anmeldedatum: 08.09.2007
Beiträge: 212


Verfasst am: 12.04.2008, 00:49

Flush funzt auch nicht.
http://sollniss.1x.to/

 
tr4st_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 17.12.2007
Beiträge: 315
Wohnort: Private Class _ Villa()


Verfasst am: 12.04.2008, 01:01


Ja hatte ich mir schon gedacht, ich muss nach der Arbeit mal schauen nun erstmal schlafen Smile
Avoid Suspicion, Manipulate your friends, Eliminate your enemies.
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten

Tags: prozess verwendet, datei, textbox, dateizugriff, zugreifen

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Problem mit always on top funktion 1106 30.10.2009, 12:26
Keine neuen Beiträge IntStr()funktion 1307 11.10.2007, 09:49
Keine neuen Beiträge TopMost Funktion unter DirectX 1022 27.07.2007, 11:48
Keine neuen Beiträge Wie Funktion nutzen ? 1214 29.06.2007, 21:59
Keine neuen Beiträge update funktion einbauen 1455 29.01.2007, 00:11
 


[ Time: 0.1433s ][ Queries: 101 (0.0761s) ][ GZIP on - Debug on ]