vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 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
Stätige Reportdatei permanent auslesen, wie? 
Autor: Tommi467
Datum: 12.10.17 21:55

Hallo zusammen,

ich habe hier eine Software, die unentwegt Reportdaten in eine Textdatei schreibt.
Zyklus etwa alle 8-10 Sekunden kommen 3-6 kurze Reportzeilen (ca.30 Zeichen) hinzu.

Diese stätig auflaufenden Daten bräuchte ich für meine eigene Software.
Wie kann ich nun die letzten hinzugekommenen Daten ermitteln, oder muss
ich jedes mal die ganze Datei auslesen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Stätige Reportdatei permanent auslesen, wie? 
Autor: Manfred X
Datum: 12.10.17 22:32

Hallo!

Wenn Du eine Textdatei (sequentielle Datei) verwendest,
mußt Du tatsächlich alles lesen um an die Daten am Dateiende
heranzukommen.

Verwende statt dessen eine lokale Datenbank und schreibe Deinen
Report jeweils in einen Datensatz (incl. eindeutigem Satzschlüssel).
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Stätige Reportdatei permanent auslesen, wie? 
Autor: Tommi467
Datum: 13.10.17 06:03

Hallo Manfred,

vielen Dank für die rasche Antwort.
Nein, ich habe auf die Ursprungsdatei keinen Einfluss,
leider, das ist ein Fremdprogramm.
Ok, dann weiß ich wie ich es zu machen habe.
Umständlich, aber ich muss da ran...

Vielen Dank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Stätige Reportdatei permanent auslesen, wie? 
Autor: Tommi467
Datum: 13.10.17 07:24

So habe ich das jetzt erst einmal gemacht.

Ich bin noch bei den Trockenübungen, händisch alles
zu testen, also noch nicht mit der Fremdsoftware,
aber zumindest kann ich so Änderungen in der wachsenden
Textdatei ermitteln.

Irgendwelche Verbesserungsvorschläge?


        oldText = aktText
 
        Dim sr As New System.IO.StreamReader("all.txt", _
          System.Text.Encoding.Default)
        aktText = (sr.ReadToEnd)
        sr.Close()
 
        Dim LenOld As Integer
        LenOld = Len(oldText)
        TextBox1.Text = Mid$(aktText, LenOld + 1, Len(aktText))
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Anzahl Zeichen am Ende einer Textdatei lesen 
Autor: Manfred X
Datum: 13.10.17 08:31

Aufrufparameter:
File: Pfad/Name der Datei
LengthOfText: Anzahl der zu lesenden Text-Bytes am Dateiende
 
Public Function GetEndOfTextFile(ByVal File As String, _
        LengthOfText As Integer) As String
 
        If Not IO.File.Exists(File) Then Return Nothing
        If LengthOfText < 1 Then Return Nothing
 
        Dim fi As New IO.FileInfo(File)
        If fi.Length < 1 Then Return Nothing
        If fi.Length < LengthOfText Then LengthOfText = fi.Length
 
        'Encoding ggf. anpassen  
        Dim enc As System.Text.Encoding = System.Text.Encoding.UTF8
 
        Dim pos As Integer = fi.Length - LengthOfText
        Dim EndOfText(LengthOfText - 1) As Byte
 
        Try
            Using fs As New IO.FileStream(File, _
                IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.ReadWrite)
 
                fs.Position = pos
                fs.Read(EndOfText, 0, LengthOfText)
            End Using
 
            Return enc.GetString(EndOfText)
        Catch
            Return Nothing
        End Try
    End Function


Beitrag wurde zuletzt am 13.10.17 um 08:36:43 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Stätige Reportdatei permanent auslesen, wie? 
Autor: Franki
Datum: 17.10.17 04:05

Hallo,

auch wenn es sich um ein Fremdprogramm handelt, dann sind Daten (viele Daten wie bei dir) natürlich in einer Datenbank besser aufgehoben als in einer Textdatei.

Also solltest du dir überlegen die Daten zeitnah in eine DB zu schreiben, dann kannst du in aller Ruhe damit weiter arbeiten.

Ganz zu schweigen von Datensicherung, oder Zugriffsproblemen weil die auszulesende Datei grade gesprerrt ist weil in ihr geschreieben wird usw.

Aber gestatte mir die Frage, um was für Daten es sich handelt? Denn mehmals pro Minute auf Daten zugreifen zu müssen erfordert schon einiges an Performance in Sachen Speicherung und auch in Sachen Analyse. Was genau machst du da eigentlich?

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Stätige Reportdatei permanent auslesen, wie? 
Autor: Tommi467
Datum: 17.10.17 14:02

Hallo Frank,

danke erst einmal für deine Antwort.
Aber um es noch einmal zu sagen.
Ich habe keinen Einfluss auf die Software.
Ich muss nur damit arbeiten.

Eine Datenbank ist hier auch nur bedingt angebracht, weil:

Es handelt sich um eine Software für den Amateurfunk.

Die Verbindungsdaten werden im Amateurfunk generell in sogenannten
ADIF-Dateien gespeichert. Eine "Art" XML. Der, der die erfunden hat
gehört erschlagen. Jedenfalls ist dieses ADIF Format das gängige Format
um die Verbindungsdaten zwischen unterschiedlichen Programmen auszutauschen.

Die Software die ich verwende ist von der Anzeige her absolut nicht
zu ende gedacht. Die Entwickler sträuben sich aber von den Usern Ratschläge
anzunehmen. Zum Glück werden aber alle eingehenden digitalen Signale in eine
Protokolldatei geschrieben.

Da setze ich nun mit meiner Software an.
Ich lese diese Protokolldatei wieder ein und werte die Daten so aus,
wie es Sinn macht um dem Amateur wirklich nützliche Informationen
liefern zu können.

Noch einmal. Datenbank ja, wäre ganz sicher sinnvoller.
Wenn sie der Entwickler aber nicht benutzt, kann ich es
auch nicht ändern. Ich selbst brauche die Datenbank nicht,
da ich nur die jeweils letzten 20 Einträge darstelle.

Ich hoffe das war eine ausführliche und verständliche Beschreibung

Beitrag wurde zuletzt am 17.10.17 um 14:04:46 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