vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Textfile auslesen 
Autor: stefanbla80
Datum: 22.10.14 15:48

Hallo zusammen,

ich habe eine Frage zum Auslesen von TXT-Files.

Z. B. habe ich eine TXT mit folgendem Inhalt:

--------------------
Hinweise_Start
Blablabla
Usw
Und nochmal
Hinweise_Ende
--------------------

--------------------
Rückinfo_Start
Blablabla
Usw
Und nochmal
Rückinfo_Ende
--------------------

Ich würde gerne zwischen Start und Ende die kompletten Zeilen auslesen und z. B. in einer TextBox ausgeben.
Geht das?!

Grüße
Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfile auslesen 
Autor: ModeratorDaveS (Moderator)
Datum: 22.10.14 16:31

Noch nicht geschafft?
http://www.vbarchiv.net/forum/id22_i62866t62866_txt-datei-auslesen.html

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfile auslesen 
Autor: stefanbla80
Datum: 22.10.14 16:34

Hallo DaveS,

ich muss gestehen nein.
Bisher habe ich es nicht mehr gebraucht, aber jetzt kommt dieses Thema auf.
Mit der beschriebenen Lösung komme ich nicht wirklich weiter.

Grüße
Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfile auslesen 
Autor: Manfred X
Datum: 22.10.14 18:24

Vielleicht hilft dieses Thema weiter ...

http://www.vbarchiv.net/forum/id10_i74212t74212_von-einem-zeichen-bis-ein-anderes-zeichen-lesen.html

... die Art der Codierung der Zeichen in Deiner Datei ist zu beachten !

Lesen des Dateiinhaltes z.B. per ReadAllLines-Methode in ein Zeilenarray.

Da die Identifier Start/Ende Substrings am Ende der gesuchten Zeilen sind,
mußt Du vermutlich (Zeile).Trim.ToUpper.EndsWith "_START" und "_ENDE" verwenden.
Dadurch werden auch Spaces am Zeilenende und Variationen in der
Groß-/Kleinschreibung berücksichtigt.

Beitrag wurde zuletzt am 22.10.14 um 18:36:17 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfile auslesen 
Autor: effeff
Datum: 22.10.14 19:52

Moin,

im Notfall liest Du die Datei einfach zeilenweise aus:

Public Class Form1
 
    'Wir haben einen Button1 auf der Form1 und eine TextBox1 mit Einstellung 
    ' "Multiline":
 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) _
      Handles Button1.Click
        Dim strDatei As String = "d:\testdatei.txt"
        Dim strZeile As String
        Dim strText As String
 
        Dim sr As New System.IO.StreamReader(strDatei)
 
        Do While Not sr.EndOfStream
            strZeile = sr.ReadLine()
            If strZeile.Contains("_Start") Then
                Do
                    strZeile = sr.ReadLine()
                    If Not strZeile.Contains("_Ende") Then
                        strText = strText & strZeile & vbCrLf
                    End If
                Loop Until strZeile.Contains("_Ende")
            End If
        Loop
 
        sr.Close()
 
        TextBox1.Text = strText
 
    End Sub
End Class

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Bedeutung des Begriffs: Auslesen 
Autor: Manfred X
Datum: 22.10.14 20:24

Was genau bedeutet in der Informatik der Begriff "auslesen"?

So weit mir bekannt, liegt dabei die Betonung auf der Hardware-Operation.

"Auslesen" verwendet man meines Erachtens, wenn die "rohen" Informationen
von Speicher-Medien (z.B. Festplatten oder Sticks) abgezogen/kopiert werden.

Für Daten, die über ein Dateisystem (bzw. strukturiert) abgefragt werden,
benutzt man gewöhnlich den Begriff "lesen".

"Auslesen" wird gelegentlich verwendet, wenn der Inhalt einer Datenbank
vollständig kopiert wird - auch hier unter Hervorhebung des binären
Daten-Stroms.

