Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Lopardo

#11
Hola a todos,

Les explico lo que quiero hacer, estoy tratando de modificar el comportamiento de una aplicación para que ésta realice sus funciones de forma concurrente. Esta aplicación sirve para programar soluciones híbridas donde se combina la programación web con la programación de aplicaciones de escritorio, es como una especie de navegador web, que permite que programen sus funciones básicas.

Les explico un poco su funcionamiento para que puedan ayudarme en lo que quiero hacer. Esta aplicación esta compuesta de un WebBrowser en el cual se muestra la solución que se desarrolle, su comportamiento es similar al de un sitio web, hasta el momento que esta se comunica con código de vb.net, c#, etc. por ejemplo, si se presiona en un botón y éste llama a una función desarrollada en vb.net, no se puede presionar en otro enlace de la web porque el hilo principal esta ocupado, entonces, para evitar esto lo que hice fue que al pisar en algún botón, se crea un nuevo hilo para que este se encargue de realizar la tarea, todo funciona muy bien, sin embargo, cuando empleo las funciones que trae la aplicación para crear gráficas, me permite hacerlo varias veces y después no funciona correctamente. Lo que he pensado es que tal vez los controles empleados para crear las gráficas fueron inicializados por el hilo principal y cuando se intentan utilizar por otros hilos da problema, lo extraño es que funciona 100% si se ejecuta con el hilo principal de la aplicación, cosa que no quiero hacer porque la creación de estas gráficas dura cierto tiempo y todo quedaría en espera que se libere el hilo.

No se si exista alguna manera para ejecutar funciones almacenadas en dll y que ésta piense de alguna manera que el hilo que la este ejecutando fue el mismo que la inicializó.  O dividir el hilo principal en sub procesos para que realicen tareas diversas concurrentemente.

Bueno cualquier idea es bienvenida, gracias por su ayuda.
#12
Muchas gracias, es lo que estaba buscando, no sabía que existía una herramienta como esta.
#13
Hola a todos, les explico lo que quiero hacer, estoy programando en vb.net usando una plataforma desarrollada por la empresa donde laboro, es algo similar a visual studio, pero menos avanzado, lo que ocurre es que tiene muchas restricciones, por ejemplo, si quieres crear una funcion, te da la opción para crearla y entonces el la introduce en la clase que corresponde y la ejecuta segun lo que se le indique, pero quiero programar algo donde necesito saber el contenido de esta clase donde se coloca la función, entonces, me pregunto, como puedo sabes los campos, funciones o procedimientos que esta clase posee desde una función que pertenezca a esta clase..

Es un poco complicado explicarlo, pero en sintesis lo que quiero hacer es conocer todas las variables que tiene una clase y sus funciones, apartir de una funcion de esta, por ejemplo,

Se tiene la siguiente clase

Código (csharp) [Seleccionar]
Class MiClase
 Dim var1 as String
 Dim var2 as String

 Function func1() as String
   ...
 end Function

 Function LeerContenido() as String
    'Esta es la funcion que quiero que lea el contenido de esta clase, que por
    'ejemplo me diga que la clase tiene las variables, var1 y var2 y la funcion func1
 end Function
end Class


Nota de D4N93R: Recuerda utilizar Geshi en tus posts con código!

Eso es lo que quiero hacer, esto es debido a que existen variables globales de la aplicacion que no tengo conocimiento de sus nombres y de saberlos podría hacer cosas que ahora se me hacen muy complejas..

Cualquier idea o sugerencia al respecto es bien recibida. Gracias
#14
Java / Leyendo imagen de formato .pgm
18 Marzo 2009, 04:14 AM
Hola a todos.

Tengo un problema cuando leo una imagen .pgm (también me ha pasado con otros formatos). Lo que quiero hacer es conocer todos los niveles de gris de la imagen.

La estructura de las imágenes .pgm es la siguiente:

Primera Línea: Una cadena mágica que identifica el tipo de formato, puede ser:

1. P2: Los píxeles están en formato ASCII (entre 0 y 255).

2. P5: Los píxeles están en formato Binario (cada píxel viene expresada en un byte).

nota: Apartir de aquí se puede colocar comentarios usando #.

Segunda Línea: Dos números enteros separados por un espacio en blanco (Ancho y Alto)

Tercera Línea: Un número entero que indica la máxima cantidad de niveles de grises que soporta la imagen. Generalmente es 255 que indica el máximo espectro de niveles de grises.

Apartir de aquí viene la imagen de acuerdo al formato especificado en la primera línea.

Si la cadena mágica es P2, viene una serie de números enteros separados por un espacio en blanco.

Ejemplo, si los valores que aparecen son:

64 40 230...

Si la cadena mágica es P5, viene una serie de bytes.

Ejemplo, si los bytes que aparecen son:

ACD...

En este  caso aparece el carácter A, que corresponde al valor ASCII 65 que será el valor del nivel de gris del primer píxel, el carácter C, le corresponde el valor ASCII 67 que será el nivel de gris del segundo píxel, etc.


El problema es que cuando comienzo a leer los bytes que forman parte de la imagen, hay valores que superan a 255 que son los 8 bits que corresponden a cada pixel, entonces la imagen al imprimirla en pantalla se ve mal.

El código es como sigue:

   //DATOS DE LA IMAGEN

//P2: Los valores de los píxeles vienen en formato ASCII (es decir como cifras numéricas enteras entre 0 y 255).
//P5: Los valores de los píxeles vienen en formato Binario (es decir la información de cada píxel viene expresada en un byte).
String cadenaMagica;

//Indica las dimensiones de la imagen. Ancho y alto.
String dimensiones[] = new String[2];

//Indica el valor máximo del nivel de gris.
String nivelGris;

//Representación de toda la imagen.
String imagen;

public void leer()
{
try
{
BufferedReader archivo = new BufferedReader(new FileReader(new File("1.pgm")));

cadenaMagica = archivo.readLine();
System.out.println ("Cadena Magica: "+cadenaMagica);


dimensiones = archivo.readLine().split(" ");
System.out.println ("Ancho: "+dimensiones[0]+" Alto: "+dimensiones[1]);

nivelGris = archivo.readLine();
imagen = " ";

String str = archivo.readLine();

while(str!=null)
{
imagen +=str;
str = archivo.readLine();
}
}catch(Exception exc)
{
System.out.println ("Error leyendo archivo");
}
}


Para mostar la imagen hago lo siguiente, recorro el String imagen y lo voy convirtiendo al ASCII correspondiente:


         

int nivel = 0;
for(int i=0 ; i<alto ; i++)
{
  for(int j=0 ; j<ancho ; j++)
{
    nivel = ((int)imagen.charAt(i*ancho+j));

    //Esto lo hago por el error para que sea un valor comprendido entre 0-255
    //No debería pasar esto.
    if(nivel>255)
    {
nivel = 255;
    }

    g.setColor(new Color(nivel,nivel,nivel));
    g.drawOval(iniX+j,iniY+i,1,1);
}
}


Espero su ayuda.

Gracias.

Saludos
#15
Java / Re: ejecutar matlab en applet de java?????
3 Septiembre 2008, 02:55 AM
Hola, podrías explicar un poco mejor lo que has hecho inicialmente con Java y Matlab y lo que quieres hacer ahora... talvez así podamos ayudarte mejor..

de todas formas Google lo sabe todo:

http://www.google.co.ve/search?hl=es&q=link+java+matlab&btnG=Buscar+con+Google&meta=
#16
Java / Re: me conviene estudiar AWT?
3 Septiembre 2008, 02:43 AM
Hola, tanto awt como swing son paquetes que se utilizan en conjunto, por ejemplo a la hora de implementar los eventos en una interfaz, estos son manejados por las clases del paquete java.awt.event.* lo que te llevaría a conocerlos, aunque sea un poco... mas aun cuando se trata de programar algún applet.

