contar caracteres en variable

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Angela27
    Senior Member
    • ene
    • 121

    #1

    contar caracteres en variable

    Buenos días a todos,
    Necesito contar los caractares de una variable, para despùes, si no tiene una
    cantidad determinada rellenar con ceros a la izquierda.
    por ejemplo: variable(10) type c. tiene '1234' y yo necesito que si es menor a 6, como es este caso, que son 4 caracteres, que se quede así '001234'
    Me dijeron de usar contador = strlen(variable)
    pero no me funciona.
    Por fi... alguien me puede ayudar?

    Muchas graciassssss
  • mysmb2
    Senior Member
    • ene
    • 406

    #2
    Hola Angela, usando el contador de esta manera funciona.
    Saludos.

    Código:
    data variable(10) TYPE c VALUE '1234'.
    data contador TYPE i.
    contador = strlen( variable ).
    SHIFT variable RIGHT DELETING TRAILING space.
    OVERLAY variable+4(6) WITH '000000' ONLY space.
    WRITE variable.
    Sebastián Chiavia
    http://www.programacionabap.com.ar

    Comentario

    • kilysap
      Junior Member
      • abr
      • 3

      #3
      Hola Angela, te paso un ejemplo, no se si tus campos son tipo i. . . pero strln es para caracters

      data: variable(6) TYPE c,
      tamano(2) TYPE c,
      aux(6) TYPE c.

      variable = '1234'.

      tamano = STRLEN( variable ).

      IF tamano le 5 .
      UNPACK variable to aux.
      ENDIF.

      WRITE aux.

      Espero te ayude

      Comentario

      • Mauricio Hidalgo
        Senior Member
        • may
        • 481

        #4
        Estimada lo más simple es que:

        en lugar de declarar su variable tipo C:
        data variable(10) type c

        lo haga como tipo N, es decir :
        data variable(10) type N

        asi no importa que cantidad de digitos ingreses, siempre te quedara por la izquierda los ceros hasta completar el largo de la variable.

        Saludos
        Editado por última vez por Mauricio Hidalgo; 12/06/2012, 18:40:22.

        Comentario

        • Angela27
          Senior Member
          • ene
          • 121

          #5
          Muchas gracias a todos,
          a si da gusto... tener compis así

          Comentario

          • amiretti
            Junior Member
            • dic
            • 4

            #6
            Conversion_exit_alpha_input

            Existe una función standard para esto, es bien genérica y sirve para muchos casos...

            DATA: lv_entrada type n.
            DATA: lv_salida(5) type n.

            ventrada = 10.

            Call function 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
            input = lv_entrada
            IMPORTING
            output = lv_salida.

            * La variable lv_salida quedaría: 00010. Esta variable la podes declarar del tipo de dato que quieras, por lo que veo estas trabajando con algún tipo de documento, podes asignarle ese tipo...


            Tambien existe una función para quitar los ceros, te comento por si alguna vez te hace falta... es la CONVERSION_EXIT_ALPHA_OUTPUT y trabaja de igual manera...

            Espero te sirva! Saludos!

            Comentario

            • Onisap
              Junior Member
              • sep
              • 1

              #7
              Facil y rapido.

              Para esto no hace falta contar los caracteres de la variable.

              Este código deja los espacios a la izquierda y los cambia por ceros.

              SHIFT variable RIGHT DELETING TRAILING space.
              TRANSLATE variable using ' 0'.

              Comentario

              Trabajando...