-         

Ergebnis 1 bis 8 von 8

Thema: String verarbeiten

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.06.2004
    Alter
    36
    Beiträge
    232

    String verarbeiten

    Anzeige

    Hallo Leute!

    Ich schicke über die RS323 ein ständig ein Steuersignal das wie folgt aufgebaut ist:

    *startzeichen*DATA1;DATA2;DATA3*endzeichen*

    Wie kann ich unter Bascom dieses Steuersignal in eine Variable bekommen?

    ich hab mir so was vorgestellt:

    Zeichen einlesen
    wenn Zeichen = startzeichen dann
    loop
    zeichen einlesen
    data = data + zeichen
    end wenn zeichen = endzeichen
    aufteilen
    end

    Freu mich auf eure Antworten. Besonders in Quellcodeform
    Vielen Dank!


  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.03.2005
    Ort
    OWL
    Beiträge
    216
    Hi,
    ich würde einfach alles einlesen, was kommt und nur nach dem endzeichen suchen, also wenn Endzeichen, dann Auswertung. Aber Deine Variante sollte auch klappen. Achte nur darauf, dass Du nicht zu viel Code in den Empfangsinterrupt packst, das kann sehr oft Probleme geben.
    Wenn's nicht klappt, nochmal melden!

    Ruppi

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.06.2004
    Alter
    36
    Beiträge
    232
    Hat geklappt!
    Ich hab alles in einer Variablen zusammen. Nur wie kann ich diese jetzt in mehrere aufteilen?

    in VB ging das mit der funktion split etwa so:

    dim A() as string
    dim variable as string
    variable = "erster Teil;zweiter Teil"

    a = split(variable, ";")

    a(1) enthält nun "erster Teil"
    a(2) enthält nun "zweiter Teil"

    gibt es so was auch unter Bascom, oder wie kann ich das anstellen?
    MFG!


  4. #4
    Benutzer Stammmitglied
    Registriert seit
    14.02.2004
    Ort
    Kaiserslautern
    Beiträge
    78
    Hallo,

    schau dir mal unter Bascom den Befehl MID und LEN an damit sollte das gehen.

    Gruss Frank

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.06.2004
    Alter
    36
    Beiträge
    232
    Hallo Frank!
    Die beiden Befehle sind mir bekannt. Leider lässt ich mit denen nicht ermitteln, an welcher stelle das Trennzeichen steht. Dann muss ich eben mit fester Länge des Datensatzes arbeiten. Dann kann ich auch MID und LEN benutzen. Vielen Dank!


  6. #6
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Code:
    Dim Instring As String * 63   ' eingabe
    Dim Strings(5) As String * 15   ' fünf strings
    Dim Char As String * 1         ' ein zeichen 
    Dim Par As Byte          ' string-Nummer 1-5
    Dim Idx As Byte          ' zeichen-# im string
    
      Instring = "eins;zwei;drei;vier"
      Par = 1
      For Idx = 1 To Len(instring)
          Char = Mid(instring , Idx , 1)
          If Char = ";" Then
             Incr Par
          Else
             Strings(par) = Strings(par) + Char
          End If
      Next
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    14.06.2004
    Alter
    36
    Beiträge
    232
    Wow darauf wäre ich nicht gekommen. Gute Idee, das mit einer Schleife zu machen! Dankeschön!


  8. #8
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Bitteerscheen.
    Nicht vergessen, wenn du das ein weiteres mal machen willst, solltest du die strings(1-bis-5) auf "leer" setzen

    For Par = 1 To 5
    Strings(Par) = ""
    Next
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

Berechtigungen

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