Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » zeilen anzahl einer txt datei auslesen ? <vb.net>

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
04.04.2007, 14:14 Uhr
jeller



Hallo
in der schule arbeiten wir gerade an ein programm zur datei verwaltung .

Da ich zuzeit ferien haben und damit auch viel zeit möchte ich über der aufgaben lösung

hinaus am programm schonmal weiter arbeiten. Da es am ende für musik daten ist arbeite

ich schon an Playlisten dazu müsste ich wissen wie ich die anzahlen der zeilen einer txt

datei auslesen kann und wie ich ein streamreader dazu bringe eine bestimmte zeile zulesen.

(war das net mit chars oder so ?)


hier mal so wie ich dachte :


Visual Basic:
  Dim nlauf
  Dim anzahl
        Dim fi As IO.FileInfo = New IO.FileInfo("C:/listen.txt")
        If Not fi.Exists Then
          fi.create()

        End If

        anzahl =   'ist die anzahl der zeilen

        Dim sw As IO.StreamReader = New IO.StreamReader("c:/listen.txt")
        For nlauf = 1 To anzahl
            ListBox1.Items.Add(sw.ReadLine.Chars(nlauf))
        Next




mfg Jeller

Dieser Post wurde am 04.04.2007 um 14:23 Uhr von jeller editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.04.2007, 18:28 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo

Visual Basic:
Dim sr As StreamReader = New StreamReader("File.txt")
Dim line As String
Do
    line = sr.ReadLine()
    ListBox1.Items.Add(Line)
Loop Until line Is Nothing
sr.Close()
sr = Nothing


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.04.2007, 19:25 Uhr
jeller



danke

runtime fehler :
Der Wert darf nicht NULL sein.
Parametername: item
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
05.04.2007, 07:48 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
für die Fehlerbehandlung mußt Du schon selbst sorgen!

Visual Basic:
If Not line Is Nothing Then ListBox1.Items.Add(line)


Oder als kopfgesteuerte Schleife implementieren.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 05.04.2007 um 07:49 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
05.04.2007, 11:09 Uhr
jeller



danke

nur hab ich noch ein problem beim speichern einer playlist :


Visual Basic:
    Dim nlauf As Integer

        Dim anzahl As Integer
        anzahl = ListBox1.Items.Count
        Dim sw1 As IO.StreamWriter = New IO.StreamWriter("c:/" + liste_sp.TextBox1.Text + ".txt")
        For nlauf = 0 To anzahl
            sw1.WriteLine(ListBox1.Items.Item(nlauf))
'InvalidArgument=Value mit dem Wert 3 ist für index ungültig.
'Parametername: index
        Next
        sw1.Close()
        sw1 = Nothing
        Dim nlauf1 As Integer

        Dim anzahl1 As Integer
        anzahl1 = ListBox2.Items.Count
        Dim sr1 As IO.StreamWriter = New IO.StreamWriter("c:/" + liste_sp.TextBox1.Text + "prop" + ".txt")
        For nlauf1 = 0 To anzahl1
            sr1.WriteLine(ListBox2.Items.Item(nlauf1))
'Der obere fehler wird auch hier auftauchen
        Next


        sr1.Close()
        sr1 = nothing


Dieser Post wurde am 05.04.2007 um 11:09 Uhr von jeller editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
05.04.2007, 11:29 Uhr
Uwe
C/C++ Master
(Administrator)



Visual Basic:
For i As Integer = 0 To ListBox1.Items.Count - 1
      '.....
Next


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
05.04.2007, 11:35 Uhr
jeller



wieso minus 1 ??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
05.04.2007, 19:41 Uhr
Uwe
C/C++ Master
(Administrator)


Weil die Eigenschaft Items der ListBox 0 basierend ist.

Visual Basic:
For i As Integer = 0 To 100
    ListBox1.Items.Add("Item " + CType(i, String))
Next


