Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Pisangas

#1
Scripting / Re: System.OutOfMemoryException
22 Diciembre 2017, 17:52 PM
Bueno creo que de tanto buscar e intentar encontré la solución.

Como lo entendi, no era necesario esperar la importacion, luego la seleccion de las columnas para al final exportar, entonces por que no hacerlo todo al mismo tiempo


$csv = Import-Csv -Path "C:\xxx\xxx.csv" -Delimiter "|" | select "DATO1","DATO2","DATOn" | export-CSV C:\xxx\xxx.csv

tal vez sea una "chambonada"pero me funciono. Mil gracias por todo el apoyo.
#2
Scripting / Re: System.OutOfMemoryException
22 Diciembre 2017, 16:52 PM
No se, responde igual


Method invocation failed because [System.IO.File] doesn't contain a method named 'ReadLines'.
At line:1 char:37
+ $lines = [System.IO.File]::ReadLines <<<< ( "C:\xxxx.csv", [System.Text.Encoding]::Default )
   + CategoryInfo          : InvalidOperation: (ReadLines:String) [], RuntimeException
   + FullyQualifiedErrorId : MethodNotFound



y cuando lo cambio por la clase ReadAllLines arroja excepcion de memoria al cargar el csv

Exception calling "ReadAllLines" with "2" argument(s): "Exception of type 'System.OutOfMemoryException' was thrown."
At line:1 char:40

existe alguna manera de configurar en algún lugar un valor de memoria mas alto?

[MOD] usar "modificar" para añadir comentarios, no hacer doble post.
#3
Scripting / Re: System.OutOfMemoryException
21 Diciembre 2017, 23:03 PM
Me temo que ocurre igual


Exception calling "ReadAllLines" with "1" argument(s): "Exception of type 'System.OutOfMemoryException' was thrown."
#4
Scripting / Re: System.OutOfMemoryException
21 Diciembre 2017, 23:00 PM
tengo la versión 4.7

Cita de: Eleкtro en 21 Diciembre 2017, 22:31 PM
si.




La función System.IO.File.ReadLines() fue introducida en la versión 4.0 de .NET Framework, así que necesitas tener instalada esa versión (como mínimo) o una superior en tu Windows. Si eso no es posible, entonces mo podrás usar ese código. Puedes probar con la función "ReadAllLines" en vez de "ReadLines" (solo tienes que cambiarle el nombre a esa parte del código), pero el resultado me temo que será muy distinto ( ya que esa función devuelve un Array como tal, así que probablemente se te desbordará la memoria, pero bueno, por probar... puedes intentarlo a ver. )

Saludos
#5
Scripting / Re: System.OutOfMemoryException
21 Diciembre 2017, 22:42 PM
Actualizo el .NET y te aviso cualquier cosa, gracias!
#6
Scripting / Re: System.OutOfMemoryException
21 Diciembre 2017, 22:09 PM
Method invocation failed because [System.IO.File] doesn't contain a method named 'ReadLines'.

At line:2 char:37

Lo estoy haciendo sobre el PowerShell, es correcto?
#7
Scripting / System.OutOfMemoryException
21 Diciembre 2017, 20:04 PM
Buenas tardes,

Me colaboraron con un PowerShell que lee un archivo CSV y transfiere a otro archivo CSV las columnas que yo elija, hasta aquí todo bien, funciona con archivos pequeños y de pocos registros, sin embargo estoy intentando cargar un archivo que pesa cerca de 1.5 Gb y según

Get-Content miarchivo.csv | Measure-Object

Count    : 2563236


La cuestion es que según yo al cargar el archivo se queda sin memoria, se recibe el error: "Import-Csv : Exception of type 'System.OutOfMemoryException' was thrown"

algo para superar este inconveniente?
#8
preferi  export-CSV este me lo envia separado por comas


$csv     = Import-Csv -Path "C:\xx\yy.csv" -Delimiter "|"
$columns = ($csv | select "DATO1","DATO2")

$columns | export-CSV C:\xx\yy.csv

Aprendi mucho  :laugh:
#9
este Power Shell esta como útil también termine exportandolo a un archivo csv. Con esto solucione mi caso.

gracias.

$csv     = Import-Csv -Path "C:\xx\yy.csv" -Delimiter "|"
$columns = ($csv | select "DATO1","DATO2")

$columns | Out-File C:\xx\yy.csv
#10
Todo bien, para nada, no soy programador, pero como buen ingeniero ante un problema me toca buscar solución.

Reitero mi agradecimiento y no me sentí ofendido para nada, me diste prácticamente la solución al caso.

Ahora bien, te cuento como me fue, me empape un poco de Power Shell y trate de implementar mi solución, luego de sortear una serie de errores pero quedo así

$csv     = Import-Csv -Path "C:\md5\PNN.csv" -Delimiter "|"
$columns = ($csv | select "DATO1","DATO2")

$columns | Out-GridView

Quite ciertos parámetros por que a pesar de que existen, el power shell no me los reconocía tales como -ENCODING y -PassThru con esos parámetros me arroja una respuesta "A parameter cannot be found that matches parameter name...."

La verdad no se el por que el mensaje, si en la sintaxis del Power Shell si los encontré.... en fin los elimine, ya puedo tener las columnas que deseo por separado.

Parce Elektro mil gracias.