Hallo zusammen,
ich schreibe momentan an einem Programm für das es Notwendig ist den Inhalt einer .wtf Datei zu ändern.
Mein Code:
Code:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim objWriter As New System.IO.StreamWriter(realm, False)
If System.IO.File.Exists(realm) Then
If ComboBox1.SelectedIndex = 0 Then
objWriter.WriteLine(realmlist(0))
objWriter.Close()
ElseIf ComboBox1.SelectedIndex = 1 Then
objWriter.WriteLine(realmlist(1))
objWriter.Close()
ElseIf ComboBox1.SelectedIndex = 2 Then
objWriter.WriteLine(realmlist(2))
objWriter.Close()
ElseIf ComboBox1.SelectedIndex = 3 Then
objWriter.WriteLine(realmlist(3))
objWriter.Close()
ElseIf ComboBox1.SelectedIndex = 4 Then
objWriter.WriteLine(realmlist(4))
objWriter.Close()
ElseIf ComboBox1.SelectedIndex = 5 Then
objWriter.WriteLine(realmlist(5))
objWriter.Close()
End If
End If
Shell(wotlk)
End Sub
Allerdings scheint er den Inhalt nicht zu ändern nur ich bin mir nicht sicher warum.
Sieht einer den Fehler?
Ich hätte da ein paar Verbesserungsvorschläge zu deinem Code:
Schau dir mal das an. Es ist nicht dramatisch, wenn du kein using benutzt, allerdings sollte es zu einer Angewohnheit werden, um teils schwer zu findende Fehler zu vermeiden.
Du brauchst nicht zu prüfen, ob eine Datei vorhanden ist, wenn du einen StreamWriter benutzt. StreamWriter erstellt eine Datei, sofern diese nicht existiert, und überschreibt eine Datei, wenn diese existiert und nicht explizit angegeben wird, dass sie nicht überschrieben werden soll.
Ansonsten kann ich mich weitestgehend meinem Vorposter anschließen.
Ich bin leider mit der VB .Net Syntax nicht vertraut, daher nur (schlechter) "Pseudocode". Mit dieser Variante ersparst du Dir ganz viele IfElse- Verzweigungen.
Code:
FileWriter hWriter
For i = 0 To 5 Step +1
If Combo.Index = i Then
hWriter.WriteLine(realmlist(i))
EndIf
Next
Ich glaube, Shawak meinte, dass die for-schleife extrem unnötig ist:
Code:
...
If ComboBox1.SelectedIndex >= 0 And ComboBox1.SelectedIndex <= 5 Then
objWriter.WriteLine(realmlist(ComboBox1.SelectedIndex))
End If
objWriter.Close()
...
realmlist ist vom Datentyp String und enthält entsprechend eine verkettung von Zeichen. Z.b.: "set realmlist ***"
Ich fange gerade erst an VB zu lernen, habe aber schon mal was von Using gehört. Werde mir das dann bei Gelegenheit mal anschauen
Die Gelegenheit hast du jetzt
Wenn realmlist tatsächlich vom Typ String ist, dann hast du hier auf jedenfall auch einen Fehler.
Ein String ist nur eine Zeichenkette, wie du bereits erwähnt hast (bsp.: "Hello World").
Was du haben willst ist aber wohl eher eine List(Of String), sprich einer Liste von Strings.
Wie Inhalt ändern, ohne dabei die Datei größe zu verändern? 10/31/2012 - Metin2 Private Server - 1 Replies Hallo Leute,
Ich spiele auf einem Server, wo die Monster epk/eix in ein BIG datei verschlüsselt wird, habe vor aus dem Client die Monster zu entfernen.
Habe bemerkt, dass ich den Text dieser Monster datei ändern darf wie ich Will, nur die Datei größe muss immer genau so bleiben, wie es davor war, ansonsten kommt es ein fehler meldung: Bitte Patchen sie den Client.
Wisst ihr wie ich von HxD aus diese Datei Öffne und den ganzen Inhalt lösche, ohne dabei die Größe zu verändern?
PS: Ich...
[VB] Inhalt einer Datei ändern? 09/01/2012 - .NET Languages - 1 Replies Wie kann ich den Inhalt einer .txt ohne sie offensichtlich zu öffnen verändern?
game1_1 datei inhalt... 12/13/2010 - Metin2 Private Server - 3 Replies hey.
könnte mir vielleicht mal einer den inhalt der dateien
game1_1
game1_2
game1_3
posten??
[VB 2008] Einzelne Zeilen einer .txt Datei ändern 03/20/2010 - .NET Languages - 9 Replies Guten Tag.
Wie in der Überschrift schon steht suche ich einen Code mit dem man per VB 2008 eine bestimmte Zeile einer .txt Datei ändern kann...