Velocidad de proceso

28/03/2007 - 14:41 por Daniel Pozzi | Informe spam
Hola, estoy usando excel para procesar un archivo txt. Con line input voy
analizando linea a linea del txt y según el contenido le asigno una columna
de la planilla. Por ejemplo, en la linea de texto "dato34", se crea una
columda dato con una linea 1234, si se repite "dato" agrega el contenido en
otra fila.
Esto es muuuuy lento, son archivos bastante grandes. Alguna recomendación
para hacer el proceso mas rápido?

Preguntas similare

Leer las respuestas

#11 Daniel Pozzi
30/03/2007 - 05:47 | Informe spam
En lugar de movenext, puedo usar un indice numérico? O sea hacer referecia
al rs(0).value con su numero de fila?
Gracias!

Daniel


"Francisco Parrilla" escribió en el mensaje
news:
Para recorrer el recorset segun lo hayas nombrado

rs.movefirst
do whilre not rs.EOF
debug.print rs(0).value
rs.MOVENEXT
loop

Claro esta que esto es ya teniendo el recordset.

Saludos





"Daniel Pozzi" escribió en el mensaje
news:
Hola Hector, te descolocó el Data0 :), si es asi, queda todo en una
celda,
en realidad eso no se usa par nuestro fin...
Creo q tampoco me expreso bien... tratare de explicarme. Con el ejemplo q


me
pasaste tengo un recordset q usando CopyFromRecordset se coloca todo su
contenido en la columna A de excel.
Mi pregunta ahora es: puedo leer línea a línea directamente del
recordset?
cómo? si puedo hacer esto ya tengo lo demas funcionando.
Por supuesto q si queres ver la planilla estoy usando por privado te la
paso. Ahi te daras cuenta de q se trata. Pero insisto, mi problema ahora


es
entender el funcionamiento del recordset, leerlo línea a línea, quizá
filtrarlo...
Disculpa el rollo
Saludos
Daniel


"Héctor Miguel" escribió en el mensaje
news:
> hola, Daniel !
>
>> En la hoja RGN10 van las columnas Type, Label y Origin0
>> con estos datos: 0xc00, LA cLARITA, -31.96072,-58.41016
>> En la hoja RGN40 van las columnas Type, RoadId, RouteParam, Data0,


Nod1,
>> NOd2, Nod3
>> con estos valores: 0xa, 92, 1,0,0,0,0,0,0,0,0,0,0,0, 0,345,0, 1,341,0,
>> 2,346,0
>> Esto lo hago perfectamente leyendo linea a linea del txt
>> pero supongo habra una manera mas rapida de hacerlo.
>> Pensa q son archivos de mas de 2 Mb...
>
> => creo que no supe 'darme a entender' :))
> de los datos que te solicite como queda su arreglo [cada dato en su
> 'cada celda']...
>
>>> podrias exponer [+/- exactamente] 'como' y donde es que quedarian los
>>> registros 'definitivos' [como los] siguientes:
>>> -> RouteParam=1,0,0,0,0,0,0,0,0,0,0,0
>>> ->
>>>


Data0=(-31.94201,-58.41580),(-31.96227,-58.40879),(-31.96578,-58.37899)
>>> -> Nod1=0,345,0
>
> me he perdido [o no has expuesto] como queda 'arreglado' finalmente la
> linea con el...
>>> ->
>>>


Data0=(-31.94201,-58.41580),(-31.96227,-58.40879),(-31.96578,-58.37899)
> ???? o sea:
>
> a) en que celda se pondria 'Data0' ???
> b) como quedaria desglosado ->
> (-31.94201,-58.41580),(-31.96227,-58.40879),(-31.96578,-58.37899) ???
> todo este numerio en una sola celda ??? en cual celda ???
> haces alguna especie de 'separacion' ????
> en donde quedaria 'cada segmento' ??? [RANGOS]
>
> => te recuerdo que en tu consulta inicial comentabas +/- lo siguiente:
> "Por ejemplo, en la linea de texto "dato34", se crea una columna
> dato con una linea 1234
> si se repite "dato" agrega el contenido en otra fila..."
> => lo que hace suponer alguna 'repeticion' de
> conceptos/titulos/columnas/... [pero... cuales/como/donde/...] ???
>
> saludos,
> hector.
>






Respuesta Responder a este mensaje
#12 Francisco Parrilla
30/03/2007 - 06:35 | Informe spam
El rs(0).value es para hacer referencia a a primera columna del archivo :)
no al numero ke podria hacer en la fila ;)
rs(0) > Columna A
rs(1) > Columna B
rs(2) > Columna C
rs(3) > Columna D
rs(4) > Columna E
rs(5) > Columna F

