Visual Basic: Programm zur Bearbeitung einer TXT Datei

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 31 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Ich bastle ja weiter an meinen Progrämmchen und versuche die verschiedensten Dinge.
    Nun habe ich mal wieder eine RTB um mich damit etwas anzufreunden und zu testen was möglich ist.

    Ich habe es mittlerweile geschafft, dass verschiedene Schlüsselwörter gesucht und eingefärbt werden.

    Was ich nun aber mal gerne probieren würde: Eine RTB ist ja (außer man schaltet es ab) manuell editierbar.
    Kann man dem editierten Text eine eigene Farbe geben?
    Also sagen wir mal, alles was per Code oder Import kam schwarz/normal und was manuell geschrieben wurde ist blau/fett?

    Ich hab schon probiert irgendwie... naja, nennen wirs mal << eine eigene Schriftdefinition an den Cursor zu tackern >> aber leider nicht mal mit mäßigem Erflog. Garkein Erfolg triffts eher.

    BTW: Das ganze müsste in der Nahrungskette natürlich über meiner "Suchen & Färben" Automatik stehen, denn aktuell übernimmt das manuell geschriebene die Farbe vom Text davor. Schreibe ich hinter was rotes wird es rot, schreibe ich hiner was schwarzes wirds schwarz.
    Morgen Spawnie,

    mit der RTB kannst du formatierungsmäßig haufenweise Schabernack treiben. Dazu gibt es hier schon zahllose Threads:
    vb-paradise.de/index.php/Searc…08/?highlight=richtextbox

    Konntest du mit diesen deine Frage nicht lösen?

    Eventuell solltest du deine Frage als neuen Thread anlegen, ich weiß nicht wie gern das hier gesehen wird "alte" Threads mit neuen Fragen (klar, es geht immer noch um das gleiche Programm) wieder zu beleben, die mit der ursprünglichen Frage wenig zu tun haben.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Ganz oben noch Imports System.IO

    Quellcode

    1. Dim sfd As New SaveFileDialog
    2. With sfd
    3. .Filter = "textdateien (*.txt)|*.txt| Batch (*.bat)|*.bat| VisualbasicScript (*.vbs)|*.vbs| Java (*.java)|*.java| JavaScript (*.js)|*.js| C (*.C)|*.C| C++ (*.cc)|*.cc| C-hashtag (*.cs)|*.cs| HTML (*.html)|*.html| Perl (*.pl)|*.pl| Python (*.py)|*.py| Ruby (*.rb)|*.rb| Alles (*.*)|*.*"
    4. .ShowDialog()
    5. If .FileName <> "" Then
    6. If IO.Directory.Exists(sfd.FileName) = True Then
    7. My.Computer.FileSystem.DeleteFile(sfd.FileName)
    8. Else
    9. IO.File.WriteAllLines(.FileName, TextBox1.Lines)
    10. My.Computer.FileSystem.WriteAllText(sfd.FileName, TextBox1.Text, False)
    11. End If
    12. End If
    13. End With
    if Brain.Enabled = False Then
    Process.start("C:\Brain.exe")
    End if
    __________________________________________________

    Error: Brain.exe not found System shut down
    @Toni03 What :?:

    VB.NET-Quellcode

    1. Using sfd = New SaveFileDialog
    2. sfd.Filter = "bla|*.bla"
    3. If sfd.ShowDialog() <> Windows.Forms.DialogResult.OK Then
    4. Return
    5. End If
    6. 'IO.File.WriteAllLines(sfd.FileName, TextBox1.Lines) ' oder
    7. IO.File.WriteAllText(sfd.FileName, TextBox1.Text)
    8. End Using
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo Leute,

    ja, ich habe leider lange nix mehr getan, weil keine Zeit über war.
    Nun bastele ich wieder an meinem kleinen Programm, und stolpere gerade über einen Punkt den ich anfangs als trivial abgehakt hätte...

    Ich lese in eine Listbox einen beliebig langen Text ein.
    Und dann möchte ich die letzte Zeile löschen.

    Ich hab mittlerweile gezielt Zeilen gelöscht, ich habe bestimmte Schlagwörter gesucht und deren Zeile gelöscht, aber ich find einfach nicht raus wie ich sagen kann "weg mit der letzten Zeile"...

    Könnt ihr mir auf die Sprünge helfen?
    Gibt hier im Forum dazu haufenweise Threads. Auch wäre es sinnvoll, sofern die suche nicht hilft, einen neuen Thread zu erstellen.

    Lösungshilfen:
    -> Erste Zeile aus RichTextBox löschen

    -> RichTextBox1.Lines.Length
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Hallo @mrMo und danke für die schnelle Antwort.
    Nur leider hilft mir das aktuell nicht wirklich.

    Die erste, die fünfte, die X-te Zeile kann ich löschen (wenn ich X kenne).

    Ich möchte aber die LETZTE Zeile im Text löschen...

    VB.NET-Quellcode

    1. ListBox1.Items.RemoveAt(0)


    Damit lösche ich die Zeile 0 oder was ich eben eintrage. Mir fehlt aber der Weg wie ich quasi als Pseudo Code sagen kann...

    VB.NET-Quellcode

    1. ListBox1.Items.RemoveAt(LetzteZeile)

    Denn ich weiß ja nicht wie lang mein Text wird.
    Oh sorry, hab RichTextBox gelesen :)

    ​gibt doch Listbox1.Items.Count() zum zählen der Items in der ListBox:

    VB.NET-Quellcode

    1. ListBox1.Items.RemoveAt(ListBox1.Items.Count())​
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @Spawnie ListBoxen sind nicht gedacht zur Anzeige langer Texte.
    Nimm eine RichTextBox, und wenn der Text nicht editiert werden darf, setze sie auf .ReadOnly = True.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!