Ms-Dos - edlin eliminar encabezados

 
Vista:

edlin eliminar encabezados

Publicado por aurogo (4 intervenciones) el 29/07/2010 21:43:56
Hola, me di a a la tarea de eliminar encabezados a un archivo con extension CSV que se me genera todos los dias y si lo realiza con la sig sintaxis:

(
echo 1d
echo e
) | edlin /B archivo.csv > nul 2>&1

ese arhivo despues de haber eliminado el primer renglon y querer cargarlo a la base de datos me da un error donde me dice que el tipo de datos no coincide, para lo cual abro el archivo en excel (y solo abriendolo en excel) en la ultima fila me muestra un signo de interrogacion encerrado en un cuadrado, el cual si elimino el renglon donde esta ese signo, no tengo problema para cargar el archivo a la base de datos, por lo cual me lleva a la sig conclusion:

Cuando uso el EDLIN y borrar el renglon "se recorren los demas" y me deja un error en el ultimo renglon donde estaban los datos, sabrian uds como hacer para que no me siga mostrando este error y asi ya poder automatizar mi proceso, gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:edlin eliminar encabezados

Publicado por Armando Nava  (194 intervenciones) el 03/08/2010 07:39:46
Si la cabecera de tu archivo tienen palabras unicas, es decir que nunca se lleguen a encontrar en el resto del archivo,entonces puedes buscarlas y pedir que no se muestren con findstr.

findstr /v "CADENA_UNICA_DEL_ENCABEZADO" archivo.cvs > tempo.cvs
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:edlin eliminar encabezados

Publicado por aurogo (4 intervenciones) el 03/08/2010 23:04:21
ok muchas gracias es lo que necesitaba, una pregunta mas si quisiera agregar una palabra mas que se encuentra en el mismo encabezado que comodin tendria que teclear esto para asegurarme al 100% que se evitara el encabezado, gracias, saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:edlin eliminar encabezados

Publicado por Armando Nava  (194 intervenciones) el 04/08/2010 02:32:53
Pues simplemente agregas todo el encabezado.

Si en algun momento cambias tu encabezado lo puedes definir con variables. Pero con un copy- paste basta.

set encabezado=cuentas_facturas_etc
set agregado=_clientes

findstr /v "%encabezado%%agregado%" informe.csv

Ve las opciones para findsrt: findstr /?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:edlin eliminar encabezados

Publicado por aurogo (4 intervenciones) el 05/08/2010 01:23:08
hola que tal fijate que ya corriendo el batch para que realice la carga de el archivo a la base de datos, me marca un error similar a cuando usuaba el edlin, me doy cuenta de que estos comandos (ms-dos) que editan los archivos, omiten caracteres o vacios (NULL), la pregunta es sabras de algo aparte de batch que me pueda eliminar encabezados de archivos y que se ejecuten a cierta hora para hacer todo el proceso automatico ya que esto es lo unico que me falta ya que tengo todo lo demas en perfectas condiciones, gracias, saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:edlin eliminar encabezados

Publicado por Armando Nava  (194 intervenciones) el 08/08/2010 06:43:23
Entiendo que lo que te hace falta es eliminar el ultimo renglón. tendrias que contar cuantos registros tiene tu archivo.

Luego, hay que restarle 1 al contador e imprimir ese número de líneas, en el archivo que se va a cargar.

Realice algunas pruebas, cuando se trata de lineas en blanco no hace el conteo de lineas.

lin_cont.bat archivo.cvs
------------------------------
@echo off
set /A CONTADOR=0
set ARCH=%1

for /F %%i IN (%ARCH%) do (
set /A CONTADOR=CONTADOR+1
)
echo ------------------------
echo %ARCH%---:%CONTADOR%
echo.
echo ------------------------

set /A REG=CONTADOR-1
set /A CONT2=0

echo.
echo %CONTADOR%
echo.

type nul>menos1.txt

for /F "delims=|" %%j IN (%ARCH%) do (
call verifica.bat
echo %%j >>menos1.txt
)

--------------------------
verifica.bat
--------------------------
@echo off

if %CONT2% EQU %REG% (exit)
echo %CONT2%
set /A CONT2=CONT2+1