O bien si extrajiste los encabezads de las columnas como origeen de los
campos en tablas seria nombrado como su campo field

rs.ColumnaA

Por mencionar un ejemplo

Saludos




"Daniel Pozzi" escribió en el mensaje
news:
En lugar de movenext, puedo usar un indice numérico? O sea hacer referecia
al rs(0).value con su numero de fila?
Gracias!

Daniel


"Francisco Parrilla" escribió en el mensaje
news:
> Para recorrer el recorset segun lo hayas nombrado
>
> rs.movefirst
> do whilre not rs.EOF
> debug.print rs(0).value
> rs.MOVENEXT
> loop
>
> Claro esta que esto es ya teniendo el recordset.
>
> Saludos
>
>
>
>
>
> "Daniel Pozzi" escribió en el mensaje
> news:
>> Hola Hector, te descolocó el Data0 :), si es asi, queda todo en una
>> celda,
>> en realidad eso no se usa par nuestro fin...
>> Creo q tampoco me expreso bien... tratare de explicarme. Con el ejemplo


q
> me
>> pasaste tengo un recordset q usando CopyFromRecordset se coloca todo su
>> contenido en la columna A de excel.
>> Mi pregunta ahora es: puedo leer línea a línea directamente del
>> recordset?
>> cómo? si puedo hacer esto ya tengo lo demas funcionando.
>> Por supuesto q si queres ver la planilla estoy usando por privado te la
>> paso. Ahi te daras cuenta de q se trata. Pero insisto, mi problema


ahora
> es
>> entender el funcionamiento del recordset, leerlo línea a línea, quizá
>> filtrarlo...
>> Disculpa el rollo
>> Saludos
>> Daniel
>>
>>
>> "Héctor Miguel" escribió en el mensaje
>> news:
>> > hola, Daniel !
>> >
>> >> En la hoja RGN10 van las columnas Type, Label y Origin0
>> >> con estos datos: 0xc00, LA cLARITA, -31.96072,-58.41016
>> >> En la hoja RGN40 van las columnas Type, RoadId, RouteParam, Data0,
> Nod1,
>> >> NOd2, Nod3
>> >> con estos valores: 0xa, 92, 1,0,0,0,0,0,0,0,0,0,0,0, 0,345,0,


1,341,0,
>> >> 2,346,0
>> >> Esto lo hago perfectamente leyendo linea a linea del txt
>> >> pero supongo habra una manera mas rapida de hacerlo.
>> >> Pensa q son archivos de mas de 2 Mb...
>> >
>> > => creo que no supe 'darme a entender' :))
>> > de los datos que te solicite como queda su arreglo [cada dato en


su
>> > 'cada celda']...
>> >
>> >>> podrias exponer [+/- exactamente] 'como' y donde es que quedarian


los
>> >>> registros 'definitivos' [como los] siguientes:
>> >>> -> RouteParam=1,0,0,0,0,0,0,0,0,0,0,0
>> >>> ->
>> >>>
> Data0=(-31.94201,-58.41580),(-31.96227,-58.40879),(-31.96578,-58.37899)
>> >>> -> Nod1=0,345,0
>> >
>> > me he perdido [o no has expuesto] como queda 'arreglado' finalmente


la
>> > linea con el...
>> >>> ->
>> >>>
> Data0=(-31.94201,-58.41580),(-31.96227,-58.40879),(-31.96578,-58.37899)
>> > ???? o sea:
>> >
>> > a) en que celda se pondria 'Data0' ???
>> > b) como quedaria desglosado ->
>> > (-31.94201,-58.41580),(-31.96227,-58.40879),(-31.96578,-58.37899) ???
>> > todo este numerio en una sola celda ??? en cual celda ???
>> > haces alguna especie de 'separacion' ????
>> > en donde quedaria 'cada segmento' ??? [RANGOS]
>> >
>> > => te recuerdo que en tu consulta inicial comentabas +/- lo


siguiente:
>> > "Por ejemplo, en la linea de texto "dato34", se crea una


columna
>> > dato con una linea 1234
>> > si se repite "dato" agrega el contenido en otra fila..."
>> > => lo que hace suponer alguna 'repeticion' de
>> > conceptos/titulos/columnas/... [pero... cuales/como/donde/...] ???
>> >
>> > saludos,
>> > hector.
>> >
>>
>>
>
>


Respuesta Responder a este mensaje
#13 Héctor Miguel
30/03/2007 - 07:03 | Informe spam
hola, Daniel !

