Vai al contenuto

Come eseguire un concatenamento di stringhe

Home Forum Programmazione IEC 61131 (LogicLab) Come eseguire un concatenamento di stringhe

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Autore
    Post
  • #35031
    Anonimo
    Inattivo

    Volevo avere un aiuto su come concatenare 2 stringhe del tipo a=a+b. Ho visto che il segno + da un errore in fase di compilazione.

    #36788
    Sergio Bertana
    Amministratore del forum

    Lo standard IEC61131 per il concatenamento di stringhe prevede l’utilizzo di una funzione CONCAT. Passando alla funzione due stringhe essa ritorna una terza stringa risultato della concatenazione della prima stringa con la seconda.

    Tra i miei programmi tempo fà ho realizzato una funzione di concatenamento simile alla strcat del linguaggio C, alla stringa di destinazione viene concatenata la stringa sorgente. Riporto di seguito il listato della funzione ed allego un programma di test per il download.

    FUNCTION eStrCat : BOOL

        VAR_INPUT
        Dest : @USINT; { DE:”Destination pointer” }
        Source : @USINT; { DE:”Source pointer” }
        END_VAR

        VAR
        Len : INT; { DE:”String length” }
        i : INT;  { DE:”Auxiliary counter” }
        END_VAR

        { CODE:ST }(* FUNZIONE “eStrCat(@USINT Dest, @USINT Source)” *)

        Dest:=Dest+eLEN(Dest); (* Destination pointer *)
        Len:=eLEN(Source); (* String length *)

        FOR i:=0 TO Len DO
            @Dest:=@Source;
            Source:=Source+1; (* Source pointer *)
            Dest:=Dest+1; (* Destination pointer *)
        END_FOR;

        eStrCat:=TRUE;
    END_FUNCTION

Stai visualizzando 2 post - dal 1 a 2 (di 2 totali)
  • Devi essere connesso per rispondere a questo topic.