Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 22

Thema: String auftrenen

  1. #11
    focus81 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.10.2006
    Beiträge
    22
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo AliBaba

    wiw meinst du das mit dem durchsuchen? steh da gerade etwas auf dem schlauch.

  2. #12
    Registriert seit
    10.02.2005
    Beiträge
    37
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    du nimmst einen Pointer und durchsuchst den String Zeichen für Zeichen
    (nach dem Header) :
    -Ablegen der Zeichen in einen DB
    -findest du ein ; dann ist die Variable vollständig -> Umwandeln ASCII -> REAL
    - gleiches für 2. und 3. Variable
    - findest du ein CR, ist Schluß

    Ich mache das lieber ohne Systembausteine, dann kann das auch für anders aufgebaute Zeichenketten verwendet werden und man braucht nicht SW schreiben, nur damit es für die Systembausteine passt.

  3. #13
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Naja ... das macht der Find ja auch.
    Und irgendwann kommt man dann ja vielleicht doch um die String-Routinen nicht mehr drum herum.

    Ich würde erstmal zusehen, dass der FIND mir ein sinnvolles Ergebnis liefert - und das kann er nur, wenn sowohl der QuellString wie auch der SuchString korrekt und sinnvoll initialisiert sind ...

    Gruß
    Larry

  4. #14
    Registriert seit
    22.11.2006
    Ort
    Landkreis Freudenstadt
    Beiträge
    168
    Danke
    25
    Erhielt 10 Danke für 10 Beiträge

    Standard

    Zitat Zitat von AliBaba Beitrag anzeigen
    du nimmst einen Pointer und durchsuchst den String Zeichen für Zeichen
    (nach dem Header) :
    -Ablegen der Zeichen in einen DB
    -findest du ein ; dann ist die Variable vollständig -> Umwandeln ASCII -> REAL
    - gleiches für 2. und 3. Variable
    - findest du ein CR, ist Schluß

    Ich mache das lieber ohne Systembausteine, dann kann das auch für anders aufgebaute Zeichenketten verwendet werden und man braucht nicht SW schreiben, nur damit es für die Systembausteine passt.
    Bin gerade auch dabei einen String zu zerlegen. Mit den Siemens Bausteinen bekomme ich aber nicht ichtiges zustande, die Idee mit de Pointer scheint mir besser zu funktionieren. Kannst du mir mal nen Ansatz zeigen wie du das realiseren würdest?
    Wäre echt super.

    Gruß Zimbo

  5. #15
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Hallo,
    ich würde das nicht mit Pointern machen - sorry ...
    Was willst du denn genau machen, wie machst du es und was funktioniert denn nicht so richtig ?

    Gruß
    Larry

  6. #16
    Registriert seit
    22.11.2006
    Ort
    Landkreis Freudenstadt
    Beiträge
    168
    Danke
    25
    Erhielt 10 Danke für 10 Beiträge

    Standard

    Habe einen mit verschiedenen Daten einer Pelletsanlage. Ein String mit 200 Zeichen wird hier eingelesen. Wenn der String ja immer gleich wäre könnte ich mir direkt die Bytes holen aber dem ist nicht so. Die unterschiedlichen Werte sind durch ein Leerzeichen getrennt. Habe mit dem Find schon versucht ein Leerezeichen zu suchen aber bekomme keine Rückmeldung. Initialisert habe ich den String auch mit der maximlane Länge und der aktuellen Länge(mit LEN Baustein). Sind halt schon jeden Menge Daten

    GRüße Zimbo

  7. #17
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zitat Zitat von Zimbo30 Beitrag anzeigen
    Habe einen mit verschiedenen Daten einer Pelletsanlage. Ein String mit 200 Zeichen wird hier eingelesen. Wenn der String ja immer gleich wäre könnte ich mir direkt die Bytes holen aber dem ist nicht so. Die unterschiedlichen Werte sind durch ein Leerzeichen getrennt. Habe mit dem Find schon versucht ein Leerezeichen zu suchen aber bekomme keine Rückmeldung. Initialisert habe ich den String auch mit der maximlane Länge und der aktuellen Länge(mit LEN Baustein). Sind halt schon jeden Menge Daten

    GRüße Zimbo
    Kann ich nicht nachvollziehen. Ich habe mit:

    Code:
    SuchString := ';';
    Length := 0;
    
    Pos :=                  FIND(IN1 := Auftrag, IN2 := SuchString);
    Car_id_No :=            MID(IN := Auftrag ,L := Pos-1 ,P := 1);
    Auftrag :=          DELETE(IN := Auftrag, L := Pos + Length, P := 1);
    
    Pos :=                  FIND(IN1 := Auftrag, IN2 := SuchString);
    Kind_of_production :=   MID(IN := Auftrag ,L := Pos-1 ,P := 1);
    Auftrag :=          DELETE(IN := Auftrag, L := Pos + Length, P := 1);
    
    Pos :=                  FIND(IN1 := Auftrag, IN2 := SuchString);
    IO_Flag :=              MID(IN := Auftrag ,L := Pos-1 ,P := 1);
    Auftrag :=          DELETE(IN := Auftrag, L := Pos + Length, P := 1);
    
    ...
    lange Strings getrennt.
    Mit Find suchst du das nächste Leerzeichen (in meinem Beispiel das ";" ), mit Mid kopierst du des gewünschte, mit Delete schneidest du es weg, um im Reststring weiter zu suchen. So etwas geht natürlich am besten in SCL.
    Geändert von Ralle (25.03.2011 um 21:45 Uhr)
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  8. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    Zimbo30 (29.03.2011)

  9. #18
    Registriert seit
    22.11.2006
    Ort
    Landkreis Freudenstadt
    Beiträge
    168
    Danke
    25
    Erhielt 10 Danke für 10 Beiträge

    Standard

    Sorry für die verspätete Antwort,
    ich denke mein problem liegt am Initialisieren des Suchstrings.
    Ich möchte nach einem Leerzeichen suchen, d.H doch ich muß
    eine 20 in den String schreiben, oder? Die Maximale Länge beim header wäre doch 1 und die tatsächliche Länge auch 1 oder sehe ich das falsch?

    Gruß

  10. #19
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.726
    Danke
    398
    Erhielt 2.401 Danke für 2.001 Beiträge

    Standard

    Hallo,
    das Leerzeichen hat den Wert Dez.32 oder Hex.20 - je nachdem welches Format du bevorzugst.
    Bezüglich des Headers stimmt es so, wie du schreibst ...

    Gruß
    Larry

  11. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    Zimbo30 (29.03.2011)

  12. #20
    Registriert seit
    22.11.2006
    Ort
    Landkreis Freudenstadt
    Beiträge
    168
    Danke
    25
    Erhielt 10 Danke für 10 Beiträge

    Blinzeln


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Super, funktoniert. Ich bekomme die richtige Stelle im FIND angezeigt.
    Jetzt muß ich das Teil noch komolett zerlegen. schon genial wie Ralle das in SCL realisiert hat. Muß ich wohl nun auch mit SCL auseinder setzen,
    mal sehen ob das was wird

    Grüße

Ähnliche Themen

  1. Konstante String in Variable String schreiben
    Von sailor im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 07.12.2009, 18:01
  2. Antworten: 13
    Letzter Beitrag: 24.09.2009, 12:54
  3. Int na. String und String zusammensetzen
    Von bastler im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 09.11.2008, 20:29
  4. Ein String kopieren in einen anderen String
    Von CanYouHelpMe im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.09.2008, 17:21
  5. STRING aus einzelnen STRING's zusammenstellen
    Von ollibolli im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 23.08.2006, 09:39

Lesezeichen

Berechtigungen

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