| |
VB.NET - Ein- und Umsteigereine Zeile in txt.Datei ändern | | | Autor: 00tommy | Datum: 27.06.17 20:38 |
| Hallo,
ich möchte in einer txt.Datei eine Zeile ändern
aufbau der Datei
hans=1
peter=2
ute=7
steffi=11
otte=5
han=2
Nun möchte ich den Eintrag otte=5 gegen otte=7 tauschen
Mein Ansatz:
Dim name = "c:\test\test.txt"
Dim name2 = "c:\test\test.tmp"
For Each line In IO.File.ReadLines(name)
If line = "otte=5" Then
System.IO.File.WriteAllLines(name, ("hallo"))
End If
Next
IO.File.Delete(name)
IO.File.Move(name2, name) | |
Re: eine Zeile in txt.Datei ändern | | | Autor: effeff | Datum: 27.06.17 21:16 |
| Dim Dateipfad As String = System.IO.Path.Combine( _
Application.StartupPath, "irgendwas.txt")
Dim sr As New System.IO.StreamReader(Dateipfad)
Dim Inhalt As String = sr.ReadToEnd
sr.Close()
Inhalt = Inhalt.Replace("otte=5", "otte=7")
Dim sw As New System.IO.StreamWriter(Dateipfad)
sw.Write(Inhalt)
sw.Close() EALA FREYA FRESENA | |
Alternative Fakten | | | Autor: Manfred X | Datum: 27.06.17 21:33 |
| Hallo!
Vielleicht so. Delete/Move kannst Du weglassen wenn In=Out ist.
Dim lines() As String = _
{"hans = 1", "peter = 2", "ute = 7", "steffi = 11", "otte = 5", "han = 2"}
'oder lines = IO.File.ReadAllLines(---)
For i As Integer = 0 To lines.length - 1
If lines(i) = "otte = 5" Then
lines(i) = "otte = 7"
Exit For '????
End If
Next i
IO.File.WriteAllLines("C:\Daten\wasauchimmer.txt", lines) Hinweis zu For Each ... Next
Die Enumeration dieser Schleife greift auf die Current-Eigenschaft der
zugrundeliegenden Schnittstelle zurück. Die ist Readonly.
Es gibt in der Schleife nur eine lokale Kopie des Elements, dessen Änderung
zwar möglich ist, aber NICHT in die Auflistung übernommen wird.
Beitrag wurde zuletzt am 27.06.17 um 21:47:21 editiert. | |
Re: eine Zeile in txt.Datei ändern | | | Autor: 00tommy | Datum: 27.06.17 21:44 |
| Und wenn ich nur nach Otte= suchen möchte ? | |
Re: eine Zeile in txt.Datei ändern | | | Autor: effeff | Datum: 28.06.17 15:47 |
| Du willst die Textdatei als Datenbank missbrauchen.
Klüger wäre es, die Daten in einer XML-Datei zu halten. Das reicht für solche Sachen als "Datenbank" aus. Du könntest dort nach Einträgen suchen und die Werte ändern.
Beispiel: Auf einer Form namens "Form1" hast Du ein DataGridView "DataGridView1":
Public Class Form1
Dim dtPunkte As New DataTable
Dim Dateipfad As String = System.IO.Path.Combine( _
Environment.GetEnvironmentVariable("appdata"), "Punkteverwaltung")
Dim PunkteXML As String = System.IO.Path.Combine( _
Environment.GetEnvironmentVariable("appdata"), "Punkteverwaltung", _
"punkte.xml")
Private Sub Form1_FormClosing(sender As Object, e As _
System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
DataGridView1.EndEdit()
dtPunkte.AcceptChanges()
dtPunkte.WriteXml(PunkteXML)
End Sub
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) _
Handles MyBase.Load
dtPunkteInitialisieren()
If Not System.IO.Directory.Exists(Dateipfad) Then
System.IO.Directory.CreateDirectory(Dateipfad)
dtPunkteFuellen()
Else
dtPunkte.ReadXml(PunkteXML)
End If
DataGridView1.DataSource = dtPunkte
End Sub
Private Sub dtPunkteInitialisieren()
With dtPunkte
Dim IDCol As DataColumn = dtPunkte.Columns.Add("ID", Type.GetType( _
"System.Int32"))
IDCol.AllowDBNull = False
IDCol.Unique = True
IDCol.AutoIncrement = True
.Columns.Add("Name", Type.GetType("System.String"))
.Columns.Add("Punkte", Type.GetType("System.Int32"))
.TableName = "Punktetabelle"
Dim primaryKey(1) As DataColumn
primaryKey(1) = .Columns("ID")
.PrimaryKey = primaryKey
End With
End Sub
Private Sub dtPunkteFuellen()
Dim i As Integer = 0
Dim SpielerUndPunkte As String = _
"hans=1,peter=2,ute=7,steffi=11,otte=5,han=2"
Dim arrSpieler() As String = SpielerUndPunkte.Split(",")
For i = 0 To UBound(arrSpieler)
Dim arr() As String = arrSpieler(i).Split("=")
Dim newRow As DataRow = dtPunkte.NewRow
newRow("ID") = i
newRow("Name") = arr(0)
newRow("Punkte") = arr(1)
dtPunkte.Rows.Add(newRow)
Next
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs)
dtPunkte.WriteXml(PunkteXML)
End Sub
End Class EALA FREYA FRESENA | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevWizard für VB5/6
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|