... te descoloco el Data0 :), si es asi, queda todo en una celda, en realidad eso no se usa par nuestro fin...



=> [segun yo]... si se utiliza/ria [cuando menos] para poner los 'encabezamientos' de las columnas y los datos 'sus' filas -???-

Con el ejemplo q me pasaste tengo un recordset q usando CopyFromRecordset se coloca todo su contenido en la columna A...



=> si todo el contenido del 'recordset' [que al parecer son datos de una sola columna]...
ha podido 'caber' [completito ?] usando el CopyFromRecordset en una hoja de excel...
[pergunta]: por que no [simplemente] abres 'en directo' tu archivo de texto ???
-> Workbooks.OpenText "ruta\a tu\archivo.txt"
-> una vez abierto... podrias 'manipular/administrar/filtrar/...' segun sea necesario extraer sus datos :))

=> lo que SI 'saca de onda'... es que mencionas que son archivos "de mas de 2 Mb" -???-
y [hasta donde se] para que un archivo .TXT tenga tan 'descomunal' peso... [es probable que no 'quepa' en ~65k filas] -???-

Mi pregunta ahora es: puedo leer linea a línea directamente del recordset? como?
si puedo hacer esto ya tengo lo demas funcionando.
Por supuesto q si queres ver la planilla estoy usando por privado te la paso. Ahi te daras cuenta de q se trata.
Pero insisto, mi problema ahora es entender el funcionamiento del recordset, leerlo linea a linea, quiza filtrarlo...



=> cual seria la 'diferencia/ventaja/...' entre leer 'linea-a-linea' un RecordSet... o leer 'linea-a-linea' usando 'Line Input' -???-
[me parece que] siguen todavia MAS de dos 'detalles'... 'en el tintero' -???-

saludos,
hector.
Respuesta Responder a este mensaje
#14 Daniel Pozzi
30/03/2007 - 15:20 | Informe spam
"Héctor Miguel" escribió en el mensaje
news:
hola, Daniel !

... te descoloco el Data0 :), si es asi, queda todo en una celda, en
realidad eso no se usa par nuestro fin...



=> [segun yo]... si se utiliza/ria [cuando menos] para poner los
'encabezamientos' de las columnas y los datos 'sus' filas -???-

Con el ejemplo q me pasaste tengo un recordset q usando CopyFromRecordset
se coloca todo su contenido en la columna A...



=> si todo el contenido del 'recordset' [que al parecer son datos de una
sola columna]...
ha podido 'caber' [completito ?] usando el CopyFromRecordset en una
hoja de excel...
[pergunta]: por que no [simplemente] abres 'en directo' tu archivo de
texto ???
-> Workbooks.OpenText "ruta\a tu\archivo.txt"
-> una vez abierto... podrias 'manipular/administrar/filtrar/...'
segun sea necesario extraer sus datos :))

=> lo que SI 'saca de onda'... es que mencionas que son archivos "de mas
de 2 Mb" -???-
y [hasta donde se] para que un archivo .TXT tenga tan 'descomunal'
peso... [es probable que no 'quepa' en ~65k filas] -???-



Cabe en la columna A el txt de prueba q estoy usando, no el de 2 mb. Y sí
entra un archivo grande porq se divide segun el encabezado [RGN40], [RGN10],
etc., en 8 o 10 hojas.



Mi pregunta ahora es: puedo leer linea a línea directamente del
recordset? como?
si puedo hacer esto ya tengo lo demas funcionando.
Por supuesto q si queres ver la planilla estoy usando por privado te la
paso. Ahi te daras cuenta de q se trata.
Pero insisto, mi problema ahora es entender el funcionamiento del
recordset, leerlo linea a linea, quiza filtrarlo...



=> cual seria la 'diferencia/ventaja/...' entre leer 'linea-a-linea' un
RecordSet... o leer 'linea-a-linea' usando 'Line Input' -???-



La diferencia q estoy buscando es q sea mas rapido de procesar si se hace
directamente del recordset y no linea a linea del txt. Linea a linea
funciona correctamente, pero esta conversación me permitio investigar el
funcionamiento del recordset y ahora la idea de usar OpenText tambien la
investigare. Si bien soy "pesado" con esto, estoy aprendiendo un montón!
Estoy en lo cierto q usando el recordset se hara todo mas rápido??

Gracias nuevamente
un saludo

Daniel



[me parece que] siguen todavia MAS de dos 'detalles'... 'en el
tintero' -???-

saludos,
hector.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida