Ergebnis 1 bis 15 von 54

Thema: Übergabe an Access

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registriert seit
    17.11.2005
    Beiträge
    23
    Hallo,

    Ja ich benutze VisualBasic 6.
    Leider funktioniert es auch nicht wenn ich das Klammernpaar wegnehme.

    Es könnte eig auch wie gesagt nur daran liegen also beim Spliten muss da irgendwas schief gehen...

    Wenn ich z.B die Variable "Eingangstext" ausgebe, bekomme ich ja gleich als ersten von FMS32 den Text:

    #Verbindung zu FMS32-Server erfolgreich hergestellt!
    #Verbunden mit Anschluss: 1
    AN1

    Mit der Variable "Eingang(0)" bekomme ich jetzt den Inhalt "#Verbindung", mit der Eingang(1) bekomme ich "zu", usw...

    Wenn jetzt allerdings ein richtiger Status kommt, bekomme ich die Fehlermeldung:
    Laufzeitfehler 9:
    Index liegt außerhalb des gültigen Bereich.

    Woran könnte es noch liegen?

    Gruß Christian

  2. #2
    Registriert seit
    16.03.2002
    Beiträge
    110
    Hallo Christian,

    Eingang = Split(Eingangstext, Chr$(9)) splitted bei jedem Vorkommen des TAB-Zeichens
    CHR$(9).

    In

    #Verbindung zu FMS32-Server erfolgreich hergestellt!
    #Verbunden mit Anschluss: 1
    AN1

    kommt TAB nicht vor, also steht der gesamte Text in Eingang(0). Wenn Du versuchst,
    auf Eingang(1) zuzugreifen, kommt die Meldung "Index außerhalb des gültigen Bereichs",
    weil Eingang (1) ja gar nicht angelegt wurde.

    ------
    Mit der Variable "Eingang(0)" bekomme ich jetzt den Inhalt "#Verbindung", mit der Eingang(1) bekomme ich "zu", usw...
    ------

    Das kann eigentlich nicht angehen, es sei den, Du hast Chr$(9) in CHR$(32) geändert.

    Dann funktionieren aber die richtigen Meldungen nicht mehr.

    Lösung:

    Chr$(9) muss bleiben.

    Nach

    Eingangstext=...............

    folgendes einfügen:

    If Left(Eingangstext, 1) = "#" Then
    Exit Sub
    End If

    Damit wird die Server-Meldung übersprungen und es geht mit der
    ersten richtigen Meldung los.

    Nun sollte es klappen.

    Gru? Ralf

  3. #3
    Jules Gast
    Hallo! Ich arbeite (schon länger) mit folgendem Code (etwas abgeändert) in VB6...erfolgreich. Einfach mal kopieren und schauen ob`s klappt ;)

    :

    Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    On Error Resume Next
    Dim strData As String
    Winsock1.GetData strData
    FMSEingang strData
    End Sub

    Public Sub FMSEingang(ByVal strData As String)

    Dim strMultiString() As String
    Dim strSimple() As String
    Dim I As Integer

    If strData <> "" Then
    strMultiString = Split(strData, Chr$(13) & Chr$(10)) 'Warum? Falls 2 Telegramme auf einmal gesendet werden, wird keins "verschluckt"!

    For I = 0 To UBound(strMultiString)

    If strMultiString(I) <> "" Then
    strSimple = Split(strMultiString(I), Chr$(9))

    Select Case strSimple(0)
    Case "FMSTlg"
    MsgBox strSimple(1) & "_" & strSimple(6) & "_" & strSimple(8) 'Hier würde FMS-Kennung_Status_Richtung stehen!
    Case "POC"
    MsgBox strSimple(1) 'Hier würde der RIC stehen!
    Case "ZVEI"
    MsgBox strSimple(1) 'Hier würde die 5-Tonfolge stehen
    End Select

    End If

    Next I

    End If
    End Sub

  4. #4
    Registriert seit
    17.11.2005
    Beiträge
    23
    @Ralf

    richtig ich bin ein bischen durcheinander gekommen...
    aber so funktioniert es jetzt, vielen Dank.

    Gruß Christian

  5. #5
    Registriert seit
    27.07.2007
    Beiträge
    225
    Hallo,

    kann es mal bitte jemand online stellen?
    ich würde es auch gerne mal testen.

    mfg

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •