ARchivos Batch

Iniciado por Enriquesf, 23 Octubre 2021, 17:10 PM

0 Miembros y 1 Visitante están viendo este tema.

Enriquesf

buenas,soy nuevo en el blog.
una consulta,tengo que crear un archivo batch que me guarde datos de un cliente,por ejemplo su documento. Tambien que un archivo se guarden los datos de este cliente,por ejemplo su nombre o direccion,etc. Luego mediante alguna manera.poder buscar los datos de este cliente mediante su documento o mediante la fecha en que se contrato el servicio (esto me mostraria los clientes que econtrataron el servicio en esta fecha) . muchas gracias

simorg

Hola, esto no es un Blog, esto es un Foro, y no se hacen tareas.

Postea lo que tengas codeado y si tienes alguna dificultad te ayudaran.




Saludos.

Enriquesf

#2
Hola amigo. Te referis a que postee lo que tengo hecho hasta el momento?
Es esto:
Código (bash) [Seleccionar]
echo off
cls
:inicio
cls
color 1
echo           IIIIIIIIIIIIIIIIIIIIIIIIIIII
echo           III                      III                 
echo           III   "PATITAS FELICES"  III
echo           III     Hotel Canino     III
echo           III                      III
echo           III       Ingresar       III
echo           III      Si  o   No      III
echo           III                      III
echo           IIIIIIIIIIIIIIIIIIIIIIIIIIII
set/p opcion=Ingrese una opcion:
if %opcion%==No goto inicio
if %opcion%==Si goto si
cls
:si
cls
color 3
echo           IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
echo           III                                         III
echo           III  1. Ingreso de Clientes.                III
echo           III  2. Agendar servicio.                   III
echo           III  3. Lista de clientes.                  III
echo           III  4. Lista de servicios agendados.       III
echo           III  5. Calculo de servicios contratados.   III
echo           III  6. Salir.                              III
echo           III                                         III
echo           IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
set/p opcion=Ingrese el numero de la opcion que desea realizar:
if  %opcion%==1 goto ingresarclientes
if  %opcion%==2 goto agendarservicio
if  %opcion%==3 goto listadeclientes
if  %opcion%==4 goto listadeservicios
if  %opcion%==5 goto calculodeservicios
if  %opcion%==6 goto inicio
cls
:ingresarclientes
cls
color 4
echo Aqui podra ingresar un nuevo cliente.
set/p opcion=1 para volver al menu anterior 2 para salir
if %opcion%==1 goto si
if %opcion%==2 goto inicio
cls
:agendarservicio
cls
color 7
echo Aqui podra agendar un servicio.
cls
:listadeclientes
cls
color 4
echo Aqui esta la lista de clientes.
cls
:listadeservicios
cls
color 7
echo Aqui esta la lista de servicios agendados.
cls
:calculodeservicios
cls
color 4
echo Aqui estan los calculos de los servicios contratados.
cls
pause


MOD: Etiqueta GeSHi

**Aincrad**

alv, solo tienes el menú y esperas que te hagamos ayudemos con todo lo demás ?




Bueno, ya enserio, batch no te va a servir, a no ser que uses alguna que otra herramienta comandline .

Lo que se me ocurre es que guardes los datos en un .ini , o con algún tipo de delimitador para poder serializar los datos. Tendrías los registros de los usuarios en puros documentos de texto... .txt básicamente.

Para buscar, seria un dolor de cabeza, no solo seria lento, también ineficiente.

Solo te recomiendo que no lo hagas en batch.







EdePC

Básicamente el truco está es como guardar los datos, normalmente se usa un separador de datos como ; (línea 6)

Código (dos,6,10) [Seleccionar]
Rem Datos de Cliente
Set "id=0"
Set "nombre=pepe"

Rem Guardar datos del Cliente
Echo %id%;%nombre% >> clientes.txt

Rem Buscar Cliente por id
Set "id=0"
For /F "tokens=1,2 delims=;" %%a In ('FindStr /B %id% clientes.txt') Do (
  Echo ID: %%a
  Echo Nombre: %%b
)


Luego la búsqueda de datos se hace por un campo Identificador, no más eficiente sería usar FindStr (línea 10), pero si el ejercicio lo pide también se puede implementar un Bucle que recorra línea a línea. Claro que se tiene que usar Tokens para preparar la línea obtenida (línea 10) en el ejemplo se busca por ID y de la línea hallada se tomas los Tokens 1 y 2 donde el separador de Tokens es el Deliminator ;, a cada Token le corresponde un consecutivo de la variable utilizada, en mi ejemplo usé %%a así que ese es el Token 1 y el 2 sería %%b (líneas 11 y 12)

Ya solo resta hacer algo muy similar para tus Servicios, y si se requiere validación de datos existentes de igual manera te sirve FindStr o un Bucle línea a línea