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 - raul338

#2691
Cita de: Kasi en  1 Agosto 2009, 16:16 PM
SyncLock Me
    Clientes(IDReal) = InfoClienteActual ' Aqui actualizo los datos nuevos que llegan del cliente...
End SyncLock                                   'pero solo deberia afectar al campo de Ultimos datos recibidos y no al resto..     

Eso lo estas haciendo demas, como te dije, estas sobrescribiendo un puntero, intenta quitar esa linea, cualquier cambio que hagas en el array, es guardado automaticamente (si no lo quieres asi, solo dime y yo te paso el code  ;D)

en lo demas, creo deberia estar bien
#2692
La ayudita de clipto me sirvio, y creo encontrar el error jeje.... y estuve pensando, estamos mal en no tomar en cuenta los parentesis como deberian ser tomados!!!!
Nosotros en matematicas que hacemos si vemos un parentesis, corchetes o llaves???? Primero resolvemos lo que esta dentro y despues continuamos. Asi que, en la pila podria quedar asi
6 + (8 + 3) - (6 * (3 + 2) + 5) * (2 * 10 / 5) + (5 * ((2 * 6) + 2)

Citar1: +6
2: (8 + 3)
3: - (6 * (3 + 2) + 5) * (2 * 10 / 5)
4: (5 * ((2 * 6) + 2)

luego, con un parser que estoy creando, deberia crearse otra pila, asi

Citar1: +6
2: // Una pila dentro de otra pila, medio lioso, pero asi se me ocurrio xD
   2.1: +8
   2.2: +3
3:
   3.1: +6 * (3 + 2) + 5
   3.2: *+(2 * 10 / 5)
4:
   4.1: +5 * (2 * 6)
   4.2: +2

3º vuelta:

Citar1: +6
2: +11
3:
   3.1:
       3.1.1: +6 * (3+2)
       3.1.2: +5
   3.2: *
       3.2.1: +2
       3.2.2: *+10
       3.2.3: /+5
4:
   4.1: +5 * (2 * 6)
       4.1.1: +5
       4.1.2: * (2 * 6)
   4.2: +2
y como siga....
Se entiende lo que quiero hacer??? Ya casi tengo mi expresion regular para detectar ecuaciones ^^, lo que si me va a hacer un poco dificil el tema de la separacion (las vueltas), usare recursividad (no me digan que es mala, eso era en epocas cuando todos tenian 64 mb ram, ahora que todos tienen 512 o mas¿No tienen suficiente memoria para gastarla? :xD)
#2693
Buenisimo!!!!!!!

Espero los demas codigos  :P ;D ;D

Aunque solo un consejo de parte mia, he leido que en .net las API no se deben declarar asi, sino como API manejadas (managed API). Puedes buscar la declaracion .net de las api en www.pinvoke.com tiene para C# y vb.NET ^^

En lo demas, execlente  ;-) ;-) ;-) ;-)
#2694
Una pregunta. Guardas los datos en alguna clase???. Ejemplo, Tienes una clase que se llame "Cliente" y que tenga las propiedades Threads y Sockets???.....

Si es asi tal vez sea tu problema eso, estas usando punteros (si!!! en vb.net existen, se crean automaticamente :E  ;D)

Yo tuve cierto problema cuando usaba pilas y las usaba pasando como parametros a travez de metodos. En un metodo tenia que pasarlo como valor para poder hacer lo que quiera con la copia (la vaciaba y su contenido lo mostraba en un listbox) pero cuando queria usar la original, estaba vacia!!!!  :o :o :o (las 2 clases apuntan a la misma sección de memoria, o sea, un puntero  ::))

Si es asi, tengo un codigo para ayudarte, si es "a medias" asi, puedes implementar una clase y yo te doy un codigo para que puedas "clonarla" y que no se pisen los datos. Y si no es asi, pense cualquier fruta   :xD :laugh: ;D
#2695
esa funcion solo sirve para strings menores a 255 caracteres, pero no temas, es porque usas ASCII, usa las funciones que son para unicoide (creo) que aceptan rangos de hasta 1 millon (creo xD)

