Autor
|
Tema: [Batch][Aporte] Base de datos para clientes. (Leído 5,609 veces)
|
Geormarsch
Desconectado
Mensajes: 160
|
Hola amigos gracias a esta comu pude desarrollar mi primera Base de datos en Batch...Como funciona:El batch consta en 4 opciones. las cuales te permiten realizar :
1.- Agregar Cliente 2.- Buscar dentro de la Base de datos 3.- Mostrar el contenido de la Base de datos 4.- Borrar Base de datosAl agregar un cliente se guarda en un txt llamado Cliente guardado en %Homedrive%. Bueno sin mas charla el codigotitle Base de datos Clientes color fc :menu cls echo 2.- Buscar dentro de la Base de datos echo 3.- Mostrar el contenido de la Base de datos echo 4.- Borrar Base de datos set /p o= Elija una opcion : :add cls set /p name= Nombre de cliente = set /p c= Compras Recientes = echo Cliente : %name%>>%homedrive%\clientes.txt echo Direccion : %dire%>>%homedrive%\clientes.txt echo Numero : %n%>>%homedrive%\clientes.txt echo Compras : %c%>>%homedrive%\clientes.txt echo Talla : %t%>>%homedrive%\clientes.txt echo Sexo : %s%>>%homedrive%\clientes.txt echo ------------------------------------------------- >>%homedrive%\clientes.txt echo Generado Correctamente :b cls set /p bo= Que desea buscar dentro de la Base de datos : for /f "tokens=*" %%_ in ('find " %bo%" " %homedrive%\clientes.txt" ' ) do ( echo El valor es : !valor! ) :dl cls echo Se borrara la base de datos esta seguro si/no echo Se perderan todo los datos guardados cls del /q /f %homedrive%\clientes.txt :x cls type %homedrive%\clientes.txt
Si encuentran un error o una mejora, Bienvenido sea...
|
|
|
En línea
|
"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"
|
|
|
$Edu$
Desconectado
Mensajes: 1.842
|
Yo le pondria mas "anti errores", por ejemplo cada vez q pides el valor de una variable, antes tienes que anularla asi:
Por que sino quedara con el valor que tenia antes, para entender lo que te digo, agarra tu programa sin poner esto que te digo y elegi una opcion en el menu, la que quieras; ahora cuando estes de nuevo en el menu, apreta solo Enter sin escribir nada y te llevara al mismo lugar. Y aunque sea feo y tengas que crear mas etiquetas le pondria los if not defined cuando pides los datos, para que no dejen nada en blanco. Espero haberte ayudado
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Conectado
Mensajes: 9.874
|
Cierto, usas muchas variables y conviene "resetearlas" al volver al :MENU, porque sino aunque dejes vacía alguna de las variables como talla dire y eso, se tomará la variable anterior... espero que se me entienda xD aparte de eso, dejame mejorartelo un poquito lo que pueda PD: Copia este código tal cual, para probarlo, aunque veas caracteres raros al copiar no te preocupes, en la consola salen bien las palabras con los acentos y eso Leo es un crack con el tema de trabajar sobre archivos de texto así que yo esperaría a ver si te da una solución para una mejor busqueda sobre la lista de clientes...
title Base de datos Clientes color fc If not exist " %homedrive%\clientes.txt" (echo. >" %homedrive%\clientes.txt" ) :############################################################ REM En esta parte no he correjido nada importante, solo sintaxis y gramática xD, el "ELSE" del final... REM Reseteando variables... :MENU cls echo 2.- Buscar dentro de la Base de datos echo 3.- Mostrar el contenido de la Base de datos echo 4.- Borrar Base de datos set /p o= Elija una opci¢n: :############################################################ REM Aqui nos aseguramos de que ningún campo queda vacío... :add cls echo Cliente : %name%>>%homedrive%\clientes.txt echo Direcci¢n : %dire%>>%homedrive%\clientes.txt echo N£mero : %n%>>%homedrive%\clientes.txt echo Compras : %c%>>%homedrive%\clientes.txt echo Talla : %t%>>%homedrive%\clientes.txt echo Sexo : %s%>>%homedrive%\clientes.txt echo -------------------------------------------------; >>%homedrive%\clientes.txt echo Generado Correctamente. ) :############################################################ REM no te recomiendo usar setlocal si hay productos o datos que contengan caracteres especiales como "Nike!" ...pues no los vas a encontrar xD REM en el metodo de buscqueda no he podido hacer nada mejor, habria sido fácil usando tail y txtback porque cada cliente esta separado en 7 líneas, pero bueno, no me he kerido comer más el coco :xD :b cls set /p bo=- ¨Que desea buscar dentro de la Base de datos?: find " %bo%" " %homedrive%\clientes.txt" >nul find "%bo%" "%homedrive%\clientes.txt" echo No se ha encontrado ninguna coincidencia, Intentelo de nuevo... ) :############################################################ REM Ahora el código reconoce varias respuestas (si,SI,Si,sI,sí,Sí - No,no,NO,nO) en cambio tu código solo reconocia dos (Aunque no te lo parezca así era). :dl cls echo Se borrar… la base de datos, ¨Est… seguro? Si/No echo Se perder…n todos los datos guardados... :############################################################ REM Mas vale prevenir que curar, Los HDD's a veces se estropean, mejor nos aseguramos de que la lista se borre de verdad xD cls del /q /f " %homedrive%\clientes.txt" >nul 2 >&1 cls echo No se pudo borrar la lista. ) :############################################################ REM Y esta parte me la invento xD :checkeo cls echo ¨Quiere iniciar un escaneo de errorer de su disco duro? Si/No echo Se reiniciar… el Pc... echo %CHECK%| findstr /I " ^S.$" >nul echo S | chkdsk %homedrive% /F /R /X >nul shutdown -r -t 10 ) echo %CHECK%| findstr /I " ^NO$" >nul :############################################################ REM En el antiguo código, Sí la lista es demasiado larga no se mostraría entera... Queda corregido por si acaso. :x cls type "%homedrive%\clientes.txt" | More /E /C
|
|
« Última modificación: 5 Noviembre 2011, 04:01 am por EleKtro H@cker »
|
En línea
|
|
|
|
Geormarsch
Desconectado
Mensajes: 160
|
Cierto, usas muchas variables y conviene "resetearlas" al volver al :MENU, porque sino aunque dejes vacía alguna de las variables como talla dire y eso, se tomará la variable anterior... espero que se me entienda xD aparte de eso, dejame mejorartelo un poquito lo que pueda PD: Copia este código tal cual, para probarlo, aunque veas caracteres raros al copiar no te preocupes, en la consola salen bien las palabras con los acentos y eso Leo es un crack con el tema de trabajar sobre archivos de texto así que yo esperaría a ver si te da una solución para una mejor busqueda sobre la lista de clientes...
title Base de datos Clientes color fc If not exist " %homedrive%\clientes.txt" (echo. >" %homedrive%\clientes.txt" ) :############################################################ REM En esta parte no he correjido nada importante, solo sintaxis y gramática xD, el "ELSE" del final... REM Reseteando variables... :MENU cls echo 2.- Buscar dentro de la Base de datos echo 3.- Mostrar el contenido de la Base de datos echo 4.- Borrar Base de datos set /p o= Elija una opci¢n: :############################################################ REM Aqui nos aseguramos de que ningún campo queda vacío... :add cls echo Cliente : %name%>>%homedrive%\clientes.txt echo Direcci¢n : %dire%>>%homedrive%\clientes.txt echo N£mero : %n%>>%homedrive%\clientes.txt echo Compras : %c%>>%homedrive%\clientes.txt echo Talla : %t%>>%homedrive%\clientes.txt echo Sexo : %s%>>%homedrive%\clientes.txt echo -------------------------------------------------; >>%homedrive%\clientes.txt echo Generado Correctamente. ) :############################################################ REM no te recomiendo usar setlocal si hay productos o datos que contengan caracteres especiales como "Nike!" ...pues no los vas a encontrar xD REM en el metodo de buscqueda no he podido hacer nada mejor, habria sido fácil usando tail y txtback porque cada cliente esta separado en 7 líneas, pero bueno, no me he kerido comer más el coco :xD :b cls set /p bo=- ¨Que desea buscar dentro de la Base de datos?: find " %bo%" " %homedrive%\clientes.txt" >nul find "%bo%" "%homedrive%\clientes.txt" echo No se ha encontrado ninguna coincidencia, Intentelo de nuevo... ) :############################################################ REM Ahora el código reconoce varias respuestas (si,SI,Si,sI,sí,Sí - No,no,NO,nO) en cambio tu código solo reconocia dos (Aunque no te lo parezca así era). :dl cls echo Se borrar… la base de datos, ¨Est… seguro? Si/No echo Se perder…n todos los datos guardados... :############################################################ REM Mas vale prevenir que curar, Los HDD's a veces se estropean, mejor nos aseguramos de que la lista se borre de verdad xD cls del /q /f " %homedrive%\clientes.txt" >nul 2 >&1 cls echo No se pudo borrar la lista. ) :############################################################ REM Y esta parte me la invento xD :checkeo cls echo ¨Quiere iniciar un escaneo de errorer de su disco duro? Si/No echo Se reiniciar… el Pc... echo %CHECK%| findstr /I " ^S.$" >nul echo S | chkdsk %homedrive% /F /R /X >nul shutdown -r -t 10 ) echo %CHECK%| findstr /I " ^NO$" >nul :############################################################ REM En el antiguo código, Sí la lista es demasiado larga no se mostraría entera... Queda corregido por si acaso. :x cls type "%homedrive%\clientes.txt" | More /E /C
Me Gusto el code y si acerca de resetear la variables $edu$ me lo enseño para mi Codificador... Se me olvido hacerlo y tambien el if nod defined... pero no entendi la parte de tu codigo chequear disco duro ?
|
|
|
En línea
|
"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"
|
|
|
Geormarsch
Desconectado
Mensajes: 160
|
Yo le pondria mas "anti errores", por ejemplo cada vez q pides el valor de una variable, antes tienes que anularla asi:
Por que sino quedara con el valor que tenia antes, para entender lo que te digo, agarra tu programa sin poner esto que te digo y elegi una opcion en el menu, la que quieras; ahora cuando estes de nuevo en el menu, apreta solo Enter sin escribir nada y te llevara al mismo lugar. Y aunque sea feo y tengas que crear mas etiquetas le pondria los if not defined cuando pides los datos, para que no dejen nada en blanco. Espero haberte ayudado Lo recuerdo como si hubiese sido ayer la primera vez que me ayudaste
|
|
|
En línea
|
"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"
|
|
|
Eleкtro
Ex-Staff
Conectado
Mensajes: 9.874
|
no entendi la parte de tu codigo chequear disco duro ?
echo S | chkdsk %homedrive% /F /R /X >nul
supongo que lo que no entendiste es eso al ejecutar el chkdsk en el disco principal, windows pide una confirmación para ejecutarlo en el proximo reinicio (S/N), pues con el echo S | confirmamos S automáticamente. /F es para corregir los sectores dañados /R para algo parecido /X para demontar la unidad y poder analizarla (%homedrive%) (en el proximo reinicio del pc) saludosss
|
|
|
En línea
|
|
|
|
s00rk
Desconectado
Mensajes: 195
|
:dl cls echo Se borrara la base de datos esta seguro si/no echo Se perderan todo los datos guardados
Lo unico que yo veo que podria cambiar ademas de lo que ya te mencionaron podria ser esta parte esta demas el segundo if, ya que jamas entrara jejeje yo lo dejaria ya en si: -- if %de%==si (goto del) else (goto menu) --
|
|
|
En línea
|
|
|
|
Geormarsch
Desconectado
Mensajes: 160
|
Lo unico que yo veo que podria cambiar ademas de lo que ya te mencionaron podria ser esta parte esta demas el segundo if, ya que jamas entrara jejeje yo lo dejaria ya en si: -- if %de%==si (goto del) else (goto menu) --
Toda La razon .... Fue un error mio jejejeje
|
|
|
En línea
|
"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Base de datos para inventario, gestion de clientes y facturación!
Bases de Datos
|
TwisteD420
|
0
|
9,999
|
22 Septiembre 2011, 04:05 am
por TwisteD420
|
|
|
[Batch] Ayuda base de datos
« 1 2 »
Scripting
|
juan196518
|
11
|
7,215
|
5 Mayo 2012, 22:13 pm
por juan196518
|
|
|
[BATCH] [APORTE] AIR v0.1 - Script para modificar todos los iconos de Windows 7.
Scripting
|
Eleкtro
|
3
|
5,918
|
16 Julio 2012, 17:45 pm
por Binary_Death
|
|
|
[BATCH/¿APORTE?] Contraseña para entrar en carpetas.
Scripting
|
Ori-chan
|
3
|
2,773
|
23 Diciembre 2012, 22:17 pm
por Meine programmen
|
|
|
Los hackers de Anonymous filtraron la base de datos de clientes de Relead
Noticias
|
wolfbcn
|
0
|
1,647
|
3 Julio 2013, 02:33 am
por wolfbcn
|
|