Ayuda, comparador en Batch

Iniciado por lean91, 30 Enero 2020, 00:50 AM

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

lean91



Proyecto en el que trabajo

Hola a todos, me estoy metiendo de a poco bastante en batch y me pidieron para un trabajo
un batch que haga lo siguiente y no se si realmente pueda hacerlo.

en un excel (llamado TELEFONOS )hay una columna con telefonos y tengo que comparar esos telefonos
con uno un excel que tiene las características de área y a donde corresponden, por ejemplo

11 2233 4455

tengo que agarrar esa fila del excel y comparar ese numero, las condiciones son:

- El numero no debe superar mas de 10 caracteres y solo deben ser numéricos

- Hacer una suerte de IF para decir de donde es (if los primeros 2 números son 11 y después tiene 8 dígitos, el teléfono es valido y es de BUENOS AIRES)

la acción a tomar si es valido es pegar ese numero en un nuevo excel en una columna y que ese excel se llame VALIDO.
En caso de ser un numero con 20 caracteres (por ejemplo) pegarlo en un nuevo excel que se llame INVALIDOS.



-una condición IMPORTANTE que considere después, es que un teléfono puede tener 12 caracteres si la persona en cuestión escribió 0324 11 223344 asi que el condicional seria,
SI numero 1,2,3,4 = "0324" and numero 5,6= "11" and numero 7,8,9,10,11,12 =******, (si empieza con 0324, los otros dos son 11 y tiene 6 números mas)
Cambien seria valido
(Debo contemplar el error humano claramente)



como se va a usar para comparar muchos números básicamente debe tomar cada fila
del excel y comparar una por una así que calculaba poner un contador para que le diga
que valla a la siguiente fila una vez terminada la comparación de este numero,
cuando el valor sea NULL o mejor dicho cuando la cantidad de caracteres sea = 0
(por lo tanto ya no hay telefonos en esa columna del excel para comparar)
mensaje "Fin del proceso" pause>null y exit

Me dan una mano para diagramarlo?
yo después me encargo de hacerlo entero con cada característica y la lógica correspondiente

punto critico,
no sabría como hacer que tome el primer campo del excel, lo compare
el segundo, lo compare
el tercero, y así

Después no sabría como decirle esta parte (si empieza con 0324, los otros dos son 11 y tiene 6 números mas entonces VALIDO pegalo en este excel en la fila 2 o 3 o la que corresponda)

Avances:

-Contador-

@echo off
cls
set/a contador=0
(Proceso que va a comparar / guardar / etc)
set/a contador=%contador%+1
@echo Se completo operación exitosamente, se validaron %contador% telefonos
Pause > null

-Comparador-

(En breve pego lo que fui haciendo, el post es nuevo aguarden unos minutos mientras lo voy modificando)


Desde ya un millon de gracias si te tomaste la molestia de leer esto

[/b]

engel lex

hola!

no se hacen tareas se provee ayuda, indica tus dudas y muestra tus avances

por otro lado, no escribas frases en mayusculas, si quieres resaltar algo, usa negritas
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

lean91

Cita de: engel lex en 30 Enero 2020, 01:00 AM
hola!

no se hacen tareas se provee ayuda, indica tus dudas y muestra tus avances

por otro lado, no escribas frases en mayusculas, si quieres resaltar algo, usa negritas

Ya mismo lo modifico y pego lo que tengo hasta ahora :D

Eleкtro

TL; DR

Batch no provee funcionalidad para leer formatos Excel. Debes utilizar otro lenguaje más sofisticado y con una librería especializada para la lectura del formato (ej. C# o VB.NET + NPOI) y entonces si que te resultará muy sencilla la tarea de leer la tabla/columnas/filas y realizar comparaciones.

Saludos.