Textdatei in 3 textboxs
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 31 Antworten in diesem Thema. Der letzte Beitrag () ist von guccini.
-
-
-
-
VB.NET-Quellcode
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim input = GetText("Pfad", 1, 2, 3) 'Alle Abschnitte die zurückgegeben werden
- TextBox1.Text = input(0)
- TextBox2.Text = input(1)
- TextBox3.Text = input(2)
- End Sub
- Private Iterator Function GetText(ByVal path As String, ParamArray between As Integer()) As IEnumerable(Of String)
- Using sr As New StreamReader(path, Encoding.Default)
- Dim input As String() = sr.ReadToEnd.Split("$")
- For Each item In between
- Yield input(item).Substring(1, input(item).Length - 2)
- Next
- End Using
- End Function
Hab die Funktion jetzt verändert, weil der obere Code wäre nicht so gut, weil man dann 3x die Datei neu einlesen müsste und jedesmal andere Stellen rausfiltert, anstatt, wie in diesem Code, einmal die Datei einzulesen und anschliessend die gewünschten Abschnitte zurückzugeben. -
@RushDen: Ist das nicht ein wenig umständlich, für jeden Teil die Datei neu zu öffnen?
Ich würde Folgendes vorschlagen:
VB.NET-Quellcode
- If Not File.Exists(path) Then Throw New ArgumentOutOfRangeException("path", "Datei existiert nicht")
- Dim Content = File.ReadAllText(path, Encoding.UTF8)
- If Not Regex.IsMatch(Content, "1\$.+?2\$.+?3\$", RegexOptions.Singleline) Then Return
- Dim PartA = Regex.Match(Content, "(?<=1\$).+?(?=2\$)", RegexOptions.Singleline).Value
- Dim PartB = Regex.Match(Content, "(?<=2\$).+?(?=3\$)", RegexOptions.Singleline).Value
- Dim PartC = Regex.Match(Content, "(?<=3\$).+?(?=$)", RegexOptions.Singleline).Value
Genutzte Imports: System.Text, System.Text.RegularExpressions, System.IO
EDIT: Gerade gesehen... -
-
-
Könnte es sein, dass Iterations-Funktionen erst ab einem gewissen Framework unterstützt werden, welche du unterschreitest?
-
VS 2010
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „guccini“ ()
-
-
-
-
Tja... *wart*
EDIT: Ach, jetzt komm schon, @guccini:! Wo liegt das Problem?Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Higlav“ ()
-
-
-
Würde gerne das so machen...bekomme es nicht hin
BlackNetworkBit schrieb:
Versuche mal das :
VB.NET-Quellcode
- Public Class Form1
- Dim filesdirectory As String = String.Empty
- Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
- ReadFilesInListbox(ListBox1, "C:\Users\Public")
- End Sub
- Public Sub ReadFilesInListbox(ByVal listbox As ListBox, path As String)
- Dim directory As New IO.DirectoryInfo(path)
- Dim files As IO.FileInfo() = directory.GetFiles()
- filesdirectory = path
- listbox.Items.Clear()
- For i = 0 To files.Count - 1
- listbox.Items.Add(files(i).ToString)
- Next
- End Sub
- Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
- If IO.File.Exists(IO.Path.Combine(filesdirectory, ListBox1.SelectedItem.ToString)) = True Then
- RichTextBox1.Text = IO.File.ReadAllText(IO.Path.Combine(filesdirectory, ListBox1.SelectedItem.ToString))
- End If
- End Sub
- End Class
-
schön du hast dir jetzt erfolgreich Code zusammenkopiert und nix gelernt dabei.
Hast du wenigstens versucht die Aufgabe von Highlav alleine zu lösen? ich seh es
nämlich nirgends.
Wenn du Probleme mit deinem selbst geschriebenen Code hast kannst ja kommen und
Fragen aber kommen, Code zusammenkopieren und dann um Hilfe schreien ist nicht die
feine Art.Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang. -
-
Du brauchst dich nicht dafür zu entschuldigen das du Anfänger bist
Kommen halt täglich welche an die denken das Forum hier ist ein
"mach mir die Hausaufgaben-Forum" damit sie selbst das Hirn nicht benutzen müssen.Wer fragt, ist ein Narr für eine Minute. Wer nicht fragt, ist ein Narr sein Leben lang. -
vielleicht bringt dich das weiter :
VB.NET-Quellcode
- Public Class Form1
- Private Sub Form1_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
- SaveToFile({TextBox1, TextBox2, TextBox3}, "C:\Users\......\Desktop\LOLAAAAAAAAAAA.txt")
- End Sub
- Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
- ReadToTextbox({TextBox1, TextBox2, TextBox3}, "C:\Users\..........\Desktop\LOLAAAAAAAAAAA.txt")
- End Sub
- Public Sub ReadToTextbox(ByVal controls() As TextBox, file As String)
- Dim st As String() = IO.File.ReadAllText(file).Split({"$"}, StringSplitOptions.RemoveEmptyEntries)
- For i = 0 To st.Count - 1
- If controls.Count - 1 >= i Then
- controls(i).Text = st(i).Remove(0, st(i).IndexOf(Environment.NewLine))
- End If
- Next
- End Sub
- Public Sub SaveToFile(ByVal controls() As TextBox, file As String)
- Using sw As New IO.StreamWriter(file)
- For i = 0 To controls.Count - 1
- sw.WriteLine("$" & controls(i).Name)
- sw.WriteLine(controls(i).Text)
- Next
- End Using
- End Sub
- End Class
Dieser Code würde die 3 TextBoxen speichern und wieder laden. ( Textbox1 , Textbox2, Textbox3 )
Das speichern erfolgt zu testzwecken dann wenn die Form geschlossen wirdMFG 0x426c61636b4e6574776f726b426974
InOffical VB-Paradise IRC-Server
webchat.freenode.net/
Channel : ##vbparadiseDieser Beitrag wurde bereits 1 mal editiert, zuletzt von „BlackNetworkBit“ ()
-
Ähnliche Themen
-
textdatei lesen und label nach text bennen
Niklas37Pro - - Sonstige Problemstellungen -
Astharey - - Sonstige Problemstellungen
-
Undercover - - Sonstige Problemstellungen
-
5 Benutzer haben hier geschrieben
- guccini (16)
- Higlav (8)
- RushDen (4)
- Snaptu (3)
- BlackNetworkBit (1)