Código (vb) [Seleccionar]
Public Function DEncriptStr(ByVal str As String) As String
        Dim int As Int32 = str.Length
        DEncriptStr = Nothing
        For Each x As String In str
            DEncriptStr = DEncriptStr & ChrW(AscW(x) Xor int)
        Next
        Return DEncriptStr
    End Function


funciona ^^, aunque si vas a cifrar algo multilinea mi consejo es que encriptes linea por linea, asi nunca llegaras al limite  :D
#2696
thedoctor77 se usar estructuras de datos.


Lo que no entendia la logica de las pilas. Pero hay un error jeje..... que pasa si yo meto para calcular 6 + (8 + 3) - [6 * (3 + 2) + 5] * (2 * 10 / 5) + (5 * ((2 * 6) + 2)

habria que ordenarlos, xq de la forma que emplea Seu¥ creo que no funcionaria porque no esta ordenada
#2697
Cita de: Seu¥ en 31 Julio 2009, 02:36 AM
Una pila, es simplemente una lista o array.

Es como si tendrías esto:

{'(','1','+','3',')'};

El primer dato a analizar será ')'.

Espero no estar equivocado.

estas bien, y si eso lo se, pero no entiendo la logica de analizar una pila xD
#2698
Cita de: Seu¥ en 31 Julio 2009, 01:58 AM
CitarDividir por terminos (a travez de una o tres expresiones regulares) dividir llaves, corchetes, parentesis; multiplicacion y division; suma y resta

Exacto, solo hace falta saber matemáticas. Comienzas a recorrer la pila, ten en cuenta que el primero es el último, {} luego []  () ... / * ... + y - , y mientras recorres lo resuelves.

No entiendo como lo harias con una pila  :-\
#2699
Cita de: Seu¥ en 31 Julio 2009, 01:46 AM
CitarUna pila (stack en inglés) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que permite almacenar y recuperar datos. Se aplica en multitud de ocasiones en informática debido a su simplicidad y ordenación implícita en la propia estructura.
Representación gráfica de una pila

Para el manejo de los datos se cuenta con dos operaciones básicas: apilar (push), que coloca un objeto en la pila, y su operación inversa, retirar (o desapilar, pop), que retira el último elemento apilado.


A eso me refería.

Entonces si, es la clase generica xD

Cita de: Seu¥ en 31 Julio 2009, 01:46 AM
Citares un reto??? xD

Yo también lo vi de esa manera.

Este tema, lo había analizado en VB, y cobein me recomendó lo de la pila.

Un saludo!
Yo tengo que hacerlo en vb.net (que es en donde lo necesito para el proyecto que estoy haciendo). Pensaba hacerlo de esta manera

1- Dividir por terminos (a travez de una o tres expresiones regulares) dividir llaves, corchetes, parentesis; multiplicacion y division; suma y resta

2 - Analizar las ecuaciones ( yo lo necesito, pero no ecuaciones con X, sino con palabras claves, ej: A200 seria un valor que ya tengo en una tabla)

3 - Resolver la ecuacion mas "baja" (la que se debe resolver primero xD) y de ahi ir subiendo...


se entiende??? xD despues planteo codigo
#2700
depende a que te refieres con "stack" (la clase generica? o a la memoria en si xD, como "heap") si es en la clase, si seria lo mismo a la alternativa que mencione yo.

Cita de: clipto en 31 Julio 2009, 01:39 AM
no se, la verdad primera ves que escucho de stack solo soy un newbie y vi este reto en un foro donde se debia hacer esta calculadora desde cero con las cosas basicas que uno conoce sin ultilizar funciones del lenguaje donde se trabaje & quise hacerlo con las cosas basicas que conocia, pero te propongo que plantees el metodo para analizarlo, y ver como funciona por dentro, y tratar de generar uno igual.

es un reto??? xD yo tengo que hacer uno igual, este me sirve a medias  :P (sin ofender, pero no es lo que busco). A mi se me ocurrio usar expresiones regulares, pero seria muuuy larga la expresion, asi que probare. Igual posteare el codigo