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

Ergebnis 1 bis 6 von 6

Thema: String_to_ASCII

  1. #1
    Registriert seit
    27.07.2007
    Ort
    Leipzig
    Beiträge
    239
    Danke
    25
    Erhielt 47 Danke für 43 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich suche eine Funktion mit der ich den ASCII Code eines String Zeichens bekomme.

    Wie kann man das machen?

    gruß bonatus
    Zitieren Zitieren String_to_ASCII  

  2. #2
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Es gibt sicher verschiedene Wege einer davon wäre sich eine Funktion zuschreiben die wie folgt aussieht:

    Code:
    FUNCTION STRING_TO_ASCII : BYTE
    VAR_INPUT
      IN : STRING;
    END_VAR
    VAR
      pSTRING : POINTER TO STRING;
      pBYTE   : POINTER TO BYTE;
    END_VAR
    Code:
    pSTRING := ADR(IN);
    pBYTE := pSTRING;
    STRING_TO_ASCII := pBYTE^;
    Der passende Aufruf wäre dann:
    Code:
    myBYTE := STRING_TO_ASCII(TestString);
    If you open your Mind too much, your Brain will fall out.

  3. Folgender Benutzer sagt Danke zu zotos für den nützlichen Beitrag:

    bonatus (05.06.2009)

  4. #3
    bonatus ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    27.07.2007
    Ort
    Leipzig
    Beiträge
    239
    Danke
    25
    Erhielt 47 Danke für 43 Beiträge

    Standard

    Danke für deine Hilfe.
    Das mit Zeug mit den Zeigern ist mir noch nicht so klar, aber wird das sicher mal.

    gruß bonatus

  5. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.728
    Danke
    398
    Erhielt 2.406 Danke für 2.002 Beiträge

    Standard

    Hallo,
    es gibt (zumindestens bei SCL) auch noch die Möglichkeit auf den String eine AT-Sicht auf ein ARRAY_OF_Byte zu erzeugen. Vielleicht liest du dir mal die Hilfe zu dem Befehl durch.
    In der Realisierung sähe das dann so aus :
    Code:
    Deklaration :
    myString : STRING [40] ;
    a_myString AT myString : Array [-1 ..40] of byte ;
     
    Code :
    myAscii := a_my_String [12] ; // Einlesen des 12. Zeichens im String
    Gruß
    LL

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

    bonatus (05.06.2009)

  7. #5
    bonatus ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    27.07.2007
    Ort
    Leipzig
    Beiträge
    239
    Danke
    25
    Erhielt 47 Danke für 43 Beiträge

    Standard

    Hallo,

    danke erstmal, ich habe es in TwinCat versucht aber leider kann ich diese Funktion so nicht anwenden (Siemens SCL ist halt nicht gleich TwinCat ST).

    gruß bonatus

  8. #6
    Registriert seit
    05.06.2009
    Beiträge
    24
    Danke
    0
    Erhielt 14 Danke für 14 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Es gibt in TwinCAT in der PC-Lib "TcSystem" die Funktion "F_ToASC", die von einem Zeichen den Ascii-Code rausgibt. Geht aber nur Zeichenweise. Doku siehe http://infosys.beckhoff.com/content/...ys_F_ToASC.htm

    Ein ganzen String kann man am einfachsten mit dem MEMCPY-Befehl machen :

    VAR CONSTANT
    CONST_STRING_LENGTH : INT := 9;
    END_VAR
    VAR
    sTestChr : STRING(CONST_STRING_LENGTH);
    nTestAsc : ARRAY[0..CONST_STRING_LENGTH] OF BYTE;
    nResult : UDINT;
    END_VAR


    nResult := MEMCPY(ADR(nTestAsc), ADR(sTestChr), CONST_STRING_LENGTH);

    Gruß,
    DirkS

  9. Folgender Benutzer sagt Danke zu DirkS1017 für den nützlichen Beitrag:

    bonatus (05.06.2009)

Lesezeichen

Berechtigungen

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