Hilo
Re: Leer de stdin una cadena extremadamente larga (COACH) 2017-07-11 00:13:53
Holas ! Carlos,
ya te dio Daniel alguna opcion....
A mi se me ocurre que podrias, crear una interface basada en Windows( atraves de MFC ) que supla el programa del CMD y te permita recibir el numero de caracteres que esperas sean pegados desde el usuario, quiza agregando un dialog y a este dialog agregarle un TextBox o un TextArea y que puedas pegar toda la informacion y de ahi ya la puedas tomar en bloques y enviarla a donde requieras ...
algo similar hacen los SQLBrowsers , reciben queries muy grandes, algunos son de 1 GB de informacion (un solo query), y es enviado en pequenos "chunks" o bloques que son pegados al recibirlos del otro lado (del server quiza) ...y ya ser procesado por el SQL engine ..
es algo que se me ocurre y usando C++, ahora que si lo quieres hacer rapido, podrias usar C# para la interface y C++ para la transferencia de los datos . jejejeje
saludos
ATTE:
ISC Edmundo Cuadriello Narvaez
Software Engineer Sr.
C++, C#, JAVA programmer.
Tel: 33-33357347
Cel: 33-13555312
ecnarvaez@yahoo.com
ecnarvaez@hotmail.com
"All for Linux, and Linux for every one"
--------------------------------------------
El vie 30-jun-17, Daniel Pons Monforte <dponsmonforte@gmail.com> escribió:
Asunto: Re: [C con Clase] Leer de stdin una cadena extremadamente larga
A: cconclase@listas.conclase.net
Cc: "Carlos" <jsbwyl8@gmail.com>
Fecha: viernes, 30 de junio de 2017, 2:05
Hola Carlos,
No es un problema de que instrucción utilizar. Es un
problema de
gestionar la información. Sabes el dicho de divide y
vencerás?
Pues eso es lo que tienes que gestionar. Muchos
protocolos de
comunicación envían paquetes pequeños de datos que
luego se
acumulan en grandes cantidades. Pues tu debes hacer lo
mismo. Un
millón de caracteres es una burrada de información.
O haces que tu
programa lo lea por paquetes o envías la información
por paquetes.
Así de simple.
Suerte
El 30/06/17 a
las 00:30, Carlos
escribió:
Hola a todos, me presento soy Carlos de
Chile, y tengo
una inquietud que no he podido resolver,
espero algún
experto en c++ me pueda orientar.
Como puedo leer una cadena de texto que contiene
números
separados por espacios ej. "1212 123123
12312312" , el largo
total de esta cadena es de mas de 400.000
caracteres con una
media aprox de 1.000.000 de caracteres que es
pegada en una
consola. Note que hasta 65535 caracteres el
programa es
capaz de devolver la entrada, pero ingresando un
largo mayor
a eso, el programa deja de responder.
Existe alguna forma de leer estas colosales
cadenas por la
entrada estándar con c++?
Saludos!.
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
Re: Leer de stdin una cadena extremadamente larga (Carlos) 2017-07-18 19:50:17
Hola Edmundo,
Investigando me tope con varias cosas interesantes tales como:
http://www.linusakesson.net/programming/tty/
y con comandos de linux como ulimit -a , el pipe size es la limitante para
el entrada de un gran numero de caracteres, con esta configuración no tiene
mayor problemas
time(seconds) 3
file(blocks) 102400
data(kbytes) 524288
stack(kbytes) 32768
coredump(blocks) unlimited
memory(kbytes) unlimited
locked memory(kbytes) 64
process 3
nofiles 1024
vmemory(kbytes) 524288
locks unlimited
rtprio 0
La limitante esta asociada al sistema operativo, mas que a la forma de leer
la cadena ;)
Saludos!.
El 10 de julio de 2017, 20:13, Edmundo Cuadriello Narvaez <
ecnarvaez@yahoo.com> escribió:
>
> Holas ! Carlos,
>
> ya te dio Daniel alguna opcion....
>
> A mi se me ocurre que podrias, crear una interface basada en Windows(
> atraves de MFC ) que supla el programa del CMD y te permita recibir el
> numero de caracteres que esperas sean pegados desde el usuario, quiza
> agregando un dialog y a este dialog agregarle un TextBox o un TextArea y
> que puedas pegar toda la informacion y de ahi ya la puedas tomar en bloques
> y enviarla a donde requieras ...
>
> algo similar hacen los SQLBrowsers , reciben queries muy grandes, algunos
> son de 1 GB de informacion (un solo query), y es enviado en pequenos
> "chunks" o bloques que son pegados al recibirlos del otro lado (del server
> quiza) ...y ya ser procesado por el SQL engine ..
>
> es algo que se me ocurre y usando C++, ahora que si lo quieres hacer
> rapido, podrias usar C# para la interface y C++ para la transferencia de
> los datos . jejejeje
>
> saludos
>
> ATTE:
> ISC Edmundo Cuadriello Narvaez
> Software Engineer Sr.
> C++, C#, JAVA programmer.
> Tel: 33-33357347
> Cel: 33-13555312
>
> ecnarvaez@yahoo.com
> ecnarvaez@hotmail.com
> "All for Linux, and Linux for every one"
>
> --------------------------------------------
> El vie 30-jun-17, Daniel Pons Monforte <dponsmonforte@gmail.com> escribió:
>
> Asunto: Re: [C con Clase] Leer de stdin una cadena extremadamente larga
> A: cconclase@listas.conclase.net
> Cc: "Carlos" <jsbwyl8@gmail.com>
> Fecha: viernes, 30 de junio de 2017, 2:05
>
>
> Hola Carlos,
> No es un problema de que instrucción utilizar. Es un
> problema de
> gestionar la información. Sabes el dicho de divide y
> vencerás?
> Pues eso es lo que tienes que gestionar. Muchos
> protocolos de
> comunicación envían paquetes pequeños de datos que
> luego se
> acumulan en grandes cantidades. Pues tu debes hacer lo
> mismo. Un
> millón de caracteres es una burrada de información.
> O haces que tu
> programa lo lea por paquetes o envías la información
> por paquetes.
> Así de simple.
> Suerte
>
>
>
>
>
>
>
> El 30/06/17 a
> las 00:30, Carlos
> escribió:
>
>
>
>
>
>
> Hola a todos, me presento soy Carlos de
> Chile, y tengo
> una inquietud que no he podido resolver,
> espero algún
> experto en c++ me pueda orientar.
>
>
>
>
> Como puedo leer una cadena de texto que contiene
> números
> separados por espacios ej. "1212 123123
> 12312312" , el largo
> total de esta cadena es de mas de 400.000
> caracteres con una
> media aprox de 1.000.000 de caracteres que es
> pegada en una
> consola. Note que hasta 65535 caracteres el
> programa es
> capaz de devolver la entrada, pero ingresando un
> largo mayor
> a eso, el programa deja de responder.
>
>
>
>
> Existe alguna forma de leer estas colosales
> cadenas por la
> entrada estándar con c++?
>
>
>
>
> Saludos!.
>
>
>
>
>
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase@listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase@listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
_______________________________________________
Lista de correo Cconclase Cconclase@listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