|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - Ithilien
1
« en: Miércoles 20 de Febrero de 2008, 10:56 »
Error.
2
« en: Lunes 26 de Noviembre de 2007, 22:56 »
Has probado a hacer un ShowMessage del contenido de AbrirImagen->Filename? A lo mejor estas intentando cargar un path inválido. En cualquier caso, puedes probar a hacer lo siguiente: pese a que yo he cargado imagenes JPG en TImage ( de hecho, en modo diseño se puede cargar ), puedes coger y convertir a BMP el fichero JPG. Eso si, según el código que presento, si el fichero no es JPG, te levantará una excepción: //Se carga la imagen TJPEGImage *j = new TJPEGImage; j->LoadFromFile( OpenPictureDialogo->FileName ); j->DIBNeeded(); //La asignas a un Bitmap Graphics::TBitmap *b = new Graphics::TBitmap(); b->Assign(j); //Y ese bitmap, lo asignas a la imagen Imagen->Picture->Assign(b);
Creo que debería funcionar. Si no, puedes probar a depurar, porque me parece muy raro que no te cargue la imagen. Lo que podrías hacer es quitar el try catch para darte cuenta de qué es lo que exactamente pasa, o bien capturar la excepción y mostrarla por pantalla. Saludos!
3
« en: Jueves 27 de Septiembre de 2007, 20:10 »
También puedes usar unlink("C:\\archivo.txt")
4
« en: Jueves 27 de Septiembre de 2007, 20:08 »
La función isspace(*p) te devuelve true si *p es un espacio en blanco y false en otro caso ( p es un puntero a char ).
Saludos y espero que te sirva!
5
« en: Sábado 15 de Septiembre de 2007, 11:26 »
Imagino que estas con <fstream.h> . Si es así y tienes un ofstream, puedes añadir al final del fichero con la opción ios::end en el segundo argumento ( me parece ) de la función write.
Saludos!
6
« en: Sábado 15 de Septiembre de 2007, 11:22 »
Por supuesto, solo que tienes que tener en cuenta que de esa manera lo haces estático, esto es, no puede modificar su tamaño.
Te recomiendo, bien que lo hagas dinámicamente con char * cadena = new char[variable] y luego haces deletes y news, o bien, que utilices la clase vector de la stl incluida en ( #include <vector.h> ). Si buscas algún tutorial sobre esa clase verás que es muy sencilla de manejar, intuitiva y bajo mi punto de vista, muy práctica.
Saludos!
7
« en: Martes 11 de Septiembre de 2007, 15:23 »
f.good te devolverá lo mismo que si haces fi.open y luego haces if ( fi ) ....
Por cierto, creo que no va bien el programa porque cuando se lee de fichero, no se tiene \n, sino que se tiene \0. Así deberás comprobar con el caracter '\0'
8
« en: Martes 11 de Septiembre de 2007, 15:19 »
Yo tengo una duda. Las cadenas de caracteres definidas en el propio código, por ejemplo char *cadena = "Hola" tienen, en este caso, 5 caracteres? Es decir, yo pensaba que era solo cuando se leía de fichero usando por ejemplo getline si tenía el '\0' del fin de linea, pero pensé que en punteros a char declarados en el codigo no pasaba eso. Es más, yo tenía la idea de que era solo los string a los que le pasaba eso. Entonces, si se puede, solo hay que hacer dos bucles que, con un puntero auxiliar, p: int contador = 0; p = cadena1; int tope1, tope2; while ( *p != '\0' ){ p++; contador++; } tope1 = contador; p = cadena2; while ( *p != '\0' ){ p++; contador++; } tope2 = contador - tope1; char *concatenada = ( char * ) malloc ( contador * sizeof(char) ); for ( int i = 0; i < tope1; ++i ) concatenada[i] = cadena1[i]; for ( int i = 0; i < tope2; ++i ) concatenada[tope1 + i] = cadena2[i];
Ya solo basta hacer el printf Saludos!
9
« en: Martes 11 de Septiembre de 2007, 15:09 »
De primeras, no sé como no te peta el programa pues los rangos son de 0 a 4 y tú lo haces de 1 a 5. Recuerda que si tienes struct empleado emp[5], va de 0..4, por ejemplo.
Y después, tienes un strcut trabajo que no utilizas en empleado....es algo raro. Usas un vector de trabajos que definiste...deberías revisar el código!
Y respecto a las fechas, vas sobrescribiendolas en cada iteracion del bucle for, ya que solo tienes dos estructuras de este tipo y las machacas en cada iteracion.
Saludos!
10
« en: Jueves 6 de Septiembre de 2007, 19:48 »
Lo que necesito saber es qué parámetro tengo que modificar para que, cuando disponga de "mucho texto" para mostrar en el cuadro deslizante, me aparezca todo. Un ejemplo: Yo tengo 20 noticias. Las pongo en la cabecera de la web y cuando estoy probando en local la página me doy cuenta de que cuando va por la sexta, hay "algo" ( un temporizador imagino ) que hace que empiece de nuevo a mostrarse el texto sin que parezca que realmente es una tira de noticias deslizante y circular que se muestra completamente. Entoces quiero saber donde tengo que tocar para que eso me ocurra y se meustre todo de abajo a arriba sin problema.
No sé si ya me entiendes.
Gracias!
11
« en: Jueves 6 de Septiembre de 2007, 10:22 »
Pero exáctamente dónde? Esque he cambiado el sheight del principio, pero lo que hace es alargar el cuadro visual....
12
« en: Martes 4 de Septiembre de 2007, 19:16 »
Mira la función POW de math.h:
pow(i,j) ---> Eleva i a j-esima potencia
13
« en: Martes 4 de Septiembre de 2007, 17:46 »
De primeras, según veo, haces cont++, pero no j++, con lo que no terminaría nunca el bucle interior, no? Creo que puedes hacer esa función de una manera más limpia y claro, no? Suerte
14
« en: Martes 4 de Septiembre de 2007, 11:44 »
Hola Tanori, lo resolví. Era por un problema de la primera línea, que era diferente respecto de la página donde estaba hecho el menu. Ahora tengo un problema y es que no me me termina de mostrar todo lo que quiero ecribir ( noticias ) y se corta antes de tiempo y vuelve a empezar. Mi código es el siguiente: <script LANGUAGE="JavaScript"> <!-- This script and many more are available free online at --> <!-- The JavaScript Source!! http://javascript.internet.com --> <!-- Begin //slider's width var swidth=105 //slider's height var sheight=150 //slider's speed var sspeed=1 //messages: change to your own; use as many as you'd like; set up Hyperlinks to URLs as you normally do: <a target=... href="... URL ...">..message..</a> var singletext=new Array() singletext[0]='<div align="center"><b><u><font face=Arial size=2 color="Red">En pruebas</font></b></u></div><br>' singletext[0]=singletext[0]+'<div align="left"><font face=Arial size=1 color="Navy"><a href="prueba.htm">Prueba 1....</a></font></div>' if (singletext.length>1) i=1 else i=0 function start(){ if (document.all){ ieslider1.style.top=sheight iemarquee(ieslider1) } else if (document.layers){ document.ns4slider.document.ns4slider1.top=sheight document.ns4slider.document.ns4slider1.visibility='show' ns4marquee(document.ns4slider.document.ns4slider1) } else if (document.getElementById&&!document.all){ document.getElementById('ns6slider1').style.top=sheight ns6marquee(document.getElementById('ns6slider1')) } } function iemarquee(whichdiv){ iediv=eval(whichdiv) if (iediv.style.pixelTop>0&&iediv.style.pixelTop<=sspeed){ iediv.style.pixelTop=0 setTimeout("iemarquee(iediv)",100) } if (iediv.style.pixelTop>=sheight*-1){ iediv.style.pixelTop-=sspeed setTimeout("iemarquee(iediv)",100) } else{ iediv.style.pixelTop=sheight iediv.innerHTML=singletext[i] if (i==singletext.length-1) i=0 else i++ } } function ns4marquee(whichlayer){ ns4layer=eval(whichlayer) if (ns4layer.top>0&&ns4layer.top<=sspeed){ ns4layer.top=0 setTimeout("ns4marquee(ns4layer)",100) } if (ns4layer.top>=sheight*-1){ ns4layer.top-=sspeed setTimeout("ns4marquee(ns4layer)",100) } else{ ns4layer.top=sheight ns4layer.document.write(singletext[i]) ns4layer.document.close() if (i==singletext.length-1) i=0 else i++ } } function ns6marquee(whichdiv){ ns6div=eval(whichdiv) if (parseInt(ns6div.style.top)>0&&parseInt(ns6div.style.top)<=sspeed){ ns6div.style.top=0 setTimeout("ns6marquee(ns6div)",100) } if (parseInt(ns6div.style.top)>=sheight*-1){ ns6div.style.top=parseInt(ns6div.style.top)-sspeed setTimeout("ns6marquee(ns6div)",100) } else{ ns6div.style.top=sheight ns6div.innerHTML=singletext[i] if (i==singletext.length-1) i=0 else i++ } } // End --> </script>
Y en el body: <!-- STEP THREE: Copy this code into the BODY of your HTML document --> <div align="center"> <span style="borderWidth:0; borderColor:black; width:105; height:150; background:#F0F3FF"> <ilayer id="ns4slider" width="&{swidth};" height="&{sheight};"> <layer id="ns4slider1" height="&{sheight};" onmouseover="sspeed=0;" onmouseout="sspeed=1"> <script language="JavaScript"> if (document.layers) document.write(singletext[0]) </script> </layer> </ilayer> <script language="JavaScript"> if (document.all){ document.writeln('<div style="position:relative;overflow:hidden;width:'+swidth+';height:'+sheight+';clip:rect(0 '+swidth+' '+sheight+' 0);border:1 solid black;" onmouseover="sspeed=0;" onmouseout="sspeed=1">') document.writeln('<div id="ieslider1" style="position:relative;width:'+swidth+';">') document.write(singletext[0]) document.writeln('</div></div>') } if(document.getElementById&&!document.all){ document.writeln('<div style="position:relative;overflow:hidden;width:'+swidth+';height:'+sheight+';clip:rect(0 '+swidth+' '+sheight+' 0);border:1px solid black;" onmouseover="sspeed=0;" onmouseout="sspeed=1">') document.writeln('<div id="ns6slider1" style="position:relative;width:'+swidth+';">') document.write(singletext[0]) document.writeln('</div></div>') } </script> </span> </div><br>
También me ocurre que cuando la primera línea escrita llega arriba del todo, todo el texto comienza a subir un poco más rápido. A ver si alguien pudiera mostarme qué falla y como solucionarlo. Gracias.!
15
« en: Lunes 3 de Septiembre de 2007, 12:17 »
Hola, soy nuevo en JavaScript y estoy intentando agregar a una página web una tabla en la que van apareciendo noticias de abajo a arriba. El modelo lo tengo de una prueba que se hizo hace un par de años y estoy tratando de integrarla. El problema es que me parece la tabla, las noticias que quiero que salgan pero sin moverse. No pasa nada y no sé por qué es.
En el código fuente que me han facilitado he quitado todo a excepción de la tabla con las noticias y funciona a la perfección así que no sé qué pasa.
Alguna sugerencia? Gracias de antemano!
16
« en: Sábado 1 de Septiembre de 2007, 11:07 »
Respecto a la cuarta pregunta, yo diría, pero no estoy muy seguro, que cuando se lee desde teclado, el último carácter leido ( es decir, de final de línea ) es el '\n'. Sin embargo, cuando se lee desde fichero, una línea acaba con '\0' ( al hacer getline y almacenarlo en buffer seguro ).
Sobre la pregunta 3, yo diría que depende del tipo de matriz y depende de como lo almacenes. Si la matriz tiene celdas de char * , entonces puedes almacenar una palabra en una celda. Si no, si la matriz tiene celdas de char, obviamente cada caracter irá en una celda.
Saludos!
17
« en: Sábado 1 de Septiembre de 2007, 11:00 »
Hola, he estado buscado mucho pero no encuentro ( si es que existe ) las propiedades necesarias para diseñar algo similar a un TBitBtn de manera que por ejemplo, la imagen que inserte en el campo glyph sea lo que aparezca en el propio botón. Digo esto porque sé que en JBuilder se puede hacer quitando los bordes del Boton y dejando solo la imagen. Por lo tanto, es posible hacerlo aquí?
Saludos!
18
« en: Martes 28 de Agosto de 2007, 14:38 »
Yo creo que es porque tienes que reservar el espacio con ( char *)malloc( longitud * sizeof(char)).
Al haber puesto las variables con un valor, en tiempo de ejecución el compilador reserva memoria. Sin embargo, cuando lee de un fichero, no es así. Por lo tanto, deberás reservar la memoria ( y luego free(...) ). Y siempre reserva uno o dos caracteres más para los \0.
Suerte!
P.D.: Espero no haber metido la pata con lo de conocer en tiempo de ejecución el tamaño. SI alguien sabe la respuesta correcta, por favor, lo diga, gracias!
19
« en: Martes 28 de Agosto de 2007, 14:33 »
También puedes usar MAX_INT de math.h como infinito.
P.D.: Ya no recuerdo si era MAX_INT o INT_MAX.
Suerte!
20
« en: Domingo 26 de Agosto de 2007, 18:45 »
Ya terminé el programa, pero quisiera saber Altareum como lo hiciste. Por favor, cuando tengas un momento me gustaría que me explicaras. Gracias!
21
« en: Domingo 26 de Agosto de 2007, 17:25 »
Lo que puedes hacer, por ejemplo, es hacer un recorrido en preorden y eliminar los nodos cuyos punteros a hijos sean null. Si no quieres hacerlo recursivo porque no puedas, yo hice una vez un recorrido en preorden, iterativo, usando pilas ( de la stl para c++ ).
Saludos!
22
« en: Lunes 20 de Agosto de 2007, 20:08 »
Gracias
23
« en: Lunes 20 de Agosto de 2007, 18:04 »
A mi me gustaría añadir dos cosas: La primera: Usar un FOR no tiene por qué ser malo en tantoen cuanto uses una variable booleana que controle la salida cuando encuentres o hagas todo lo que tengas que hacer: for ( int i = 0; i < n && !encontrado;++i ) { ... if ( condicion ) encontrado = true; ... }
Yo uso más bien eso en vez de WHILE. Sin embargo, cada cual elige lo que le resulta más fácil. La segunda: SObre depuradores no estoy muy puesto y siempre recurro al printf("llega\n") o cout << "llega\n" ; que es un poco feo...Eternal Idol, puedes facilitarme algún tutorial? Y, en que programa lo depuras? Gracias de antemano.
24
« en: Domingo 19 de Agosto de 2007, 23:09 »
Simplemente brillante. Gracias!
25
« en: Viernes 17 de Agosto de 2007, 10:14 »
Madre mía! Me parece increible...bueno, como nota positiva, todos los días se aprende algo, ¡y vaya qué algo! Te doy las gracias por molestarte en mirar el código, pero pudiste ver como, el código parece correcto y un error te dejaa  ... De nuevo gracias!
|
|
|