Zum Inhalt springen

VB - Datei zeilenweise auslesen und in ListBox ausgeben


Empfohlene Beiträge

Geschrieben

Hallo,

ich habe da ein Problem mit VB. - Bin noch Neuling auf dem Gebiet und wollte wissen, wie ich den Inhalt einer Textdatei einlesen und in einer Listbox ausgeben kann. Den Dateinamen sowie den Pfad gibt der User über 2 Textfelder ein.

Hier ist mein bisheriger Programmcode.. Kann sein, dass dort einige Fehler sind, ich komme mit den ganzen "Objekt-erstellen"-Sachen noch nicht so klar.

Private Sub cmdClick_Click()

Dim fsoObj

Set fsoObj = CreateObject("Scripting.FileSystemObject")

Dim FileName As String

Dim PathName As String

Dim absPath As String

Dim Datei As String

PathName = txtPfad.Text

FileName = txtDatei.Text

absPath = PathName & FileName

Datei = fsoObj.OpenAsTextStream(absPath)

Do While Not EOF(Datei)

'Dateiinhalt zeilenweise in die Listbox schreiben

Loop

Close Datei

End Sub

Danke für die Hilfe!

MfG, Jusky

Geschrieben

hi

erstmal würde ich ein Commondialog element einfügen, dann muss der user den pfad nicht selber angeben sondern sucht die datei mit dem CD

Das bsp. müsste so eigentlich laufen


Private Sub Einlesen_Click()          


Dim Dateinr As Integer           'Variable

Dim Temp As String                 'Variable

dim DateiPfad as String


CommonDialog1.ShowOpen


DateiPfad = CommonDialog1.Filename


Dateinr = FreeFile

Open DateiPfad For Input As Dateinr

Do While Not EOF(Dateinr)    

Line Input #Dateinr, Temp

list1.AddItem Temp

Loop

Close Dateinr


End Sub

Geschrieben

Danke für die schnelle Antwort! :)

Das mit dem Common Dialog musst du mir aber mal genauer erklären!

Brauche ich denn nicht für die ganze Sache das FileSystemObject? - Wie würde das denn damit aussehen?

Geschrieben

FileSystemObject hab ich noch nie gebraucht und weiß jetzt eigentlich auch gar nicht wozu...

den CommonDialog musst du erst in die werkzeugliste mit einfügen:

Menü: Project => Komponenten => neues fenster geht auf hier suchst du Microsoft Common Dialog Control 6.0 davor machst du dann nen hacken und drückst OK

dann hast du das element bei den anderen (textbox, Listbox,...) ganz unten

füge das neue element einfach in die form ein und mit dem Code den ich geschrieben hab müsste ess dann auch schon laufen

Geschrieben

Um angemessen auf ein Abbrechen des CommonDialogs durch den User reagieren zu können, würde ich noch folgendes hinzufügen:

On Error Resume Next

CommonDialog_Option.ShowOpen

If Err = cdlCancel Then

Exit Sub

End If

Der CommonDialog wirft einen cdlCancel-Error wenn durch den User der Abbrechen-Button gedrückt wird.

Die Sub die verlassen werden soll, wäre hier z.b. das Click-Ereigniss des Buttons mit dem der User eine Datei auswählen kann.

Geschrieben

Also irgendwie haut das bei mir nicht hin... Das bringt mein Programm regelrecht zum Absturz. Ich muss das Ganze doch vor dem eigentlichen Dateiaufruf einfügen, oder? Der ganze Quellcode ist folgender:

Private Sub cmdClick_Click()

Dim Dateinr As Integer

Dim PathName As String

Dim Zeile As String

On Error Resume Next

CommonDialog1.ShowOpen

If Err = cdlCancel Then

Exit Sub

End If

PathName = CommonDialog1.FileName

Dateinr = FreeFile

Open PathName For Input As Dateinr

Do While Not EOF(Dateinr)

Line Input #Dateinr, Zeile

lstInhalt.AddItem Zeile

Loop

Close Dateinr

End Sub

Geschrieben

also wenn jetzt ein fehler auftritt zeigt er gar nichts an sondern beendet nur die sub.

wenn er ne meldung bringen soll schreib das nach der err_err:

z.b. Msgbox "Fehler!"


Option Explicit


Private Sub Command1_Click()


On Error GoTo err_err


Dim Dateinr As Integer           'Variable

Dim Temp As String                 'Variable

Dim DateiPfad As String


CommonDialog1.ShowOpen


DateiPfad = CommonDialog1.FileName


Dateinr = FreeFile

Open DateiPfad For Input As Dateinr

Do While Not EOF(Dateinr)

Line Input #Dateinr, Temp

List1.AddItem Temp

Loop

Close Dateinr


Exit Sub


err_err:


End Sub

Geschrieben

Ja, so gehts wieder. :)

Habe noch ein Unload Me dahinter gesetzt, damit das Programm beim Abbruch und der Meldung sofort geschlossen wird.

So, danke euch beiden für die Tips! :)

Geschrieben
Also irgendwie haut das bei mir nicht hin... Das bringt mein Programm regelrecht zum Absturz.

Sorry, hab auch was vergessen:

Dem CommonDialog muss vorher seine Eigenschaft CancelError = true gesetzt werden.

Etwa mit CommonDialog1.CancelError=true.

Ansonsten wird halt kein Fehler beim Drücken des Abbrechen-Buttons geworfen,

und wegen Resume next läuft dein Programm beim Versuch eine Datei über einen leeren String zu öffnen ins Nirvana.

Sorry nochmal.

Geschrieben

tjo desswegen so da gibts net viel falsch zu machen und läuft so ziemlich auf das selbe raus ;)

Originally posted by |ReDBullet|

kleiner Tipp: wenn du wissen willst ob der User den CD abgebrochen hat dann frag den CommonDialog1.Filename ab wenn der = "" ist dann hat der user folglich keine Datei ausgewält (also Abgebrochen)

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...