0

![]() |
![]() |
Senior |
Buenas gente ....
Empece instalando wampserver para trabajar con el php haber como era el tema...
Y comence a leer un poco de php y el ejemplo que habia, resulta que hice una pruebas con un archivo de similares caracteristicas al del ejemplo "granos.dat" pero creado con pwcobol version 5 ,
lo que hace la rutina es buscar por indice o variable llamada $clave al principio todo bien encontraba el registro , resulta que a medida que hacia diferentes busquedas de acuerdo al indice del registro aumentaba su valor me daba como que el registro no existia.....
Jorgeanna me podrias mirar el codigo que puse haber en donde esta el problema
PHP Código:
<HTML> <HEAD> <TITLE> Pruebas en PHP </TITLE> <LINK REL="stylesheet" TYPE="text/css" HREF="estilo.css"> </HEAD> <BODY> <H1>lectura de archivo cobol</H1> <form method='post' > <p><input name='numero' type='text' /></p> <p><input type='submit' value='enviar'></p> </form> <?php require("RmFile.php"); require("wenteje.php"); // $datos= "Datos"; // $clave="0001"; $clave = $_POST['numero']; //------------------------WEMAES.DAT-------------------- $iFile = new RmFile("RUBROS.DNX",wenteje::lectura(),"."); // muestra un determinado registro if ($iFile->find($clave,0)){ // var_dump($reg); echo "-------------lo encontro..................."; // if ($reg["wmid"]->Value == "10"){ }else{ echo "no en el next"; } }else{ echo "no en el find"; } echo "---------------------------------- MUESTRA TODO EL REGISTRO --------------------"; // muestra todo el registro completo if ($iFile->find($clave,0)){ echo "----------------------------------"; //endwhile; } ?> </BODY> </HTML>
![]() |
![]() |
Acabo de llegar... |
Para mejor respuesta a tu pregunta, subi un archivo con un ejemplo mas didactico de como se puede utilizar la rutina en php para leer archivos cobol desde la web sin pasar los datos a texto y luego leerlo en mysql. LO UNICO QUE HAY QUE HACER ES LEER Y MOSTRAR LOS RESULTADOS.
Quiero dejar aclarado que no soy el autor de la libreria, me la suministro gentilmente el Sr. JOSE KOBER y ademas me ayudo a ponerla en practica.
Oportunamente vi que la solicitaba Fito y se la envie con la observacion de que si la compartiera hiciera mencion a su creador, pero bueno la publico y ni siquiera dijo recordar quien se la habia enviado, por eso pido por favor demos el credito a quien desinteresadamente suministro esta poderosa libreria.
En el comprimido van una serie de pantallas que estan corriendo en la web, con resultados extraidos directamente desde los archivos enviados por ftp, que se actualiza automaticamente al salir de la aplicacion.
Un demo que hice oportunamente para una presentacion de reconocimiento de ultrasonido podran observar en el siguiente Menu Demo USE
Por ultimo quiero decirles que el tiempo que le dediquen a su implementacion seguro estara ampliamente compensado.
![]() |
![]() |
Senior |
Muchas Gracias @Jorgeanna y tambien a el Sr JOSE KOBER , por su tiempo
seguire haciendo pruebas y subire los resultados para que otras personas puedan utilizar esta libreria para implementar en sus sistemas
![]() |
![]() |
Acabo de llegar... |
No se necesita el runtime del powerCOBOL, y segun tengo entendido es compatible con campos comp, habria que ver si la rutina esta actualizada. Aclaro que no los he utilizado.
los tipos a declarar serian I,S,C,D, no es necesario delarar la totalidad de los campos sino los que se van a utilizar su ubicacion y largo.
Pueden probar con cualquier archivo que tengan, con solo hacer muy pocos cambios al ejemplo enviado pueden ver los resultados inmediatamente
Tengan en cuenta que si lo suben en un servidor web, mantengan los nombres de archivo en minusculas, ya que lo que anda en local cuando se sube a la web no anda y este fue uno de mis primeros dolores de cabeza.
Para quien tenga alguna duda, se puede hacer de todo menos grabar, el resto funciona de maravilla y por eso digo que depende de las ganas de aprender a utilizar esta herramienta, que hace tiempo esta en el foro y nadie le metio mano.
Saludos y suerte.
![]() |
![]() |
Senior |
Ejemplo de la rutina php con archivos indexados en pwc 5
La rutina muestra los archivos rapidamente , tiene problema con campos con signo
Y he tenido problemas para poder leer un registro en particular esta detallado en el index.php
en el adjunto van dos archivos de cobol y un print-screen del listado de rubros en pwc
Saludos
![]() |
![]() |
Acabo de llegar... |
1. La rutina no tiene problemas. El problema consiste en que declaras un campo numerico como string. Cambia 'S' por 'I' y te va andar, luego formatearas el resultado de salida, tambien podes probar con campos tipo 'E' y 'D' -> 2 decimal.
Los inconvenientes fueron sorteados solamente con cambiar el tipo de dato de la variable y paso andar todo como estaba previsto.
Por mi experiencia, los problemas que se presentas es por desconocimiento del usuario y no de la rutina.
Podes ver el listado enviado en el zip en la siguiente direccion web que es donde hice la prueba ya que hoy domingo no accedo a mi oficina:
http://veterinariatejedo.com.ar/prueba/index.php
se le agrego un css para ver mejor la tabla.
Suerte!
![]() |
![]() |
Senior |
@Jorgeanna, Primero antes que todo gracias por contestar un dia domingo ,
Realice los cambios de que me marcaste (cambie la variable string "S" POR "I" integer) y ahora me muestra el listado y el error que tenia para buscar algun registro en particular no lo estaba poniendo entre comillas a la variable de busqueda y ahora me encuentra el registro.
Con respecto al comentario que pruebe de poner campos tipo 'E' y 'D' -> 2 decimal lo hice pero me da error y estuve mirando la funcion seteo campos y no tiene en el case el tipo "E"
y si le coloco "D" me un error Notice: Undefined property: stdClass::$decimal in C:\wamp64\www\php\RmFile.php on line 672Esta es la linea 672 return (float) substr($a,0,strlen($a)- $v->decimal).",".substr($a ,($v->decimal * - 1));PHP Código:
class fd_rubros{ $fd_rubros["rubacumulado"] = (Object) array ("desde" => 45 , "cant" => 11 , "tipo"=>"D" , "decimal"=>2); return $fd_rubros; } }
Funcio Seteo CamposPHP Código:
protected function SeteoCampos($mBuff,$v){ switch ($v->tipo) { case "I": break; case "S": break; case "D": // return NULL; break; } return NULL; }
Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)
Marcadores