Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Duda] como colocar ruta a la PDU jjcol Fujitsu COBOL 2 6 de septiembre de 2021 15:20
Obtener la longitud del contenido de una variable Kuk Cocina Casera 12 19 de marzo de 2021 19:49
[Sintaxis] como insertar una imagen jpg en una impresion mhnico RM/COBOL 1 1 de marzo de 2021 17:32
[Sintaxis] Obtener la dirección de una función PowerCOBOL Kuk PowerCOBOL v3 (V3L10, Win32) 5 11 de octubre de 2018 21:06
[PowerCOBOL + WinAPI] Obtener la version de SO Windows Kuk Cocina PowerCOBOL 3 6 de junio de 2018 05:22

Respuesta
 
Herramientas

  #1
Antiguo 11 de abril de 2015, 01:49
Roger
Forero Activo
Última Actividad 04.02.2021 13:03
Posts Posts: 236
Likes enviados Enviados: 26
Likes recibidos Recibidos: 60
Timido Obtener una ruta en Red
0 Inactivo Inactivo

Amigos del foro
Cual es codigo para saber la ruta de red.
Deseo saber por programa que me indique cuando estoy ejecutando cual es mi ruta red
ejemplo \\Roger\d\VET-SIS\Debug\

Esto para que funcione en multiusario sin necesidad de poner la ruta en los archivo
o que sugerencia me dan.

Código COBOL:
  1. SELECT AGENDA ASSIGN TO " \\Roger\d\VET-SIS\Debug\ AGENDA.DAT" ORGANIZATION INDEXED
  2.            ACCESS MODE IS DYNAMIC
  3.            RECORD   KEY IS  AGENDA-KEY
  4.            LOCK MODE IS AUTOMATIC WITH LOCK ON RECORD
  5.              FILE STATUS IS FS-10.

esto es lo que hacia en los archivo.
Roger is offline   Responder Con Cita
  #2
Antiguo 11 de abril de 2015, 13:19
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

No sé a que te refieres exactamente, yo tengo puesto en todos los ficheros, una rutina que coge de un fichero de principal de control, la ruta de datos, y hace el montaje de la variable con el nombre del fichero + número de empresa + más la ruta de datos, todo metido en un fichero .cpy, que incluyo en el evento opened del form con un #INCLUDE

Código COBOL:
  1. 000001*        
  2. 000002* MONTAR VARIABLE DE CODIGOS de BANCOS
  3. 000003*
  4. 000010       MOVE 0 TO TAMA.
  5. 000020       MOVE TAMANO TO TAMA.
  6. 000030       INITIALIZE FILE33.
  7. 000040       MOVE RUTA TO FILE33.
  8. 000050       STRING WEMP        DELIMITED BY SIZE INTO FILE33 WITH POINTER TAMA.
  9. 000060       STRING "_0033.JBL" DELIMITED BY SIZE INTO FILE33 WITH POINTER TAMA.
  10. 000999

En RUTA, tengo definido la carpeta donde se encuentran los archivos, me da lo mismo que sea de red que local, y en TAMANO, se guarda la longitud (FUNCTION STORED-CHAR-LENGTH (RUTA)) de la variable RUTA, luego todo es cuestión de hacer el montaje, y la ruta de datos, siempre la sé porque está guardada en RUTA.

No sé si es esto lo que quieres, si no es así, explicalo de otra forma a ver por donde van los tiros.

Un saludo.-
Josber is offline   Responder Con Cita
  #3
Antiguo 11 de abril de 2015, 17:33
Roger
Forero Activo
Última Actividad 04.02.2021 13:03
Posts Posts: 236
Likes enviados Enviados: 26
Likes recibidos Recibidos: 60

Gracias por responder JOSBER
Inicialmente tengo un archivo donde pongo las rutas, datos de empresa etc
pero estos datos se ingresan por teclado, necesita algo similar al "cmfolder" donde me dice la direccion en este caso la ruta de red.

Te comento comercializo un software que lo tengo en un instalador donde automaticamente hace la instalacion del power, ocx , fonts etc. todo esto en un disco CD-R que lo compran a un distribuidor, como te daras cuenta yo no se el usuario donde lo instalara en C:, D:
por el "cmfolder" detecto la direccion y lo envio al archivo hasta ahi todo bien en monousuario
cuando esta en red esta direccion tendria que cambiar por la ruta red solo necesito detectar la ruta para incrustar en el archivo en forma automatica.
Código COBOL:
  1.            SELECT AGENDA ASSIGN TO " \\Roger\d\VET-SIS\Debug\ AGENDA.DAT" ORGANIZATION INDEXED
  2.            ACCESS MODE IS DYNAMIC
  3.            RECORD   KEY IS  AGENDA-KEY
  4.            LOCK MODE IS AUTOMATIC WITH LOCK ON RECORD
  5.              FILE STATUS IS FS-10.


en sintesis como obtengo esta ruta "\\Roger\d\VET-SIS\Debug\" algun comando.
Roger is offline   Responder Con Cita
  #4
Antiguo 11 de abril de 2015, 22:13
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Esa ruta no la puedes obtener amigo Roger, porque depende de la configuracion de la red.

Lo que debes hacer es lo que tengo hecho yo en un programa, modos de ejecucion Servidor y cliente. Luego los que se ejecutan en modo cliente, son los que deben ser "conectados" al servidor. Ahi se necesita un dialogo de seleccion de carpeta, donde se navegara hasta la ruta del servidor en red y dicha ruta se guardara en un archivio local.

La separacion de archivos local y en red se haria en 2 variables correspondientes, en GLOBAL EXTERNAL que se cargarian en el evento Opened y se compartirian en toda la aplicacion.



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 11 de abril de 2015, 22:37
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

