[C con Clase] Leer de stdin una cadena extremadamente larga

Carlos jsbwyl8 en gmail.com
Mar Jul 18 21:50:17 CEST 2017


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 en 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 en yahoo.com
> ecnarvaez en hotmail.com
> "All for Linux, and Linux for every one"
>
> --------------------------------------------
> El vie 30-jun-17, Daniel Pons Monforte <dponsmonforte en gmail.com> escribió:
>
>  Asunto: Re: [C con Clase] Leer de stdin una cadena extremadamente larga
>  A: cconclase en listas.conclase.net
>  Cc: "Carlos" <jsbwyl8 en 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 en 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 en listas.conclase.net
>  http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>  Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20170718/14a64c57/attachment.html>


Más información sobre la lista de distribución Cconclase