Text aus einer datei zu einem label HINZUFÜGEN

  • Allgemein

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von RushDen.

    Text aus einer datei zu einem label HINZUFÜGEN

    Hallo,
    ich möchte gerne, das text aus einer txt datei gelesen wird, der jetzt in ein Label gepackt wird! Soweit würde das glaube ich jeder schaffen! Jetzt möchte ich aber, das sobald sich der text in der txt datei ändert sofort eine zeile weiter unten in dem Label angezeigt wird!
    Das das mit vielen einzelnen labels geht weis ich, aber das wäre viel zu umständlich, das muss auch einfacher gehen! :D

    Thx
    Sgt G.
    Einfach mit nem StreamReader zeilenweise die .txt auslesen, danach weißt du einfach dem Label alle Zeilen zu, ca. nach diesem Schema:

    Quellcode

    1. Fixer Label-Text
    2. &
    3. Variable Zeilen
    So würde er ja aber jedesmal den text überschreiben, das will ich ja nicht. Oder habe ich das falsch verstanden?

    Edit: Zu dem oben: kann ich da einfach den dateipfand eingeben? Das funktioniert natürlich nicht, da er die txt datei ja nicht liest....

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Sgt G.“ () aus folgendem Grund: Unüberlegtes gerede von mir...

    Nein, du weist dem Label ja seinen alten Text (Label1.Text) und zusätzlich (&) den neuen Text zu, sodass du dann nachher beides hast.

    Und nein, du kannst nicht einfach nur den Dateipfad eingeben. Wenn du den Inhalt auslesen möchtest, musst du das z.B. wie Gather schon gesagt hat mit einem StreamReader tun.
    Hier übrigens wie du die Datei überwachst (falls du das noch nicht weißt):
    (In dem Beispiel wird der neue Text jedoch nicht eine Zeile weiter unten angezeigt, sondern einfach nur ersetzt)

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. FileSystemWatcher1.EnableRaisingEvents = True
    5. FileSystemWatcher1.Path = "Pfad der Überwacht werden soll"
    6. End Sub
    7. Private Sub FileSystemWatcher1_Changed(sender As Object, e As IO.FileSystemEventArgs) Handles FileSystemWatcher1.Changed
    8. Label1.Text = Read(e.FullPath)
    9. End Sub
    10. Private Function Read(ByVal path As String) As String
    11. Using sr As New StreamReader(path)
    12. Return sr.ReadToEnd
    13. sr.Close()
    14. End Using
    15. End Function
    16. End Class
    Nein. Es ist doch unnötig zu überprüfen welcher Text schon existiert und den der noch nicht existiert hinzuzufügen, wenn du einfach den ganzen Text neu zuweisen kannst.

    Edit://
    Ich bezweifle, dass das funktionieren könnte. Natürlich könntest du die Datei verschlüsseln. Dennoch kann jeder der einen Funken Ahnung vom Programmieren / Dekompilieren hat, die Verschlüsselung umgehen.

    Edit:// 2
    @Sgt G.:
    Code zum Labeltext

    VB.NET-Quellcode

    1. Option Strict On
    2. Option Explicit On
    3. Option Infer On
    4. Imports System.IO
    5. Public Class Form1
    6. ''' <summary>Gibt den gewünschten Labeltext zurück. Dieser setzt sich aus einem fixen String, und einem variablen String aus einer Datei zusammen.</summary>
    7. ''' <param name="strPath">Der Pfad zu der Datei.</param>
    8. ''' <param name="strFixText">Der fixe String.</param>
    9. Private Function GetLabelText(strPath As String, Optional strFixText As String = "Hallo") As List(Of String)
    10. Dim strText As New List(Of String) From {strFixText}
    11. If File.Exists(strPath) Then strText.AddRange(File.ReadAllLines(strPath))
    12. Return strText
    13. End Function
    14. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    15. Label1.Text = String.Empty 'Ist natürlich optional, da du im Designer den Text auf "" setzen könntest.
    16. For Each Str As String In GetLabelText("Pfad zur Datei.")
    17. Label1.Text &= vbNewLine & Str
    18. Next
    19. End Sub
    20. End Class

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Gather“ ()

    So schreibt er doch nur den text den man eingibt in das label oder?
    ^^ ich dachte du brauchst nur den Zeilenumbruch für die neue Variable. Um dein Vorhaben zu realisieren würde ich die Funktion von RushDen etwas umbauen und nur die letzte Zeile auslesen sr.ReadLine(sr.length -1) (müsste so stimmen, nicht getestet) das könnte dann in etwa so aussehen:

    VB.NET-Quellcode

    1. label1.text = label1.text & "\n" & Read("Pfad der Überwacht werden soll")

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Fakiz“ ()

    Gather schrieb:

    (...)
    Edit://
    Ich bezweifle, dass das funktionieren könnte. Natürlich könntest du die Datei verschlüsseln. Dennoch kann jeder der einen Funken Ahnung vom Programmieren / Dekompilieren hat, die Verschlüsselung umgehen.(...)

    Oke, dann bleibt mir nur die methode die datei so zu verstecken das man sie nicht findet ^^ Danke dann!