Es más o menos lo que yo tengo KUK, un fichero donde se guarda la ruta, una variable para si es local y otra variable para si es en red. Roger, yo creo que no hay otra manera de hacerlo, a no ser que con el instalador, el usuario indique la ruta, la grabes en una clave en el registro, pero el usuario debe de indicar en el instalador la ruta tanto local como de red, y de ahí la leas con tu programa.


Un saludo.-
Josber is offline   Responder Con Cita
  #6
Antiguo 11 de abril de 2015, 23:04
Roger
Forero Activo
Última Actividad 04.02.2021 13:03
Posts Posts: 236
Likes enviados Enviados: 26
Likes recibidos Recibidos: 60

Amigos
Tengo una idea en el anterior foro vi que puedo usar las Apis de WINDOWS "GetComputerName"
y saber el nombre del equipo pero no se la sintaxis.
Ruta "\\Roger\d\VET-SIS\Debug\" donde "\\roger\" es el nombre del equipo se puede saber por cmd con el comando HOSTAME y la segunda parte "\d\VET-SIS\Debug\" lo puedo obtener por
el cmfolder que me envia "d:/VET-SIS/Debug/" reemplazo "\" por "/" y elimino ":"
luego usando String junto toda la cadena.

Si tienen los codigos de ese api me facilitan la cadena solo bastaria poner la instruccion en el opened de form y automaticamente estaria detectando la ruta red.
Roger is offline   Responder Con Cita
  #7
Antiguo 12 de abril de 2015, 00:33
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

Roger,

Não percebi bem. Mas se é a api ´GetComputerName,

Código COBOL:
  1.  @OPTIONS NOALPHA
  2. *****************************************************************
  3. *  Copyright (c) 2000 R.P.S.
  4. *
  5. *  Last Modified: 28 Jul 2000
  6. *****************************************************************
  7.  IDENTIFICATION DIVISION.
  8.  PROGRAM-ID.    MACHINE.  
  9.  AUTHOR.        Rui Pinto - Jul 2000.
  10. *-----------------------------------------------------------------
  11.  ENVIRONMENT DIVISION.
  12.  CONFIGURATION SECTION.
  13.  SPECIAL-NAMES.
  14.  INPUT-OUTPUT SECTION.
  15.  FILE-CONTROL.
  16. *-----------------------------------------------------------------
  17.  DATA DIVISION.
  18.  FILE SECTION.
  19.  WORKING-STORAGE SECTION.
  20.  01  COMPNAME                  PIC X(032)             VALUE SPACE.
  21.  01  LENCOMPNAME               PIC S9(009)    COMP-5  VALUE ZERO.
  22.  01  RESULT                    PIC S9(009)    COMP-5  VALUE ZERO.
  23.  
  24.  LINKAGE SECTION.
  25. *----------------- Parameters for CBL_ routines ------------------
  26.  01  COMPUTERNAME              PIC X(032).
  27. *--------------- End Parameters for CBL_ routines -----------------
  28.  PROCEDURE DIVISION USING COMPUTERNAME.
  29.  MAIN SECTION.
  30.  MAIN-00.
  31. *>> Initialize variables.
  32.      MOVE 32 TO LENCOMPNAME.
  33.      CALL "GetComputerNameA" WITH  STDCALL LINKAGE USING
  34.                         COMPNAME
  35.                         LENCOMPNAME
  36.                      RETURNING RESULT.
  37.      MOVE COMPNAME   TO COMPUTERNAME.
  38.  MAIN-99.
  39.  END PROGRAM MACHINE.

Saludos,
Rui Pinto
Rapinto is offline   Responder Con Cita
  #8
Antiguo 12 de abril de 2015, 01:27
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

Roger,

Fiz um pequeno OCX que podes incluir na tua aplicação.
Não testei muito bem (pode ter bugs)

Anexo um exemplo em PowerCobol9

A instrução é muito simples:

Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01    caminho           PIC X(256).
  5.  01    hwnd              PIC S9(9)  COMP-5.
  6.  PROCEDURE       DIVISION.
  7.     MOVE HWND OF POW-SELF TO HWND.
  8.     INVOKE apppath1 "AppPath" USING hwnd RETURNING caminho.
  9.  
  10.     MOVE caminho TO "CAPTION" OF CMSTATIC1.    

Experimenta e diz-me se funcionou para o que pretendias. Funciona para rede ou local.
Se tiveres dúvidas, diz-me. Dá para rede ou maquina local.

Saludos,
Rui Pintop

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  Image2.jpg
Vistas: 173
Tamaño:  17,6 KB  
Archivos Adjuntos
Tipo de Archivo: zip GetAppPath.zip (29,8 KB)Descargas: 149
Rapinto is offline   Responder Con Cita
  #9
Antiguo 12 de abril de 2015, 02:02
Roger
Forero Activo
Última Actividad 04.02.2021 13:03
Posts Posts: 236
Likes enviados Enviados: 26
Likes recibidos Recibidos: 60

Amigo RUI
Tus codigos estan buenos pero me equivoque debi poner "Gethostname"
y es lo que necesito.

Los mismos datos lo obtengo de
Código COBOL:
  1.  MOVE "path" OF CmFolder1 TO CAPTION OF CMSTATIC2.

solo me falta el nombre de la maquina.

:malo:
Roger is offline   Responder Con Cita
  #10
Antiguo 12 de abril de 2015, 11:24
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

Roger, en el mensaje que puse saber las carpetas de Windows, en el código tienes como sacar el nombre de la máquina.

Un saludo.-
Josber 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 17:15.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.