Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Micro Focus COBOL RM/COBOL
RM/COBOL IDE y Compilador RM/COBOL
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Compilador] MENU - cambiar las fuentes tamaño... Joseg PowerCOBOL (ActiveX, v4 - v11) 5 28 de agosto de 2023 22:21
Ajedrez de las 8 damas en cobol hasamin Presentación 1 2 de mayo de 2021 21:04
Código Cobol - mayúsculas/minúsculas Breew COBOL - General 9 9 de abril de 2020 09:20
[Sintaxis] Rutina de filtrado de palabras Gatomalo RM/COBOL 4 10 de marzo de 2017 09:09
Las NORMAS del Foro Kuk Funcionamiento del Foro 0 24 de noviembre de 2015 13:28

Respuesta

  #1
Antiguo 16 de abril de 2015, 22:56
Gatomalo
Forero
Última Actividad 01.07.2020 18:41
Posts Posts: 58
Likes enviados Enviados: 6
Likes recibidos Recibidos: 2
Predeterminado Mayusculas en las primeras palabras
0 Inactivo Inactivo

Nesecito poder hacer una rutina donde ingrese "juan jose del carpio sanchez" y me devuelva
"Juan Jose Del Carpio Sanchez"
Gatomalo is offline   Responder Con Cita
  #2
Antiguo 17 de abril de 2015, 09:01
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

gatomalo, aqui tienes un codigo COBOL normal y corriente que funcionaria en cualquier compilador:

Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01  MI-CAMPO           PIC X(100).
  3.  
  4.  PROCEDURE DIVISION.
  5.      
  6.      MOVE 1 TO IDX-1
  7.      
  8.      PERFORM UNTIL IDX-1 > 100
  9.          INSPECT MI-CAMPO(IDX-1) CONVERTING                      
  10.              "abcdefghijklmnopqrstuvwxyz" TO
  11.              "ABCDEFGHIJKLMNOPQRSTUVWXYZ"  
  12.          
  13.          PERFORM UNTIL MI-CAMPO(IDX-1) = SPACES OR IDX-1 = 100
  14.              ADD 1 TO IDX-1
  15.          END-PERFORM
  16.          
  17.          ADD 1 TO IDX-1
  18.      END-PERFORM



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #3
Antiguo 17 de abril de 2015, 11:44
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

Aquí tienes otro, el de Kuk no lo he probado, por lo que no sé si tiene en cuenta el que haya más de 1 espacio entre dos palabras, en éste sí. Como el de Kuk, funciona perfectamente con cualquier COBOL.

Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01  TT1.
  3.       03  T1                        PIC X OCCURS 100.
  4.  01  I                               PIC 999 COMP-3.
  5.  01  II                              PIC 999 COMP-3.
  6.  01  III                             PIC 999 COMP-3.
  7.  PROCEDURE       DIVISION.
  8.  
  9.      MOVE tu_variable TO TT1.
  10.      
  11.      PERFORM VARYING I FROM 100 BY -1
  12.              UNTIL I = 1 OR T1 (I) NOT = SPACES
  13.                    CONTINUE
  14.      END-PERFORM.
  15.      
  16.      MOVE 0 TO II III.
  17.      
  18.      PERFORM VARYING II FROM 1 BY 1 UNTIL II > I OR II = 100
  19.              IF T1 (II) = SPACES
  20.                 COMPUTE III = II + 1
  21.                         IF T1 (III) NOT = SPACES
  22.                            INSPECT T1 (III) CONVERTING                      
  23.                                    "abcdefghijklmnñopqrstuvwxyz" TO
  24.                                    "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ"
  25.                         END-IF
  26.              END-IF
  27.      END-PERFORM.

Un saludo.-
Josber is offline   Responder Con Cita
  #4
Antiguo 17 de abril de 2015, 13:29
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Josber, el mio no lo tiene en cuenta. Habria que meterle otro bucle por medio, y asi lo tiene en cuenta:

Código COBOL:
  1.      WORKING-STORAGE SECTION.
  2.      01  MI-CAMPO           PIC X(100).
  3.      
  4.      PROCEDURE DIVISION.
  5.          
  6.          MOVE 1 TO IDX-1
  7.          
  8.          PERFORM UNTIL IDX-1 > 100
  9.              PERFORM UNTIL MI-CAMPO(IDX-1:1) NOT = SPACES OR IDX-1 > 100
  10.                  ADD 1 TO IDX-1
  11.              END-PERFORM
  12.              
  13.              IF  IDX-1 NOT > 100
  14.                  INSPECT MI-CAMPO(IDX-1:1) CONVERTING                    
  15.                      "abcdefghijklmnopqrstuvwxyz" TO
  16.                      "ABCDEFGHIJKLMNOPQRSTUVWXYZ"  
  17.  
  18.                  PERFORM UNTIL MI-CAMPO(IDX-1:1) = SPACES OR IDX-1 > 100
  19.                      ADD 1 TO IDX-1
  20.                  END-PERFORM
  21.              END-IF
  22.          END-PERFORM



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #5
Antiguo 17 de abril de 2015, 17:45
Gatomalo
Forero
Última Actividad 01.07.2020 18:41
Posts Posts: 58
Likes enviados Enviados: 6
Likes recibidos Recibidos: 2

Josfer
En tu rutina la primera palabra no cambia ingreso "juan jose del carpio sanchez" devuelve
"juan Jose Del Carpio Sanchez" .

Kuk en tu rutina me bota error en ":" must be specified in the reference modifier .":" is assumed
Gatomalo is offline   Responder Con Cita
  #6
Antiguo 17 de abril de 2015, 20:24
Hrmcobol
Guardián del Foro
Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por implicación en la vida del Foro 
Última Actividad 01.03.2022 02:59
Posts Posts: 323
Likes enviados Enviados: 102
Likes recibidos Recibidos: 120

Hola GatoMalo, fijate que esto me parece que tambien anda en RM
Saludos
Código COBOL:
  1.        inspect CAMPO replacing all " a" by " A".
  2.        inspect CAMPO replacing all " b" by " B".
  3.        inspect CAMPO replacing all " c" by " C".
  4.        inspect CAMPO replacing all " d" by " D".
  5.        inspect CAMPO replacing all " e" by " E".
  6.        inspect CAMPO replacing all " f" by " F".

Añadido despues de 37 minutos
El ejemplo anterior no contempla la primer letra, agregar
Código COBOL:
  1. INSPECT MI-CAMPO(IDX-1) CONVERTING                    
  2.                      "abcdefghijklmnopqrstuvwxyz" TO
  3.                      "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

Añadido despues de 43 minutos
No le tengo bien la mano a esta nueva manera de comunicarme, le erre en el codigo, reemplazar MI-CAMPO(IDX-1) POR CAMPO (01:01)
Disculpen

Última edición por Hrmcobol fecha: 17 de abril de 2015 a las 21:08. Razón: Post añadido
Hrmcobol is offline   Responder Con Cita
  #7
Antiguo 17 de abril de 2015, 21:22
Gatomalo
Forero
Última Actividad 01.07.2020 18:41
Posts Posts: 58
Likes enviados Enviados: 6
Likes recibidos Recibidos: 2

Agregue estos codigo y ya funciona

Código COBOL:
  1.  03  T1                        PIC X OCCURS 100.
  2.  01  I                               PIC 999 COMP-3.
  3.  01  II                              PIC 999 COMP-3.
  4.  01  III                             PIC 999 COMP-3.
  5.  PROCEDURE       DIVISION.
  6.  
  7.      MOVE tu_variable TO TT1.
  8.      
  9.      PERFORM VARYING I FROM 100 BY -1
  10.              UNTIL I = 1 OR T1 (I) NOT = SPACES
  11.                    CONTINUE
  12.      END-PERFORM.
  13.      
  14.      MOVE 0 TO II III.
  15.      
  16.      PERFORM VARYING II FROM 1 BY 1 UNTIL II > I OR II = 100
  17.              IF T1 (II) = SPACES
  18.                 COMPUTE III = II + 1
  19.                         IF T1 (III) NOT = SPACES
  20.                            INSPECT T1 (III) CONVERTING                      
  21.                                    "abcdefghijklmnñopqrstuvwxyz" TO
  22.                                    "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ"
  23.                         END-IF
  24.              END-IF
  25.      END-PERFORM.
  26.      INSPECT T1 (1) CONVERTING  "abcdefghijklmnñopqrstuvwxyz" TO
  27.                                 "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ".
Gatomalo is offline   Responder Con Cita
  #8
Antiguo 18 de abril de 2015, 00:31
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Citación del post de gatomalo Ver Mensaje
Kuk en tu rutina me bota error en ":" must be specified in the reference modifier .":" is assumed
Ya lo he corregido, se me habia olvidado meter el ":1"



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:06.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.