Der Duden schafft hier kaum Klarheit:
http://www.duden.de/rechtschreibung/auslesen_lesen_Daten_abrufen

Wie beurteilt ihr das?

Beitrag wurde zuletzt am 22.10.14 um 20:28:20 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bedeutung des Begriffs: Auslesen 
Autor: stefanbla80
Datum: 22.10.14 20:47

Hallo zusammen,

nach der genannten Definition möchte ich die Textdateien "lesen".

Grüße
Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bedeutung des Begriffs: Auslesen 
Autor: Manfred X
Datum: 22.10.14 20:50

Der Zugriff auf strukturierte Infos in einer Zeilenweise
aufgebauten Text-Datei ist relativ einfach.
Falls es sich nicht um einen Notfall handelt .....
    Public Function ReadBlocks _
        (ByVal filename As String) As List(Of List(Of String))
 
        If Not IO.File.Exists(filename) Then Return Nothing
 
        Dim lines() As String = IO.File.ReadAllLines(filename)
        If lines.Length < 3 Then Return Nothing
 
        Dim startindex As Integer = -1
        Dim blocklist As New List(Of List(Of String))
        Dim blockheader As String = ""
 
        For i As Integer = 0 To lines.Count - 1
 
            If lines(i).Trim.ToUpper.EndsWith("_START") Then
                If Not startindex = -1 Then Return Nothing 'ENDE fehlt
                startindex = i + 1
                blockheader = lines(i).Trim.ToUpper.Replace("_START", "")
            End If
 
            If lines(i).Trim.ToUpper.EndsWith("_ENDE") Then
                If startindex = -1 Then Return Nothing 'START fehlt
                Dim block As New List(Of String)
                block.Add(blockheader)
 
                For k As Integer = startindex To i - 1
                    block.Add(lines(k))
                Next k
 
                startindex = -1 'Suche nach dem nächsten Block
                blocklist.Add(block)
            End If
        Next i
 
        If Not startindex = -1 Then Return Nothing 'ENDE fehlt
        Return blocklist
    End Function
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bedeutung des Begriffs: Auslesen 
Autor: effeff
Datum: 22.10.14 20:52

Moin,

da man AUS einer Datei liest, muss es meiner Meinung nach auslesen heißen. Man liest Daten aus und irgendwo anders dann wieder ein.

Vielleicht reicht es, in Zukunft "Text aus Textdatei importieren" zu benutzen?

Zum Duden:

//auf einem Datenträger (z. B. einem Chip, einer CD oder einer Festplatte) gespeicherte Daten oder Informationen abrufen//

Nun, demnach ist das auslesen von Daten, z. B. aus einer Textdatei, ja genau beschrieben...

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bedeutung des Begriffs: Auslesen 
Autor: Manfred X
Datum: 22.10.14 21:04

Hallo!

Im Duden wird der Bezug zu einem Speichermedium hergestellt:
z.B. Informationen von einer Festplatte abrufen.

Vom "Auslesen" einer Datei oder Datenbank steht eigentlich
nichts da. Eine Datei ist erst durch ein Dateisystem erstellbar.

Die Frage ist: Bezieht sich der Begriff Auslesen nur auf den
Zugriff auf "rohe" Daten aus einem Speicherbereich (low-level) ???

In Foren werden die Begriffe "Datei lesen" und "Datei auslesen"
tatsächlich häufig synonym verwendet.










Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfile auslesen 
Autor: stefanbla80
Datum: 23.10.14 06:51

Guten morgen,

vielen Dank für den Code - das funktioniert so wie gedacht/gehofft.

Jetzt würde ich gerne den Text editieren. Jedoch sollte der neu geschriebene Text genau in diesen Absatz "Start/Ende" geschrieben werden - und dann noch an erster Stelle (für so ne Art Historie).