El archivo que debes cargar se llama menos1.txt pero lo puedes cambiar de nombre. Por cierto como delimitador use el "|" asumiendo que este caracter no se encuentra en tu archivo cvs, si lo usas en el cvs sustituyelo por un caracter que nunca se encuentre por ejemplo ],$, #, ¡,?, etc

Para ejecutar bats ó archivos ejecutables a cierta hora usa el comado at /?

Prueba estos bats, si no funcionan, puedes tratar con Visual BAsic Script, o tal vez con perl.

http://zarza.fis.usal.es/~fgarcia/docencia/poo/03-04/Trabajos/VisualBasicScript.pdf
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:edlin eliminar encabezados

Publicado por aurogo (4 intervenciones) el 10/08/2010 04:47:56
ok muchas gracias por la alternativas, despues de analizar archivos que me arrojaba ya di exactamente que es lo que pasa, lo voy a describir:
El archivo arrojado a pesar de que es un archivo delimitado por comas (csv), no cuenta con un formato claro para el sql server por que hay algunos renglones que no cuentan con el delimitador de renglon (retorno de carro); que sucede cuando este archivo lo abro en excel?, bueno al momento de eliminar el encabezado o simplemente al escribir y borrar cualquier dato en cualquier celda se realiza una modificacion en el archivo y al momento de cerrarlo excel te indica que se desecharan caracteristicas y que se aplicara formato ahi en ese momento excel inserta el retorno de carro requerido para que lo pueda interpretar sql server y asi cargue los datos a la base de datos sin ningun problema, estuve buscando como insertar ese delimitador a cada renglon pero no encontre nada, lo unico que me queda es seguir alimentando la base de datos manualmente hasta que encuentre algo que me ayude a aplicar ese retorno de carro o delimitador que se necesita muchas gracias por la ayuda, aprendi cosas nuevas, saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:edlin eliminar encabezados

Publicado por Armando Nava (194 intervenciones) el 12/08/2010 04:16:18
Saludos.

No se como hagas la carga mediante el cvs, pero leyendo los registros de tu archivo, probablemente se pueda hacer.

for /F "tokens=1,2,3,4 delims=," %%a IN (archivo.cvs) (
echo %%a %%b %%c %%d
)

Mediante la opcion /F (formato) le indicas al FOR los campos que quires que aparezcan, en este caso 1,2,3,4 (%%a, %%b;%%c;%%d) y también le indicas el delimitador en este caso (,)

No me acuerdo como se hace el INSERT, pero puedes arreglar las instrucciones para hacer un archivo con instrucciones de SQL

nul > mymysql.sql
echo USE CLIENTES >> mymysql.sql
for /F "tokens=1,2,3,4 delims=," %%a IN (archivo.cvs) (
echo INSERT %%a, %%b, %%c, %%d, INTO DESCUENTOS >> mymysql.sql
echo COMMIT >> mymysql.sql
)

Espero que te sirva.........
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:edlin eliminar encabezados

Publicado por lycb (1 intervención) el 26/04/2011 22:35:53
Hola Armando, apenas estoy comenzando en el mundo de la programacion y ya tengo mi primer desafio (al menos yo lo veo asi :) jijij) Tengo un archivo.txt donde el contenido tiene caracteres como (? Ñ ñ), lo que requiero es que mediante un .bat se reemplacen estos caracteres por la letra n.
He utilizado edlin pero resulta que solo me hace el cambio a la primera linea, y eso que de manera contraria ( es decir, me borra todo el contenido menos el de los caracteres ?).

Agradezco tu oportuno aporte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:edlin eliminar encabezados

Publicado por GGG (2 intervenciones) el 18/05/2011 17:23:07
El formato de uso del edlin es un poco rarito. Uno de los mayores problemas es indicarle que haga los reemplazamientos hasta el final del archivo. Mira en esta dirección:
http://foro.el-hacker.com/f82/tutorial-edlin-reemplazar-cadenas-germaniac-219551/
Saludos,
GGG
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:edlin eliminar encabezados

Publicado por simon (1 intervención) el 21/06/2017 19:14:20
muchas gracias me sirvió la expresión regular, saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar