Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Cocina Casera Cocina PowerCOBOL
Cocina PowerCOBOL Rutinas y ejemplos codificados por nuestros foreros.
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Llamada a Advapi32.lib Josber PowerCOBOL y WinAPI 24 24 de octubre de 2022 09:58
[Sintaxis] Mostrar un fichero Word Begoguay PowerCOBOL (ActiveX, v4 - v11) 1 20 de noviembre de 2021 23:13
Tono de llamada en Android bellacampen Charladero - espacio libre 4 13 de noviembre de 2018 10:17
[Sintaxis] Abrir documento Word Roger PowerCOBOL (ActiveX, v4 - v11) 4 20 de septiembre de 2016 00:21
[Duda] Insertar imagen en documento Word Xavier PowerCOBOL (ActiveX, v4 - v11) 7 2 de febrero de 2016 23:15

Respuesta
 
Herramientas

  #1
Antiguo 12 de marzo de 2015, 00:54
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224
Guiño Llamada a SpellCheck de Word (correc. ortográfico)
3 Inactivo Inactivo

Exemplo de como chamar o SpellCheck do Word para verificar texto numa CMtext1 de Cobol.
É necessário ter o MS Office instalado com correção actuvada.

Código COBOL:
  1.  @OPTIONS NOALPHA                                                                                            
  2.  IDENTIFICATION DIVISION.                                                                                    
  3.  PROGRAM-ID.   CHECKSPELLING.                                                                                
  4.  ENVIRONMENT DIVISION.                                                                                      
  5.  CONFIGURATION SECTION.                                                                                      
  6.  REPOSITORY.                                                                                                
  7.         CLASS OLE     AS "*OLE"                                                                              
  8.         CLASS OLE-EX AS "*OLE-EXCEPTION".                                                                  
  9.  DATA DIVISION.                                                                                              
  10.  WORKING-STORAGE SECTION.                                                                                    
  11.  01  WORD         OBJECT REFERENCE  OLE.                                                                    
  12.  01  DOCUMENT     OBJECT REFERENCE  OLE.                                                                    
  13.  01  ACTIVEDOCUMENT OBJECT REFERENCE  OLE.                                                                  
  14.  01  LINHA        OBJECT REFERENCE  OLE.                                                                    
  15.  01  SELECTION    OBJECT REFERENCE  OLE.                                                                    
  16.  01  APPLICATION                    PIC X(20) VALUE "Word.Application".                                      
  17.  01  OLE-TRUE                       PIC 1(1)  BIT VALUE B"1".                                                
  18.  01  FILLER                         PIC 1(7)  BIT.                                                          
  19.  01  OLE-FALSE                      PIC 1(1)  BIT VALUE B"0".                                                
  20.  01  FILLER                         PIC 1(7)  BIT.                                                          
  21.  01  CRLF                           PIC X(002) VALUE X"0D0A".                                                
  22.  01  VAL                            PIC X(256).                                                              
  23.  01  S-INDEX                        PIC S9(4) COMP-5 VALUE 0.                                                
  24.  01  HWND                              BINARY-LONG.                                                          
  25.  01  WINDOWNAME                     PIC X(128) VALUE SPACE.                                                  
  26.  01  WINDOWCLASSE                   BINARY-LONG VALUE ZERO.                                                  
  27.  LINKAGE SECTION.                                                                                            
  28.  01  TEXTO                          PIC X(256).                                                              
  29.  01  CARACTERES                     PIC 9(008).                                                              
  30.  PROCEDURE DIVISION USING TEXTO CARACTERES.                                                                  
  31.  MAIN SECTION.                                                                                              
  32.  MAIN-00.                                                                                                    
  33.      MOVE 1 TO CARACTERES.                                                                                  
  34.      IF TEXTO = SPACE GO TO MAIN-99.                                                                        
  35.      INVOKE OLE "CREATE-OBJECT" USING APPLICATION RETURNING WORD.                                            
  36.      INVOKE WORD  "SET-VISIBLE"  USING OLE-FALSE.                                                            
  37.      INVOKE WORD "GET-DOCUMENTS"       RETURNING DOCUMENT.                                                  
  38.      INVOKE DOCUMENT "ADD"             RETURNING ACTIVEDOCUMENT.                                            
  39.      INVOKE WORD "GET-SELECTION" RETURNING LINHA.                                                            
  40. *                                                                                                            
  41.      MOVE TEXTO TO VAL.                                                                                      
  42.      INVOKE LINHA "TYPETEXT" USING VAL.                                                                      
  43. *                                                                                                            
  44.      INVOKE LINHA "WholeStory" RETURNING SELECTION.                                                          
  45.      INVOKE WORD  "SET-VISIBLE"  USING OLE-TRUE.                                                            
  46. *    INVOKE LINHA     "WholeStory" RETURNING SELECTION.                                                      
  47. *    INVOKE LINHA     "COPY" RETURNING VAL.                                                                  
  48.                                                                                                            
  49. *    MOVE "Ortografia: Português (Portugal)"   TO WINDOWNAME.                                                
  50.      MOVE "Documento1 - Word"                  TO WINDOWNAME.                                                
  51.      MOVE X"00"        TO WINDOWNAME(18:1).                                                                  
  52. *                                                                                                            
  53.      CALL "FindWindowA" WITH STDCALL USING                                                                  
  54.                            BY VALUE WINDOWCLASSE                                                            
  55.                            BY REFERENCE WINDOWNAME                                                          
  56.                         RETURNING HWND.                                                                      
  57.      IF HWND > 0 THEN                                                                                        
  58.           CALL "SetForegroundWindow" WITH STDCALL USING                                                      
  59.                            BY VALUE HWND.                                                                    
  60. *                                                                                                            
  61.      INVOKE ACTIVEDOCUMENT "CheckSpelling" RETURNING VAL.                                                    
  62. *                                                                                                            
  63.      INVOKE LINHA "GET-TEXT" RETURNING VAL.                                                                  
  64.      INSPECT VAL REPLACING ALL  X"0D" BY SPACE.                                                              
  65.      INSPECT VAL REPLACING ALL  X"0A" BY SPACE.                                                              
  66.      MOVE 256 TO CARACTERES.                                                                                
  67.  MAIN-50.                                                                                                    
  68.      IF VAL(CARACTERES:1) = SPACE GO TO MAIN-60.                                                            
  69.      GO TO MAIN-80.                                                                                          
  70.  MAIN-60.                                                                                                    
  71.      IF CARACTERES NOT = 1 SUBTRACT 1 FROM CARACTERES GO TO MAIN-50.                                        
  72.  MAIN-80.                                                                                                    
  73.      ADD 1 TO CARACTERES.                                                                                    
  74.      MOVE    VAL TO TEXTO.                                                                                  
  75.        INVOKE ACTIVEDOCUMENT "CLOSE" USING S-INDEX.                                                            
  76.      INVOKE WORD  "QUIT".                                                                                    
  77.      SET LINHA    TO NULL.                                                                                  
  78.      SET DOCUMENT TO NULL.                                                                                  
  79.      SET ACTIVEDOCUMENT TO NULL.                                                                            
  80.        SET WORD     TO NULL.                                                                                  
  81.  MAIN-99.                                                                                                    
  82.  END PROGRAM CHECKSPELLING.                                                                                  

PS: Deve ser alterado o nome da form do Word para o caso particular (Documento1 - Word).
Se não abre mas fica por tras da nossa form.

Espero que seja útil a alguém.

Saludos Rui Pinto
Rapinto is offline   Responder Con Cita
Respuesta



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 03:09.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.