Mit dem unten genannten Code kann ich ja einfach den Inhalt der Textbox nehmen und diesen "erweitern". Dann werden jedoch die Einträge immer unten angehängt und eben nicht in den Block geschrieben.

    Private Sub Schreiben()
 
        Dim file As System.IO.StreamWriter
        file = My.Computer.FileSystem.OpenTextFileWriter( _
          My.Application.Info.DirectoryPath & "\Data\" & "Test.txt", True)
        file.WriteLine("Here is the first string." & vbNewLine & vbNewLine & _
        TextBox1.Text)
        file.Close()
 
    End Sub
Habt Ihr hier noch einen Tipp?!

Grüße
Stefan
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfile auslesen 
Autor: Manfred X
Datum: 23.10.14 09:19

Hallo!

Dir fehlen leider alle Grundlagen-Kenntnisse.
Textdateien sind sequentielle Dateien.
Der einfachste Weg:
Den Datei-Inhalt komplett lesen und in Zeilen aufspalten
(z.B. durch IO.File.ReadAllLines).
Diese Zeilen kannst Du dann in eine TextBox eintragen
und dort auch neue Zeilen einfügen.
Auf dieser Grundlage muß die Datei neu aus den Zeilen in der
Textbox aufgebaut werden (z.B. WriteAllLines).

Falls in der Textbox nicht alle Zeilen eingetragen werden,
muß eine blockweise Bearbeitung erfolgen (siehe meinen Vorschlag).

Beitrag wurde zuletzt am 23.10.14 um 09:21:58 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfile auslesen 
Autor: ModeratorDaveS (Moderator)
Datum: 23.10.14 09:50

Dir fehlen leider alle Grundlagen-Kenntnisse.

Aber er macht .Net nur 6+ Jahre lang.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfile auslesen 
Autor: stefanbla80
Datum: 23.10.14 11:05

Ich stelle mich sicher nur zu doof an ...

Komme jedoch nur nicht mit diesem definierten Schreiben genau in diesem genannten Bloch zurecht.
Ich lese den Block und möchte dann in der TextBox den Text editieren und genau wieder in diesen Block schreiben.

Sind das noch die einfachsten Grundlagen?! Bin mir da nicht sicher
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfile auslesen 
Autor: Manfred X
Datum: 23.10.14 11:34

Ungetestet - Demo !!!!

Public Class frmBlock
 
    Dim WithEvents cboBlocks As New ComboBox With {.Parent = Me}
 
    Dim tboBlock As New TextBox With _
       {.Parent = Me, .Top = 50, .Multiline = True, _
        .Width = 200, .Height = 200}
 
    Dim WithEvents btnSpeichern As New Button With _
       {.Parent = Me, .Top = 300, .Text = "Speichern"}
 
 
    Dim blocks As List(Of List(Of String))
 
 
    Private Sub frmBlock_Load(sender As System.Object, _
        e As System.EventArgs) Handles MyBase.Load
 
        'siehe gestrigen Beitrag - weiter unten im Thread
        blocks = ReadBlocks("C:\Daten\start_ende.txt")
 
        For i As Integer = 0 To Blocks.count - 1
            cboBlocks.Items.Add(blocks(i)(0))
        Next i
        cboBlocks.SelectedItem = 0
 
    End Sub
 
 
 
    Private Sub cboBlocks_SelectedIndexChanged(sender As Object, _
        e As System.EventArgs) Handles cboBlocks.SelectedIndexChanged
        SetBlock()
    End Sub
 
 
    Private Sub btnSpeichern_Click(sender As Object, _
        e As System.EventArgs) Handles btnSpeichern.Click
        Speichern()
    End Sub
 
    Private Sub Speichern()
 
        GetBlock()
 
        Using tw As New IO.StreamWriter("C:\daten\ausgabe.txt")
            For i As Integer = 0 To blocks.Count - 1
                Dim header As String = blocks(i)(0) & "_Start"
                Dim footer As String = blocks(i)(0) & "_Ende"
 
                tw.WriteLine(header)
                For k As Integer = 1 To blocks(i).Count - 1
                    tw.WriteLine(blocks(i)(k))
                Next k
                tw.WriteLine(footer)
                tw.WriteLine("")
            Next i
        End Using
    End Sub
 
 
    Private Sub GetBlock()
 
        'aktuellen Block aus Textbox in BlockListe übertragen
 
        Dim ind As Integer = cboBlocks.SelectedIndex
 
        With tboBlock
            Dim header As String = blocks(ind)(0)
            blocks(ind).Clear()
            blocks(ind).Add(header)          
            For i As Integer = 0 To .Lines.Length - 1
                blocks(ind).Add(.Lines(i))
            Next i
        End With
    End Sub
 
 
    Private Sub SetBlock()
 
        'aktuellen Block in Textbox eintragen
        tboBlock.Clear()
        Dim ind As Integer = cboBlocks.SelectedIndex
        For k As Integer = 1 To blocks(ind).Count - 1
            tboBlock.AppendText(blocks(ind)(k) & vbCrLf)
        Next k
    End Sub
 
End Class


Beitrag wurde zuletzt am 23.10.14 um 12:03:52 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Textfile auslesen 
Autor: Micke
Datum: 23.10.14 12:53

hehe

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

[Betreff fehlt] 
Autor: Manfred X
Datum: 24.10.14 00:08


Bitte Text ODER Emoticon benutzen ....

http://www.urbandictionary.com/define.php?term=hehe
http://www.sherv.net/hehe-emoticon-301.html
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: [Betreff fehlt] 
Autor: Micke
Datum: 24.10.14 12:12

bzw. wo sind die like Buttons ^^ ?

Micke

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bedeutung des Begriffs: Auslesen 
Autor: Micke
Datum: 27.10.14 10:31

man kann auch "in" einer Datei lesen - was der gleiche Vorgang wäre , das wäre deshalb kein Pro für's Präfix.

ich verstehe den Duden so, daß auslesen das vollständige Lesen des Textes bezeichnet - wie z.B. ein Buch lesen oder ein Buch auslesen.
Unterscheidung EDV bzw. nicht EDV sehe ich nicht. Dementsprechend wäre ReadAllLines == auslesen.


es gibt übrigens auch die Wein-Auslese - was nochmal eine Bedeutung mitbringt

Micke

Beitrag wurde zuletzt am 27.10.14 um 10:57:14 editiert.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Bedeutung des Begriffs: Auslesen 
Autor: Manfred X
Datum: 27.10.14 21:48

Hallo!

Analogie-Bildungen helfen nicht weiter.
Mir geht es um die fachliche Bedeutung innerhalb der INFORMATIK.

In Foren wird "Datei auslesen" oft verwendet, aber
aus der Literatur kenne ich nur "Speicherbereich auslesen",
"Speichermedium auslesen" oder "Datenbank auslesen" = den Inhalt vollständig kopieren.

Ich wollte wissen, ob die Formulierung "Datei auslesen" bereits Eingang in die
Fachliteratur gefunden hat.






Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bedeutung des Begriffs: Auslesen 
Autor: effeff
Datum: 27.10.14 22:04

M$ selber spricht von EINlesen: http://support.microsoft.com/kb/302309/de. Man liest aus einer Textdatei und nennt das dann Einlesen...

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bedeutung des Begriffs: Einlesen 
Autor: Manfred X
Datum: 27.10.14 23:47

Hallo!

Danke für den Hinweis.
Diese Überschrift lautet im Original ....
[I]How to read a text file by using System.IO in Visual Basic 2005 or in Visual Basic .NET[/I]

Ich denke, die Verwendung des Begriffs "auslesen" würde mit dem synonym
gebrauchten Begriff "einlesen" kollidieren (--> unklare Bedeutung: I/O).

Der Duden stellt im Rahmen der EDV auch beim Verb "einlesen"
den Bezug zur Hardware her:
http://www.duden.de/rechtschreibung/einlesen

Beitrag wurde zuletzt am 28.10.14 um 00:00:38 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel