vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 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 - Fortgeschrittene
Re: Schreiben in Textdatei wird abgebrochen 
Autor: kurol
Datum: 21.07.17 14:09

Hallo Manfred,

vielen Dank für die schnelle Antwort. Da ich, wie gesagt, kein VB.NET-Spezialist bin, habe ich mal nach diversen Änderungen die komplette Routine beigefügt.

Mittlerweile ist der Stand so:
in die RTB werden zur Laufzeit nur ein paar Bytes eingetragen, ebenfalls in die abgespeichete Datei.
Vor dem Öffnen des Savefile-Dialogs kommt die Meldung 'Kameratarget.exe [mein Programm] hat einen Haltepunkt ausgelöst'. Gemeint ist ein VB-interner Haltepunkt, keine Ahnung wie ich den abschalten kann...
Die Save-Dialog wird richtig aufgerufen, der Dateiname richtig eingetragen. Wenn ich dann auf 'Speichern' klicke, steht plötzlich der gesamte abgerufene Text fehlerlos in der RTB, allerdings nicht in der abgespeicherten Datei.

Wenn ich den Teil zum speichern (ab if text_sent = "SE" )auskommentiere, wird der gesamte abgerufene Text sofort in der RTB angezeigt.

   ..
    Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As _
      System.IO.Ports.SerialDataReceivedEventArgs) Handles _
      SerialPort1.DataReceived
        ReceivedText(SerialPort1.ReadExisting())
    End Sub
 
 
 
    Private Sub ReceivedText(ByVal [text] As String)
        Dim DateTime As String = Now.ToString("dd-MM-yyyy HH_mm_ss")
        Dim docname As String = "Log.txt"
        Dim dt = DateTime                                 ' Datum und Zeit 
        ' ermitteln
 
        Dim answer As String
 
        If rtbreceived.InvokeRequired Then
            Dim x As New SetTextCallback(AddressOf ReceivedText)
            Invoke(x, New Object() {(text)})
        Else
            answer = [text]
            If text_sent <> "RST" Then                                      _
              ' gesendete Abfrage war <> RST
                Try
                    stopflag = True                                             _
                      ' weiteren Datenverkehr stoppen
 
                    rtbreceived.Text &= [text]                                  _
                       ' in Rich text box eintragen
 
                    rtbreceived.SelectionStart = rtbreceived.Text.Length        _
                      ' Autoscroll
                    rtbreceived.ScrollToCaret()
                    rtbreceived.Refresh()
 
                    If text_sent = "SE" Then                                    _
                      ' SE > Datei soll abgerufen und gespeichert werden
                        docname = docname & dt & ".txt"
                        SaveFileDialog1.FileName = docname
                        SaveFileDialog1.InitialDirectory = "d:\"
                        SaveFileDialog1.RestoreDirectory = True
                        SaveFileDialog1.Filter = "Text Files (*.txt*)|*.txt"
                        If SaveFileDialog1.ShowDialog = _
                          Windows.Forms.DialogResult.OK Then
                            My.Computer.FileSystem.WriteAllText( _
                            SaveFileDialog1.FileName, [text], True)    'oder
                            '       My.Computer.FileSystem.WriteAllText( 
                            ' SaveFileDialog1.FileName, rtbreceived.Text, True)
                        End If
                        text_sent = ""
                    End If
                Catch ex As Exception
                    '   MsgBox("Error")
                End Try
 
            End If
 
            text_sent = ""
            stopflag = False                            'Datenverkehr wieder 
            ' zulassen
        End If
 
        '        parse_answer(answer)                       'Auswertung _
          weiterer Befehle
 
 
    End Sub
Mir kommt es so vor, als wenn die Routine zum Speichern schon aufgerufen wird, bevor der gesamte Text übertragen wurde. Ich weiß aber nicht, wie ich das handeln muss. Vielleicht übersehe ich auch nur eine Kleinigkeit, ich programmiere halt zu 99,9% in C und nur selten in Visual Basic.

Falls Du einen Fehler oder eine Diskrepanz findest oder weitere Fragen hast, lasse es mich bitte wissen.

Freundlicher Gruß


Roland
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Schreiben in Textdatei wird abgebrochen1.716kurol21.07.17 10:39
Re: Schreiben in Textdatei wird abgebrochen1.015Manfred X21.07.17 12:24
Re: Schreiben in Textdatei wird abgebrochen932kurol21.07.17 14:09
Re: Schreiben in Textdatei wird abgebrochen886sv0001021.07.17 18:49

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