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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: Zahl aus String extrahieren

  1. #1
    Registriert seit
    14.06.2012
    Beiträge
    53
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moin, moin.

    Ich steh gerade vor dem Problem, dass ich einen String habe der am mit einer Zahl anfängt.
    Nun möchte ich die Zahl für die weiter Auswertung nutzen.
    Wie komme ich an die Zahl? Bzw geht das ohne den String auf Bytebene auswerten zu müssen?

    Kurz zum verdeutlichen:
    strMuster := "12Abc3456df"
    Mittels MID(strMuster, 2,1 ) habe ich nun "12" als String vorliegen und würde nun gerne daraus
    ein Integer zaubern.

    Grüße Peter

    PS: Ich nutze Codesys 2.3
    Zitieren Zitieren Zahl aus String extrahieren  

  2. #2
    Registriert seit
    24.02.2009
    Beiträge
    1.244
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Code:
    Integer := STRING_TO_INT(String);
    Wenn der String einen Integerwert darstellt, wird dieser umgewandelt. Ist der String kein gültiger Integerwert, dann kommt 0 bei der Umwandlung raus.

  3. #3
    Registriert seit
    14.06.2012
    Beiträge
    53
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Die Funktion wird nicht erkannt.
    Bzw ich bekomme die Meldung: "Variable STRING_TO_INT nicht deklariert".

    Wie gesagt Codesys 2.3

  4. #4
    Registriert seit
    24.02.2009
    Beiträge
    1.244
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Codesys 2.3 sollte das eigentlich können.

  5. #5
    Registriert seit
    14.06.2012
    Beiträge
    53
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Gut, ich sollte genau sein und sagen, dass es Grips_cp ist

  6. #6
    Registriert seit
    14.06.2012
    Beiträge
    53
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich konnte jetzt die Funktion STRING_TO_DINT einbinden.

    Code:
    (*Variablen*)
    Input: STRING(40);
    strj: STRING;
    pj : POINTER TO BYTE;
    dnj: DINT;
    j: INT;
    
    (*Programm*)
    strj:= MID(Input, 2,1);
    pj := ADR(strj);
    dnj :=  STRING_TO_DINT(pj);
    j   := DINT_TO_INT(dnj);
    Leider liefert bereits STRING_TO_DINT nur 0

  7. #7
    Registriert seit
    24.02.2009
    Beiträge
    1.244
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Du musst STRING_TO_DINT dann auch einen String als Eingangswert mitgeben und keinen Pointer .....

    Code:
    (*Variablen*) 
    Input: STRING(40); 
    strj: STRING; 
    dnj: DINT; 
    j: INT;  
    (*Programm*) 
    strj:= MID(Input, 2,1); 
    dnj :=  STRING_TO_DINT(strj);
     j   := DINT_TO_INT(dnj);
    Geändert von MasterOhh (12.06.2013 um 14:29 Uhr)

  8. #8
    Registriert seit
    14.06.2012
    Beiträge
    53
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Leider nicht. Der Baustein verlangt Adresse auf String.

    Code:
    FUNCTION STRING_TO_DINT : DINT
    VAR_INPUT
        psz1  :  DWORD;    (* Stringadresse *)
    END_VAR
    VAR
    END_VAR
    Ach ja, hatte ich oben im Code vergessen, pj als Pointer to DWORD oder String verändert leider auch nichts.

  9. #9
    Registriert seit
    24.02.2009
    Beiträge
    1.244
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Na dann deklariere pj mal als Pointer To String. Evtl. musst du noch die Länge des Strings angeben.
    Code:
    pj : POINTER TO STRING;
    oder
    pj : POINTER TO STRING(2);
    Geändert von MasterOhh (12.06.2013 um 16:26 Uhr)

  10. #10
    Registriert seit
    11.12.2009
    Beiträge
    2.120
    Danke
    389
    Erhielt 390 Danke für 271 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ich glaube bei Codesys heisst der Spass STR_TO_DINT

    Grüße

    Marcel

Ähnliche Themen

  1. Aus Hex Zahl wieder Bitmuster machen
    Von Deimos0815 im Forum Simatic
    Antworten: 17
    Letzter Beitrag: 17.08.2011, 10:34
  2. Antworten: 6
    Letzter Beitrag: 27.12.2010, 11:17
  3. DB aus einer Zahl aufrufen !
    Von scrabble im Forum Programmierstrategien
    Antworten: 5
    Letzter Beitrag: 02.07.2008, 09:51
  4. Zahl aus Bildfenstertitel auslesen
    Von Bender25 im Forum HMI
    Antworten: 14
    Letzter Beitrag: 04.02.2008, 14:34
  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
  •