Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: Antares en 17 de Octubre de 2002, 08:03:48 PM

Título: **** Los limites de CEdit ****
Publicado por: Antares en 17 de Octubre de 2002, 08:03:48 PM
                                Hola a tod@s:

Estoy haciendo un programilla para reemplazar texto en multiples archivos y tengo un problema con archivos mayores de 50K ya que no consigo mostrarlos en un cuadro de texto, uso Visual c++ y no encuentro por ningun lado cual es el limite de de tamaño que admite el control EditBox de la clase CEdit. La manera en la que lo intento es esta:

CFile Arch;
if(Arch.Open(m_fichero[m_nFicheroActual],CFile::modeRead))
{
               unsigned long Tam=(unsigned long)(Arch.GetLength());
   char *Texto=new char[Tam+1];
   
               Arch.Read(Texto,Tam);
   Texto[Tam]=0;
   Nombre=Arch.GetFileName();
   m_CtrlVistaTexto.SetWindowText(Texto);
   delete Texto;         
               Arch.Close();
}

Uso un formulario como ventana principal

Intente hacerlo con un RichEditBox porque lei que tenia mas capacidad pero sin escribir ni una linea me dice que es imposible crear un documento vacio.

Comentado esto enumero las cuestiones;

1º/ ¿Cual es el limite de texto del EditBox?

2º/ ¿Cual es el limite de texto del RitchEditBox?

3º/ ¿Como creo el RitchEditBox con un documeno "no vacio"?

4º/ ¿Que debo hacer para mostrar archivos como texto sin limite de tamaño?

Gracias de antemano y espero poder ayudar yo tambien algun dia.

Antares                                
Título: **** Los limites de CEdit ****
Publicado por: nostromo en 17 de Octubre de 2002, 10:58:03 PM
                                Hola, en respuesta a las preguntas

1º. Depende del sistema operativo: w95/98 son 32kb ,en w2000 2Gb
2º  Cualquiera, pero tienes que poner tu a mano el limite
3º  ni idea
4º  mi consejo es que lo hagas a mano, es decir ir monstrando la parte del fichero que se pueda ver en ese momento, por ejemplo cargandolo poco a poco en un buffer tuyo, y cuando salgas(visualmente hablando) del buffer actual, cargas el buffer con los siguientes datos y sigues. Con controles de Barras horizontales o verticales....

Un saludo                                
Título: **** Los limites de CEdit ****
Publicado por: Antares en 19 de Octubre de 2002, 07:04:32 PM
                                Muchas gracias por tus respuestas nostromo.

Ahora entiendo pq a un colega si le salia todo el texto pq tiene W2000

Si alguien sabe de algun tuto o url de como usar un RtchEditBox sin crearlo como vista principal o porq sale el error de "imposible crear un documento vacio" os lo agradeceria  :oops:

talueego.

Antares                                
Título: **** Los limites de CEdit ****
Publicado por: MChiz en 20 de Octubre de 2002, 09:58:24 PM
                                Hola!
No se si te referiras a lo que te voy a decir; espero que si.
En la funcion InitInstance, añade estas dos lineas:

AfxEnableControlContainer();
AfxInitRichEdit( );

Esto sale en las MSDN, en el help de CRichEditCtrl. Vease:

Important   If you are using a rich edit control in a dialog box (regardless whether your application is SDI, MDI, or dialog-based), you must call AfxInitRichEdit once before the dialog box is displayed. A typical place to call this function is in your program's InitInstance member function. You do not need to call it for each time you display the dialog box, only the first time. You do not have to call AfxInitRichEdit if you are working with CRichEditView.

Espero que sea esto!
Un saludo!                                
Título: **** Los limites de CEdit ****
Publicado por: Antares en 26 de Octubre de 2002, 04:40:06 PM
                                Pues si que era eso :)

Al final lo que he hecho ha sido usar el control RitchText de ActiveX y ahora estoy adaptando el codigo. Pero por curiosidad he probado lo del RichEditCtrl y ahora si me lo abre.

Aunque con mi parco ingles no se si hubiera deducido que tenia que añadir esas dos lineas a la InitInstance, me jode que ya estuviera ahi y no lo hubiera encontrado.

¿Como lo has buscado?

¿Hay algun tuto de como buscar en el MSDN? :P


Gracias                                
Título: **** Los limites de CEdit ****
Publicado por: MChiz en 27 de Octubre de 2002, 01:35:02 PM
                                jajajaja, si hay algun tutorial sobre eso me gustaria saberlo :b
En realidad yo no lo descubri; fue mi jefe, investigando. Yo tenia el mismo problema que tu y el me lo arreglo ;b
Me alegro que te haya ayudado!
Un saludete!                                
Título: **** Los limites de CEdit ****
Publicado por: Antares en 28 de Octubre de 2002, 08:11:45 PM
                                Te devuelvo el saludo (y no por que no lo quiera) :P

Ya comente que al final estaba usando el control Microchoft RichTextBox Control 6.0 y ahora que tenia casi todo el codigo adaptado me he dado cuenta de que si escribo letras ya no me deja usar el Return(Tecla Enter) sin embargo si al abrirlo le doy directamente al enter si añado lineas pero si escribo una sola letra ignora la tecla Enter. Es como si la propiedad want return no estuviese activada pero no encuentro dicha propiedad por ningun lado.

Tambien he pensado en interceptar el evento KeyDown pero no es fiable hacer esto pq no pasa siempre lo mismo y habra ocasiones en las que me meta dos retornos de carro cuando solo se le da una vez al enter.

¿Alguna idea?

Salud2

Antares                                
Título: **** Los limites de CEdit ****
Publicado por: fiero en 28 de Octubre de 2002, 09:03:25 PM
                                Hola,
Si ves que te da problemas el activeX usa el RichEditCtrl que imagino que será más facil de utilizar. Aunque tengas que volver a cambiar el código piensa que todo lo hecho no ha sido inutil, la cuestión es probar y probar, programar y programar, así se aprende... :)

saludos desde por aquí cerca...                                
Título: **** Los limites de CEdit ****
Publicado por: Antares en 29 de Octubre de 2002, 08:18:07 PM
                                Claro que no he perdido el tiempo. Ademas es mi primer control ActiveX que manejo con tanto exito :P por eso me gustaria saberlo y postee la cuestion para que exito fuese completo, asi que si alguien lo sabe... Adelante ;)

Con el RichEditCtrl ya lo he hecho siguiendo tu consejo, solo he modificado 6 lineas y funciona a la perfeccion(De momento claro) porq al final; he prescindido de la lista interna de rutas completas, ahora las monto a partir de los nombres de archivos y carpetas del TreeView  y estoy ajustando el codigo todavia.

Una vez mas gracias a todos, felicidades por el foro a los responsables de mismo y pronto me contestare a mi mismo la tercera pregunta del primer post "¿Cual es el limite de tamaño del RichEdit?

Y a ti fiero; billones de gracias por enseñarme este foro y por asistirme durante un año en la entrada a este inmenso y maravilloso oceano.

----fiero= 8)    
Antares= :loco:

Salud2