Usuario: anónimo

Usuarios en línea: 1
Invitados: 1

FAQ

Hilo

115m
Re: Leer de stdin una cadena extremadamente larga
U(COACH) 2017-07-20 03:22:24

Holas !  Carlos,

siempre se aprende algo nuevo, gracias por compartir tu solucion ..

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 mar 18-jul-17, Carlos <jsbwyl8@gmail.com> escribió:

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

 A: "Edmundo Cuadriello Narvaez" <ecnarvaez@yahoo.com>

 Cc: "Lista de correo sobre C y C++" <cconclase@listas.conclase.net>

 Fecha: martes, 18 de julio de 2017, 14:50

 

 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