Sab Sep 09, 2006 6:39 am
|
 |
danimera
Perlero Adicto

|
Registrado: 23 Jun 2005
Mensajes: 239
Ubicación: Colombia
|
|
| Modulo Kreader Ver 1 --> |
|
|
Bueno esta es un Pequeño testimonio para todas las personas que inician en Perl,
Esto es lo que logre no es la Gran cosa para expertos, pero me ha facilita mucho las aplicaciones donde maneje ficheros y tenga que usar campos, puedo manipular ficheros fácilmente, y me ahorro tener que instalar y crear esa base de datos que para cositas pequeñas yo creo que es perder el tiempo.
Agradecimientos a:
Explorer: Siempre me responde todas mis dudas, es mas rápido que buscar en un libro de Perl o Internet. ^^
MonoSwin: Ese es mi master, a ese le debo que no halla renunciado a Perl, espero pronto superarlo ^^.
Uriel: Ese tutorial de ficheros base de datos me sirvió mucho, aunque me base en el, optimice algunas funciones y anexe la función para Editar o modificar campos que no la vi.
Aquí dejo el modulo Kreader Version 1, las funciones que tiene y lo poderoso y útil que puede ser en ciertos momentos, hasta que me enseñen a hacer POD:
http://www.mccreaciones.com/kreader.pm
makefile(“fichero.dat”, @campos) # Crea un fichero con ese nombre y crea los campos, automáticamente crea el campo ID, asi que no es necesario crearlo.
Swrite(“fichero.dat”,@campos) # Agrega campos auto incrementando el ID, los campos deben estar en orden como se ingreso en el makefile.
Fwrite(“fichero.dat”,%campos) # mas poderoso que el swrite, permite insertar registros por un hash, ingresa el valor donde el campo sea igual al nombre de la llave, En caso de que halla campos distintos a los campos del fichero, saldrá una advertencia, de lo contrario devolverá 1.
Pedit(“fichero.dat”,’$id’,%campos_valores) # lo que hace es editar el registro id los valores de los campos dados en el hash %campo_valores, %campos_valores={‘campo1’,’valor1’,’campo2’,’valor2’}; . Si el id indicado no existe se agregara uno nuevo # Esto puede hacer que cambie la consecutividad del id del fichero
Cfind($file, $campo, $valor) # busca un registro dentro de $file, donde el $campo sea igual al $valor esta búsqueda quedara dentro de un hash %busqueda = Cfind($file, $campo, $valor)
Multifind($file) # Aun no le he implementado es para hacer multiples busquedas, podria ser edades mayores a 18 o nacidos en Argentina cosas asi.
Kread($file,’orden’,’cantidad_registros’) # deja en un array la cantidad de registros que indiquemos en el orden deseado (1=desde el inicio, 0=desde el final)y la cantidad que le digamos también, si no ingresamos cantidad de registros nos devolvera 10 por defecto
Pero estos registros quedan de la forma : 02||juliana||perez||afiliada||1983
El primer campo es el ID, luego por una función split se pueden desplegar los campos.
Rdelete($fichero,’$id’)# no creo que tenga que explicar, borrar el registro id pero aun me falta algo para que funcione.
Este es el modulo que realice espero someterlo a Aprobación a ve que tal les parece o que sugerencia tienen.
Recuerden que soy una persona que esta avanzando con Perl estoy en lo pasitos de avanzar solamente. Por eso era mi preguntadera de tantas cosas. Pronto Subiré la versión con algunos ajustes. ^^ Pero no molestar tanto[url][/url] |
|
|
|

Sab Sep 09, 2006 7:20 pm
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|

Dom Sep 10, 2006 9:01 am
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
Hola:
Le dí una checada por encima y si ví algunos problemas o bugs bastante importantes:
1. En tu sistema es imposible tener un campo multiline, esto es muy limitante y más porque no sabes que tipo de información los usuarios querrán guardar.
2. Si alguien guarda en su campos los caracteres que estás usando como separador ||, todo el registro ya no servirá y regresará datos inutilizados.
3. ¿Qué sucede si al llamar swrite() envías un array con menos campos o más campos de los que inicialisaste?
4. La función rdelete() es sumamente redundante pues abre el archivo y vuelve a crearlo con los mismos datos.
En lo personal no soy nada fan de reinventar la rueda o el hilo negro. Si ya existen módulos que hacen lo que buscas y de una manera más eficiente y con mucho más herramientas, no veo el sentido de crear un módulo similar, a menos que des opciones que no encontrarás en ninguno de los otros módulos, o que hagas alguno que complemente de una u otra manera.
Ahora, también puedes crear alguno como un ejercicio de práctica, pero en ese caso lo que te recomiendo es que cheques los módulos que existen y veas la manera en que atacaron el problema, te aseguro que aprenderás mucho de ello, y quien sabe, igual y encuentres una manera más eficiente de lograr solucionar el problema.
Saludos |
|

