Peter Parker
Mitglied
Hallo Forum,
ich suche verzeifelt nach einer möglichen Lösung.
Folgendes:
Mein Server erzeugt eine txt Datei und schreibt in dieser zeilenweise Datensätze hinein.
Auf der Gegenseite versucht der Client, während der Server weiter die Zeilen hinzufügt, den Inhalt der Datei auszulesen.
Wenn ich nun den Inhalt der Datei auslese klappt das auch wunderbar und ich erhalte die bis dahin eingefügten Datensätze (z.B. 100 Stück).
Möchte ich nun die nach dem ersten auslesen der Datei neu hinzugekommenen Datensätze auslesen, so erhalte ich jeweils immer nur die gleichen 100 Datensätze wie zuvor.
Ich habe bereits versucht die Datei zu schließen und neu einzulesen, doch leider bekomme ich lediglich die alten Datensätze ohne die neuen.
Auch habe ich versucht, den Stream offen zu lassen und dann einfach weiter zu lesen. Leider auch erfolglos.
Gibt es irgend eine Art/Methode das EndOfFile Attribut zu aktualisieren oder vielleicht ein ganzes Verzeichnis/Ordner zu aktualisieren, damit mein Programm erkennt, das sich an der Datei was geändert hat.
Ich habe bereits auch verschiedene Streams versucht, bringt alles nichts!
Hier der Code:
ich suche verzeifelt nach einer möglichen Lösung.
Folgendes:
Mein Server erzeugt eine txt Datei und schreibt in dieser zeilenweise Datensätze hinein.
Auf der Gegenseite versucht der Client, während der Server weiter die Zeilen hinzufügt, den Inhalt der Datei auszulesen.
Wenn ich nun den Inhalt der Datei auslese klappt das auch wunderbar und ich erhalte die bis dahin eingefügten Datensätze (z.B. 100 Stück).
Möchte ich nun die nach dem ersten auslesen der Datei neu hinzugekommenen Datensätze auslesen, so erhalte ich jeweils immer nur die gleichen 100 Datensätze wie zuvor.
Ich habe bereits versucht die Datei zu schließen und neu einzulesen, doch leider bekomme ich lediglich die alten Datensätze ohne die neuen.
Auch habe ich versucht, den Stream offen zu lassen und dann einfach weiter zu lesen. Leider auch erfolglos.
Gibt es irgend eine Art/Methode das EndOfFile Attribut zu aktualisieren oder vielleicht ein ganzes Verzeichnis/Ordner zu aktualisieren, damit mein Programm erkennt, das sich an der Datei was geändert hat.
Ich habe bereits auch verschiedene Streams versucht, bringt alles nichts!
Hier der Code:
Code:
Imports System
Imports System.IO
Imports System.Text
Imports System.Threading
Imports Communication
Module Module1
Sub Main()
Dim path As String 'Verzeichnis
Dim count As Double 'Anzahl der eingelesenen Zeichen
path = "T:\dataset.csv"
count = 0
con = New InterfaceClass
Try
'*** Warten bis die Datei erzeugt wurde
While Not System.IO.File.Exists(path)
End While
leseBlock(count, path)
leseBlock(count, path)
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
Private Sub leseBlock(ByRef count As Double, ByVal path As String)
Dim sr As StreamReader
Dim tmp As String
Debug.Print("leseBlock: " & count)
Try
tmp = Nothing
sr = New StreamReader(path)
sr.BaseStream.Position = count 'Lesezeiger setzen
tmp = sr.ReadToEnd() 'Block lesen einlesen
count = sr.BaseStream.Position - 2
Console.WriteLine(tmp)
sr.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
End Module