Erzeugt 100 Einträge in der ListBox

Visual Basic:
Dim lCount As Integer = ListBox1.Items.Count
Dim aItem As String
With ListBox1
   For i As Integer = 0 To .Items.Count - 1
       aItem = CType(.Items(i), String)
   Next
End With


Wenn Du Dir lCount im Debugger betrachtest, siehst Du das, in dem Fall, .Count den Wert 101 liefert -> Wenn Du bis auf .Items.Count in der Schleife gehst, greift bei i=Items.Count die Zuweisung ins Leere.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 05.04.2007 um 19:47 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
05.04.2007, 23:23 Uhr
jeller



okay nun habe noch ein problem (ja schon wieder )

also es geht dieses mal darum das ich die namen der playlisten in einer txt datei namens

c:/listen.txt abgelgt habe und woraus die namen für die lade liste genommen wird.

nun arbeite ich daran wie ich die listen löschen kann .

genau genommen ist das problem nicht das löschen der listen sondern deren name aus der

listen.txt datei .

Ich würde gern wissen wie ich bestimmte zeilen aus einer datei löschen kann .

Das aus

Zitat:

auto liste
liste1
liste2
liste3
liste4
......



dieses wird


Zitat:

auto liste
liste1
liste2
liste4
......



das löschen habe ich schon so vorbereitet :


Visual Basic:
If liste_del.ListBox1.SelectedItem = "auto liste" Then
            Dim sw1 As IO.StreamWriter = New IO.StreamWriter("c:/autotitle.txt")
            sw1.Write("")
            sw1.Close()
            sw1 = Nothing
            Dim sw2 As IO.StreamWriter = New IO.StreamWriter("c:/autoprop.txt")
            sw2.Write("")
            sw2.Close()
            sw2 = Nothing
        Else
            Dim fi As IO.FileInfo = New IO.FileInfo("c:/" + liste_del.ListBox1.SelectedItem + ".txt")
            fi.Delete()
            Dim fi2 As IO.FileInfo = New IO.FileInfo("c:/" + liste_del.ListBox1.SelectedItem + "prop.txt")
            fi2.Delete()
'hier müsste das löschen des namens folgen

        End If



mfg jeller

Dieser Post wurde am 05.04.2007 um 23:26 Uhr von jeller editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
06.04.2007, 21:15 Uhr
Uwe
C/C++ Master
(Administrator)


Ich würde hier keine "große Brühe" machen. Mach eine Datenbindung an die ListBox und schreib einfach die komplette Liste neu weg!

Visual Basic:
Imports System.IO
Private al As ArrayList
Private Const FILE_NAME As String = "MyFile.txt"
.....
.....
Private Sub Sample_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
    al = New ArrayList
    For i As Integer = 0 To 99
      al.Add("Item " + CType(i + 1, String))
    Next
    lbx.DisplayMember = "Items"
    lbx.DataSource = al
End Sub

Private Sub btnRemove_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRemove.Click
    ' Wir entfernen ein Element und schreiben den Schrott weg
    If lbx.SelectedIndex > -1 Then
      Dim bm As BindingManagerBase = lbx.BindingContext(al)
      Dim cm As CurrencyManager = DirectCast(bm, CurrencyManager)
      If Not cm Is Nothing Then
        cm.RemoveAt(lbx.SelectedIndex)
        ' oder 'al.Remove(al.Item(lbx.SelectedIndex))
        ' Listbox aktualisieren
        cm.Refresh()
        Dim sw As StreamWriter = New StreamWriter(FILE_NAME)
        For i As Integer = 0 To cm.Count - 1
          sw.WriteLine(al.Item(i))
        Next
        sw.Close()
      End If
    End If
  End Sub



Bearbeitung von uwe:

Ich hau mich weg : Hier wird z.B. bei btnRemove, das Rem al Kommentar erkannt *lol*


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 06.04.2007 um 21:21 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: