Problem nach Einlesen der Com beim Speichern der Info!

  • VB6

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Neptun.

    Problem nach Einlesen der Com beim Speichern der Info!

    Hallo Liebe VB'ler

    Ich bin neu hier und beschäftige mich jetzt die 2.te Woche mit VB 6.0 (hab ein wenig C und C++ gemacht).
    Ich soll eine Schnittstelle auslesen, von der bis dato nichts bekannt ist was dort raus-/ bzw rein-kommt!

    Ich hab einen Schnittstellentester momentan am pc hängen um da ein wenig rumzuspielen.

    Nun mein Problem:

    Ich kann Daten senden und empfangen ... zusätzlich hab ich mir noch einen Ordner angelegt in dem die Text-Datei davon gespeichert werden soll.einmal in Hex und einmal in Asci ... (wobei es hier noch ein wandlungsproblem gibt ?( )

    Nun speichert er dies auch aber er speichert es nicht nur 1x sondern zig mal das selbe,obwohl ich nur ein "test" geschickt habe.
    Hab auch schon versucht die Label.captions außerhalb der schleife zu verwenden, ohne erfolg wo ist mein Fehler?

    Wie schaffe ich es jetzt,dass pro gesendeter datei nicht 100 mal das gleiche gespeichert wird ,sondern jede datei einzeln untereinander in der txt datei?!

    hier mal der Code (für Fehler oder schlechte Programmierung tut es mir leid - bin eben neu)


    'Ausgabe der Daten

    Private Sub MSComm1_OnComm() 'Input: Abfrage von Fehlern während des Sende-Vorgangs via CommEvent

    Select Case MSComm1.CommEvent

    Case comOverrun: MsgBox "Datenverlust:während der Übertragung!"

    Case comRxOver: MsgBox "Datenverlust:Empfangs-Buffer-Überlauf!"

    Case comEvReceive: Me.Text3 = Me.Text3 & MSComm1.Input 'Ausgabe



    End Select

    'In Text-Datei speichern


    Dim InBuff As String

    Dim Empfangene_Daten As String

    Const Pfad = "C:\Program Files\Microsoft Visual Studio\VB98\Beispiel-Programme\Aufzeichnung\Hex"

    Const Asci = "C:\Program Files\Microsoft Visual Studio\VB98\Beispiel-Programme\Aufzeichnung\Asci"



    If Len(Text3.Text) > 0 Then

    Empfangene_Daten = Text3.Text

    Dim s As String

    's = MSComm1.Input

    s = Text3.Text 'mal geändert ....

    Dim j As Integer, z As String

    Dim hg As String

    Dim ba As String



    For j = 1 To Len(s)

    z = Mid(s, j, 1)

    hg = hg & Hex(AscW(z)) & vbCrLf

    Label10.Caption = "Hex-Code : " & vbCrLf & hg & vbCrLf



    ba = ba & Asc(z) & vbCrLf

    Label14.Caption = "Asci-Code : " & vbCrLf & ba & vbCrLf

    Next

    Open Pfad & "\Empfangene_Daten" & " erstellt am " & Format$(Now, "dd-mm-yyyy hh.mm") & ".txt" For Append As #1

    Print #1, Empfangene_Daten

    Print #1, Label10.Caption



    Me.List1.AddItem (Me.Text2.Text)

    Close #1

    '####versuch die list zu verkleinern!

    If Me.List1.ListCount > 1 Then 'löscht Liste1

    Me.List1.RemoveItem 0



    End If

    Open Asci & "\Empfangene_Daten" & " erstellt am " & Format$(Now, "dd-mm-yyyy hh.mm") & ".txt" For Append As #2

    Print #2, Empfangene_Daten

    Print #2, Label14.Caption



    Close #2

    End If

    End Sub









    Danke schonmal ^^ und sorry nochmal für den Programm Code *grins*



    Grüße

    Vildan

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Vildan“ ()

    Ich hab jetzt bemerkt, wenn ich einen Break-Point setze und mit F8 schrittweise durchgehe und mir danach die Text-Datei anschaue, was er gespeichert hat, dann ist nur 1 einziger Eintrag drin statt unzählige?!



    Woran kann das liegen?verhaspelt sich das Programm?brauch ich eine Sleep oder Delay Fkt.???



    Grüße

    Vildan
    Hallo Vildan,
    zum Posten von Code bitte den VB-Button verwenden.
    Ersetze das Append durch Output, sonst werden alle
    Ausgaben aneinander gehängt. Wenn jede Ausgabe
    in eine neue Datei soll, kannst du z.B. eine Variable
    hochzählen:

    Visual Basic-Quellcode

    1. Static Z1 As Long
    2. Z1 = Z1 + 1
    3. Open App.Path & "\Empfangene_Daten" & Format$(Z1, "000") & ".txt" For Output As #2
    Gruss,

    Neptun