tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
2851
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von d4kine
    d4kine d4kine ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Ort
    Nähe Köln
    Beiträge
    116
    Hallo Leute.

    Also mein Problem ist, wie der Titel schon sagt, das ich irgendwie nicht hinterkomme, wie ich den Inhalt einer Textdatei sortiere
    Der Inhalt sieht folgendermaßen aus:

    Code :
    1
    2
    3
    
    883621 , Waschlappen
    123433 , Handtücher
    221455 , Badetücher
    Das Programm ließt den Text aus und gibt ihn in der VB-Form an, soweit bin ich gekommen, aber mit dem Sortieren, bekomm einfach nicht hin. Hat jemand eine Idee oder ein Tutorial dazu gefunden? Achja, die Form soll den Text auslesen, sortieren und danach den Text direkt wieder in der Textdatei sortiert speichern, sodass der Inhalt später so aussieht:

    Code :
    1
    2
    3
    
    123433 , Handtücher
    221455 , Badetücher
    883621 , Waschlappen
    Danke schonmal
     

  2. #2
    yan1 yan1 ist offline Mitglied Gold
    Registriert seit
    Feb 2005
    Ort
    Kirchdorf a. d. Krems, OÖ
    Beiträge
    213
    Hi,

    am besten du erstellst dir eine Klasse 'Artikel' die die Membervariablen 'number' und 'text' hat. Außerdem soll sie noch das Interface ICompareable implementieren. In der CompareTo Methode vergleichst du nach der Nummer.

    Du holst dir alle Datensätze aus deiner Datei raus, packst jeden in ein Artikel Objekt und schmeißt die alle in eine ArrayList. Wenn du es wieder speichern willst, brauchst du nur die Sort() Methode der Liste aufrufen und dann in die Datei zurückschreiben.
    Schon hast du eine sortierte Datei

    Lg, Yanick
     

  3. #3
    Avatar von d4kine
    d4kine d4kine ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Ort
    Nähe Köln
    Beiträge
    116
    Hallo. Erstmal danke für die schnelle Antwort

    Jetzt muss ich leider gestehen, das ich das nicht so ganz hinbekomme was du gesagt hast, weil ich
    1. von VB6 zu VB.net umgestiegen bin und
    2. nochnie mit Arrays gearbeitet habe...

    Auslesen der Textdatei habe ich hinbekommen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
            Dim ReadFile As StreamReader
            Dim ReadIt As String
     
            ReadFile = File.OpenText("D:\test.txt")
            Do While ReadFile.Peek() >= 0
     
                ReadIt = ReadFile.ReadLine()
                ListBox1.Items.Add(ReadIt)
            Loop
            ReadFile.Close()

    Ich weiß jetzt aber nicht, wie ich das mit dem Array machen soll. Also Theoretisch hab ichs verstanden, aber Praktisch umsetzten ist schlecht :/
    Geändert von d4kine (07.01.07 um 19:26 Uhr) Grund: Textdatei besser auslesbar :)
     

  4. #4
    Avatar von d4kine
    d4kine d4kine ist offline Mitglied Gold
    Registriert seit
    Oct 2004
    Ort
    Nähe Köln
    Beiträge
    116
    Okay, ich habs jeztz OHNE Array gemacht.Einfach mal drauf los gecoded und geschaut, was bei rauskam. Hat zwar lange gedauert, aber es funktioniert. Hier nochmal für alle, falls auch Andere das selbe Problem haben

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim ReadFile As StreamReader
            Dim ReadIt As String
            ListBox1.Items.Clear()
            ReadFile = File.OpenText("D:\test.txt")
            Do While ReadFile.Peek() >= 0
                ReadIt = ReadFile.ReadLine()
                ListBox1.Items.Add(ReadIt)
            Loop
            ReadFile.Close()
     
            ListBox1.Sorted = True
     
            Dim WriteFile As StreamWriter
            Dim i As Short
            WriteFile = New StreamWriter("D:\Test2.txt", False)
            For i = 0 To ListBox1.Items.Count - 1
                WriteFile.WriteLine(ListBox1.Items(i))
            Next
            WriteFile.Close()
        End Sub
    1. Erst wird die Datei test.txt einlegesen und in eine ListBox übertragen.
    2. Danach wird die ListBox sortiert
    3. Abschließend wird jede Zeile der ListBox mithilfe einer simplen For-Next Schleife ausgelesen und jede Zeile einzeln nacheinander in die Textdatei test2.txt geschrieben.

    Fertig

    Danke an yan1 für die Hilfe, auch wenn ich eine andere für mich einfachere Art gewählt habe
     

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 15.10.07, 17:51
  2. Antworten: 5
    Letzter Beitrag: 20.09.07, 21:19
  3. Mit Inhalt einer Textdatei Rechnen ?
    Von Corefice im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 22.01.05, 22:09
  4. Inhalt einer Textdatei löschen?
    Von michischmuki im Forum PHP
    Antworten: 3
    Letzter Beitrag: 30.04.04, 01:47
  5. Antworten: 2
    Letzter Beitrag: 21.03.04, 18:22