Dom Sep 10, 2006 2:19 pm
|
 |
danimera
Perlero Adicto

|
Registrado: 23 Jun 2005
Mensajes: 239
Ubicación: Colombia
|
|
|
|
|
Uriel ^^, se trataba de Un ejercicio de alguien quien esta aprendiendo Perl, No me des tan duro por fa,
Solo lo quize hacer asi, por que vi algo que podia necesitar, ya le corregi ciertas cosas aun asi, Estoy es aprendiendo. Claro que me gustaria ver alguno de esos modulos que dices, ha la idea mia tambien con esto podria ser.
Que la gente pueda iniciar en Perl y no salga huyendo como he visto a muchos que dicen que es muy complicado, Ademas me base en tu ejemplo, por que no conozco muchos modulos ni nada eso aun,, ^^
Y adoro trabajar con ficheros,, Pero lo mejor es que aprenda sobre ellos creo yo. |
|

Dom Sep 10, 2006 4:41 pm
|
 |
kidd
Creador de Perl en Español

|
Registrado: 15 Oct 2003
Mensajes: 1389
Ubicación: México
|
|
|
|
|
| danimera escribió: | | Uriel ^^, se trataba de Un ejercicio de alguien quien esta aprendiendo Perl, No me des tan duro por fa, |
Mi intención en ningun momento fue atacarte ni mucho menos, lo que sucede es que el camino que estás llevando yo ya lo tomé, y me arrepentí mucho de ello, pues agarré malas mañas y la curva de aprendizaje fue muy larga.
Es por ello mis recomendaciones, pues al final de día sacarás mucho más provecho.
Un saludo |
|
Dom Sep 10, 2006 9:24 pm
|
 |
danimera
Perlero Adicto

|
Registrado: 23 Jun 2005
Mensajes: 239
Ubicación: Colombia
|
|
|
|
|
mmmmmmmmmm
Ultima edición por danimera el Dom Sep 10, 2006 9:27 pm, editado 1 vez |
|
Dom Sep 10, 2006 9:25 pm
|
 |
danimera
Perlero Adicto

|
Registrado: 23 Jun 2005
Mensajes: 239
Ubicación: Colombia
|
|
|
|
|
A que te refieres con:
| Cita: | | lo que sucede es que el camino que estás llevando yo ya lo tomé, y me arrepentí mucho de ello, pues agarré malas mañas y la curva de aprendizaje fue muy larga |
Entonces dime como aprendo Bien Perl, pense que con ejemplos practicos como esto podria,, ^^ por fa me interesa saber pues quiero aprender perl y ser muy bueno en el manejo de el |
|

Lun Sep 11, 2006 5:08 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
|
Yo aprendí un 30% leyendo libros, revistas y artículos; un 20% leyendo código de otras personas, otro 25% navegar por CPAN y otro 25% escribiendo mi propio código.
De hecho, yo creo que todavía no sé Perl (en parte porque es amplísimo).
A mis alumnos les digo que la curva de aprendizaje de este lenguaje es un poco extraña: al principio se aprenden rápidamente las bases, con lo que es fácil empezar a escribir código y resolver el 90% de los problemas de la mayoría de la gente; luego, viene un largo periodo en que la curva se aplana mucho y da la sensación de que no se aprende nada nuevo; luego sigue un periodo corto en que se descubren nuevos paradigmas (programación orientada a objetos, clousures, currying, herencia, filtros, dispatching, iteradores, etc. etc.) y la curva vuelve a subir; finálmente, hay otro periodo en que llegas a la culminación (XS, Inline, producción de módulos, etc.). Aquí llegan muy pocos.
Hay también un momento, normalmente al principio del tercer periodo, donde por fin se entiende la forma y filosofía de entender este lenguaje. Es la iluminación. Lo sabrás porque a partir de ese momento empiezas a pensar en la solución a los problemas exclusivamente en Perl porque sabes que se puede hacer y, además, la escritura de los programas es lo más cercana al lenguaje natural. Recuerda que Larry Wall tiene formación de lingüista. Para mi ese punto es el de no retorno.  |
|

Lun Sep 11, 2006 8:25 am
|
 |
danimera
Perlero Adicto

|
Registrado: 23 Jun 2005
Mensajes: 239
Ubicación: Colombia
|
|
|
|
|
how, me dejas impresionado Explorer, Lastimosamente aca en Colombia no hay libros de eso y no se puede ni comprar por internet $$$$$$$$$$$$..
Pero gracias veo que el recorrido es amplio pero se hacen cosas utiles en el. ^^ |
|
Lun Sep 11, 2006 8:59 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
|
|
|
|
Powered by phpBB © 2001, 2005 phpBB Group
|