2009-08-24 17 views
35

¿Existe algún límite en el tamaño de los datos que se pueden copiar en el portapapeles? Estoy usando VB6 y necesito copiar bloques de datos al portapapeles.límite de tamaño del portapapeles

+0

¿Esto es una pregunta de programación? Si es así, ¿qué le parece darnos más detalles para que podamos ayudarlo? Si no, esta pregunta pertenece a otra parte. – Bevan

+2

Sí, estoy tratando de escribir datos en el portapapeles usando vb6. Es por eso que me pregunto acerca de su límite. –

Respuesta

0

Depende de la cantidad de memoria en el sistema.

+3

No lo creo, pero la "cantidad de memoria" es demasiado vaga de todos modos. Phsyical RAM o memoria virtual? ¿Y qué ocurre con los sistemas con> 4 GB de memoria y 32 bits de aplicaciones? –

1

La mayoría de los datos se copian como referencia en lugar de los datos en sí para que pueda copiar cualquier cosa de cualquier tamaño. Sin embargo, el texto realmente se copia y, por lo que sé, la cantidad de datos está limitada a la cantidad de memoria RAM actualmente disponible. Recuerde esto, si vb6 puede manejarlo, estoy seguro de que el portapapeles puede manejarlo.

+6

(-1) La mayoría de los datos no se copiaron por referencia. En el caso más simple, una variable de cadena en una aplicación se copia en un bloque de memoria global, como indicó Jan. Hay algunas situaciones en las que copiar/pegar implica punteros para el almacenamiento interno, pero normalmente es con formatos propietarios/privados. Para cosas comunes como AnsiString, UnicodeString, RTF, HTML, Bitmap, etc., se hace con la memoria global compartida, lo que significa que debe existir una segunda copia de los datos. –

27

Las aplicaciones llaman al GlobalAlloc(GMEM_MOVEABLE or GMEM_DDESHARE) para asignar la memoria a los datos que se almacenarán en el portapapeles y ponerla a disposición de otras aplicaciones. Para aplicaciones de 32 bits, GlobalAlloc puede asignar bloques de hasta 2 GB de tamaño o hasta la cantidad de memoria virtual que tenga la PC, lo que sea menor. El portapapeles de Windows no impone ningún otro límite de tamaño.

1

Como información: puede pensar que el búfer del portapapeles es pequeño al copiar texto con algunos <NUL> (ascii 0) caracteres en un editor.

En este caso, el problema no es el tamaño del portapapeles, pero el editor reconoce el <NUL> como el final del texto y no inserta más después de este carácter.

+6

Esto debería ser ** un comentario ** en lugar de ** una respuesta **. Es información, pero no intenta responder la pregunta. – Adam