vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 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
Re: FileSystemWatcher Datei einlesen 
Autor: Stam76
Datum: 14.08.14 13:41

Vielen Dank DaveS und Manfred X habe es dank euren Tipps erledigt.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

FileSystemWatcher Datei einlesen 
Autor: Stam76
Datum: 13.08.14 13:17

Hallo Zusammen, ich versuche derzeit einen Ordner zu überwachen.
Das funktioniert auch alles soweit. Wird in dem Ordner die Datei angelegt,
kann ich das über die MessageBox(e.Name) anzeigen lassen.

Nun möchte ich die Datei auch einlesen und danach löschen. Nur leider kommen
zwei Fehlermeldungen:

Beim einlesen, erscheint das die Datei bereits verwendet wird, und beim einblenden
vom Panel erscheint folgende Fehlermeldung:

Ungültiger threadübergreifender Vorgang: Der Zugriff auf das Steuerelement Start2 erfolgte von einem anderen Thread als dem Thread, für den es erstellt wurde.

Ich habe auch mal ein Call Check(xxTemp) im m_fsw_Created versucht. Das bringt allerdings den gleichen
Fehler.

Mein Code:
 
  Private Sub m_fsw_Created(sender As Object, e As _
    System.IO.FileSystemEventArgs) Handles m_fsw.Created
 
        xxTemp = e.Name
        Dim FileNr1 As Integer
        Dim DateiName1 As String = "-"
        Dim DateiName2 As String = "-"
        Dim DateiPlzOrt As String = "-"
        Dim DateivonTeilnehmer As String = "-"
        Dim CallerDateiString As String = "c:\Test\" & xxTemp
 
        If File.Exists(CallerDateiString) Then
            FileNr1 = FreeFile()
            FileOpen(FileNr1, CallerDateiString, OpenMode.Input)
            PhoneDateiKundenID = LineInput(FileNr1)
            DateiName1 = LineInput(FileNr1)
            DateiName2 = LineInput(FileNr1)
            DateiPlzOrt = LineInput(FileNr1)
            DateivonTeilnehmer = LineInput(FileNr1)
            FileClose(FileNr1)
 
            Label37.Text = DateivonTeilnehmer
            Label40.Text = DateiName1
            Label46.Text = DateiName2
            Label50.Text = DateiPlzOrt
            Panel3.Visible = True
            End If
    End Sub
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: FileSystemWatcher Datei einlesen 
Autor: ModeratorDaveS (Moderator)
Datum: 13.08.14 13:52

Wenn du den Begriff "Ungültiger threadübergreifender Vorgang" in die Forumsuche eintippst findest du ganz viel zum Thema Zugriff auf Steuerelementen aus einem Thread. Dein Event läuft nicht in dem Hauptthread. Hier ist ein Beispiel wie man in einem solchen Fall vorgeht.

Und dass die Datei Angelegt wurde bedeutet nicht, dass das Programm, das die Datei schreibt schon damit fertig ist.

Außerdem wenn du schon die File Klasse entdeckt hast könntest du den restlichen VB6 Code am Bestem auch umschreiben. Es gibt bessere Methoden in .Net.

________
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: FileSystemWatcher Datei einlesen 
Autor: Manfred X
Datum: 13.08.14 14:41

Hallo!

Schau auch mal hier ...
http://www.vbarchiv.net/forum/read.php?f=22&t=94624&i=94915

Die Überwachung des Dateisystems durch den Watcher erfolgt in einem
eigenen Thread. Zugriffe auf die Controls im Hauptthread erfordern deshalb
ein "Invoke".

Beitrag wurde zuletzt am 13.08.14 um 14:45:07 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