Ademas de todo esto recuerda que muchas de las clases que vienen en el paquete swing extienden de las que vienen en el paquete awt... me explico mejor.. por ejemplo:

La clase JFrame extiende de Frame, donde JFrame pertenece al paquete swing y Frame al paquete awt. así ocurre con muchas clases.. podría considerarse entonces que el paquete swing es una mejora en cierto aspecto del paquete awt en algunas de sus clases, ya que, esta posee clases que no vienen en el paquete awt, ejemplo de esto sería el conjunto de clases que se encuentran en javax.swing.event.*, las cuales pueden ser utilizadas para manejar eventos, pero no todo tipo, por lo tanto nace la necesidad de hacer uso del paquete awt.

En resumen. estudia AWT recuerda que nunca es malo saber de más.

saludos.
#17
Java / Re: compiladores
1 Septiembre 2008, 19:51 PM
Bueno para mi que tengo una pc no muy rápida (Muy lenta) uso el JCreator, he instalado el NetBeans y el Eclipse, pero me cooren medio lento, así que mi recomendación es que uses uno que este acorde con tu ordenador, lo bueno de estos dos últimos es que son fenomenal a la hora de hacer interfaces gráficas.

Saludos
#18
Bueno entiendo lo que me dicen pero recuerden que si le mando al ms-dos "dir\n" eso no cambiaría de línea, en Java el "\n" si ocaciona un salto de línea pero en ms-dos como se representa esto?, aun no se. Es decir según lo que se ha dicho hasta ahora el problema sería que al mandarle los comandos al ms-dos este solo los recibe pero no los interpreta ya que no se presiona enter, bueno algo asi. Ahora el problema es como mandarle el comando en conjunto con algún caracter que éste entienda como un "enter". Bueno espero me puedan ayudar.

Nota: intente mandarle "dir\n" pero el resultado era el mismo, es como que no asimila el comando por lo tanto no hace nada.

Saludos.
#19
Disculpa pero no entiendo bien lo que me planteas.

Bueno te explico lo que entiendo, me dices que en vez de mandar los parámetros directamente a la aplicación en ejecución, lo envie a un fichero de texto y luego copio lo que tiene este y abra un intérprete de mandatos osea el ms-dos y pegue allí lo que tiene el fichero... Bueno en caso que sea asi, si el fichero de texto tiene el comando "dir" y lo pego en el ms-dos, este me mostrará el contenido del directorio actual. Osea no entiendo bien lo que me dijiste, me gustaría que me explicaras nuevamente... disculpa la molestia..

Nota: los comandos se los quiero mandar de uno en uno al ms-dos.

Gracias.

Saludos.
#20
Que pasa...

Bueno cuando ejecuto el código muetra la salida del programa  pero cuando intento mandarle algun parámetro no hace nada, como si no lo recibiera, no se porque ocurre eso, es decir, si cuando ejecuto el proceso le mando el comando todo sale bien, pero cuando intento ejecutar otro comando en este mismo proceso en ejecución no sucede nada, no se lo que esta ocurriendo.

Escribir en un fichero...

Bueno no entiendo bien esta pregunta pero si te refieres a si puedo escribir en un archivo común y corriente alguna información, eso si puedo hacerlo pero lo haría de otra manera con un método de esta manera:

 
public void escribir()
    {
    try
    {
    BufferedWriter sc = new BufferedWriter(new FileWriter("fichero.exe"));
    sc.write("Escribiendo a fichero.");
    sc.close();
   
}
catch (Exception ex)
{
System.out.println ("Error método escribir");
}
    }


Probar en un interprete de mandatos...

Bueno si te refieres al ms-dos, alli funcionan todos los comandos que quiero ejecutar. ya que lo que quiero hacer es una aplicación que haga uso del ms-dos u otro programa que se ejecute bajo ms-dos para lograr mandarle los comandos desde mi aplicacion en Java.

Bueno espero haber respondido todas tus preguntas... Espero su ayuda en esto.

Gracias.

Saludos