| |
VB.NET - Ein- und Umsteigertxt Datei einlesen und Inhalt übergeben | | | Autor: Nico05 | Datum: 26.03.20 06:26 |
| Hallo Forum,
ich versuche gerade den Inhalt einer txt Datei auszulesen und den Inhalt an eine txtBox und an Labels zu übergeben.
Hier mal mein Ansatz:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles _
Button1.Click
With OpenFileDialog1
.InitialDirectory = "C:\Test\"
.CheckFileExists = True
.Filter = "Datendatei |*.txt"
End With
If OpenFileDialog1.ShowDialog = _
Windows.Forms.DialogResult.Cancel Then Exit Sub
Dim flines() As String = IO.File.ReadAllLines(OpenFileDialog1.FileName)
For i As Integer = 0 To flines.Count - 1
Dim parts() As String = flines(i).Split("="c)
If parts(0) = "Zeile1" Then TextBox1.Text = parts(1)
If parts(0) = "Zeile2" Then TextBox2.Text = parts(1)
If parts(0) = "Zeile3" Then TextBox3.Text = parts(1)
If parts(0) = "Zeile4" Then TextBox4.Text = parts(1)
Next i
End Sub Wie kann ich das Suchwort Zeile1 .... noch in ein Label übergeben ?
Bzw. wie ist es möglich ohne Suchwort automatisch den Inhalt der Zeilen zu übergeben ?
Beispiel
1 Zeile Otto=rot
Otto = Label1.text Textbox1.Text = rot
Schönen Tag noch | |
Re: txt Datei einlesen und Inhalt übergeben | | | Autor: minimalist | Datum: 26.03.20 08:35 |
| Du musst 2 mal splitten:
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim str As String = "Zeile1 Otto=rot"
Dim parts() As String = str.Split("="c)
Dim nstr As String = parts(0)
Dim parts1() As String = nstr.Split(" "c)
TextBox1.Text = parts1(1)
Label1.Text = parts(1)
End Sub | |
Re: txt Datei einlesen und Inhalt übergeben | | | Autor: Manfred X | Datum: 26.03.20 15:42 |
| Hallo!
Du benötigst eine Routine, die den Inhalt und Aufbau der geladenen Datei prüft,
ehe mit Zuweisungen an Controls begonnen werden kann.
- Zahl der Zeilen
- Aufbau der einzelnen Zeile (Anzahl der Split-Abschnitte)
- Vorhandensein des 'Suchwortes' in jeder Zeile | |
Re: txt Datei einlesen und Inhalt übergeben | | | Autor: Nico05 | Datum: 26.03.20 19:54 |
| Hallo Manfred,
kannst du da ein kleines Beispiel mit der Routine geben ?
Das mit Zahl der Zeilen habe ich so gelöst.Dim zeilen() As String = IO.File.ReadAllLines(OpenFileDialog1.FileName)
Label5.Text = UBound(zeilen) + 1 Der Aufbau der einzelnen Zeilen ist immer gleich:
Beschreibung=Zustand
Beispiel:
Blau=Ja
Die Beschreibung soll in ein Label, der Zustand in eine Textbox.
Das größte Problem ist für mich das die Anzahl der Zeilen unterschiedlich sein kann.
Ich aber auch nur soviel Label und Textboxen haben möchte, wie nötig sind.
Festes Suchwort gibt es eigentlich nicht. | |
Re: txt Datei einlesen und Inhalt übergeben | | | Autor: Manfred X | Datum: 26.03.20 22:35 |
| Irgend so etwas.
Vorausgesetzter Datei-Aufbau:
ost = grün
west = gelb
nord = schwarz
süd = ocker
Dim ofd As New OpenFileDialog
Dim labels() As Label
Dim textboxes() As TextBox
Dim WithEvents btnLoad As New Button With
{.Parent = Me, .Width = 100, .Text = "Laden"}
Private Sub CreateControls(ByVal count As Integer)
ClearControls()
Array.Resize(labels, count)
Array.Resize(textboxes, count)
Dim top_pos As Integer = 50
Me.Height = count * 30 + top_pos + 30
For i As Integer = 0 To labels.Length - 1
If labels(i) Is Nothing Then
labels(i) = New Label With
{.Parent = Me,
.Top = i * 30 + top_pos,
.Left = 10, .Width = 100}
textboxes(i) = New TextBox With
{.Parent = Me,
.Top = i * 30 + top_pos,
.Left = 10 + labels(i).Width, .Width = 150}
End If
Next i
End Sub
Private Sub ClearControls()
If labels Is Nothing Then Exit Sub
For i As Integer = 0 To labels.Length - 1
labels(i).Dispose()
labels(i) = Nothing
textboxes(i).Dispose()
textboxes(i) = Nothing
Next i
End Sub
Private Function CheckFile(file As String) As Boolean
Const MaxLines As Integer = 10
Try
Dim lines() As String = IO.File.ReadAllLines(file)
If lines.Length > MaxLines Then Return False
For i As Integer = 0 To lines.Length - 1
Dim parts() As String = lines(i).Split("="c)
If parts.Length <> 2 Then Return False
For k As Integer = 0 To 1
If String.IsNullOrWhiteSpace(parts(k).Trim) Then
Return False
End If
Next k
Next i
Return True
Catch ex As Exception
Return False
End Try
End Function
Private Sub btnLoad_Click(sender As Object,
e As EventArgs) Handles btnLoad.Click
Dim flines() As String
With ofd
.InitialDirectory = "C:\Test\"
.CheckFileExists = True
.Filter = "Datendatei |*.txt"
If .ShowDialog =
Windows.Forms.DialogResult.Cancel Then Exit Sub
If Not CheckFile(.FileName) Then
MsgBox("Ungeeignete Datei") : Exit Sub
Else
flines = IO.File.ReadAllLines(.FileName)
End If
End With
CreateControls(flines.Length)
For i As Integer = 0 To flines.Count - 1
Dim parts() As String = flines(i).Split("="c)
textboxes(i).Text = parts(1)
labels(i).Text = parts(0)
Next i
End Sub | |
| 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
|
|