|
| Autor |
Nachricht |
sollniss_ 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

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

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 »

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 eine Function dazu findest du in unserem Source Bereich. Avoid Suspicion, Manipulate your friends, Eliminate your enemies. |
|
| |
|
 |
sollniss_ 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 »

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

Anmeldedatum: 08.09.2007 Beiträge: 212
|
|
| |
|
 |
tr4st_ « Moderator »

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  Avoid Suspicion, Manipulate your friends, Eliminate your enemies. |
|
| |
|
 |