• Jueves 16 de Mayo de 2024, 21:48

Mostrar Mensajes

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 - QliX=D!

Páginas: 1 ... 6 7 [8] 9
176
Dudas informáticas / Re: Programacion En V Basic
« en: Martes 20 de Enero de 2004, 15:49 »
Che man!, te comiste la duda? :S :P  :blink:

177
Visual Basic 6.0 e inferiores / Re: Apis
« en: Martes 20 de Enero de 2004, 15:48 »
Cita de: "jorge.adell"
Ya que estamos. explicanos cual seria la diferencia.

Jorge.
Ok :D
Presten atencion!  :smartass:  :P

Ahora hablando enserio:
La API es un conjunto de funciones (U objetos) que forman una Application Program Interface la cual te "da" funciones (U objetos) y servicios los cuales vos podes utilizar para hacer "Algo", ese algo depende de la API en cuestion, por ejemplo:
La API DirectX te da la posibilidad de hjacer todo el tema de tratamiento de imagenes y sonido y dispositivos de entrada y red orietado a los juegos.
La API de ViaVoice te da la posibilidad de reconocer patrones de habla y comandos en el reconocimiento de voz, o sea podes aplicar reconocimiento de voz a tu aplicacion.
La API de Windows te da una serie de servicios para interactuar con el sistema operativo, ofreciendote servicios de impresion, de red,  etc, con grupos de funciones y tipos de datos.

Eso es una API.

Una API esta compuesta de funciones (agrupadas generalmente por "servicios").
Una Funcion de una API te da la funcionalidad requerida para un servicio de esa API, o parte del servicio, por ejemplo:

'Para la conexion Del Recurso Compartido.
Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long

Esa funcion es parte de los servicios de NetBIOS de Windows y dá la funcionalidad de poder Conectarse a un recurso compartido.
Claro que hay mas funciones sobre este Servicio en particular de la API que permiten desconectarse, verificar la conexion, compartir un recurso, etc....

Por lo tanto eso es UNA FUNCION de la API, NO UNA API.


Espero que quede clara la "definicion".

Slds :D
 :alien:
  :comp:  :hola:

178
C/C++ / Re: Datos Demasiados Grandes
« en: Martes 20 de Enero de 2004, 15:36 »
O usar alguna libreria para numeros grandes, hay varias dando Vueltas por la net.

179
C/C++ / Re: Programas Ejemplo
« en: Lunes 19 de Enero de 2004, 16:15 »
Cita de: "chuidiang"
La parte standard de C++ es bastante limitada, se pueden hacer pocas cosas con ellas, pero te aconsejo que la aprendas para saber qué cosas son standard de C++ y cuales no. Te vale cualquier libro o tutorial que hable de C++ en general, sin particularizar para un entorno.

Luego tienes montones de entornos de desarrollo, que añaden montones de cosas propias que no son standard. En windows tienes visual c++, c++ builder, etc. En linux tienes gratuitos anjuta y kdevelop

Si quieres seguir en linux puedes hacerlo.
Linux viene con c++, el compilador se llama g++ y se usa desde una shell ( o bash) . Editas tus ficheros c++ con el vi, el emacs o cualquier editor de linux, compilas desde una shell con
Código: Text
  1.  
  2. $ g++ fichero.cc -o fichero
  3.  
  4.  

y lo ejecutas

Código: Text
  1.  
  2. $ ./fichero
  3.  
  4.  

Si quieres ventanas y un entorno de desarrollo más completo, tienen anjuta para gnome y kdevelop para kde (depende del entorno de ventanas que uses). Creo que ambos son gratuitos.

Se bueno.
La parte estandar de C++ limitada?.
Leiste el libro : El lenguaje de programacion C++ de el SEÑOR Bjarne Stroustrup (http://www.research.att.com/~bs/homepage.html) si no deberias.
Las STL incluidas en el estandar c++ te dan demasiadas cosas que necesitas como ser listas, vectores, contenedores asociativos, etc, etc...
No me parece limitado.. al contrario, es bastante extenso dentro de lo Base qeu se puede llegar a hacer en un lenguaje multiplataforma como es C++.

slds

180
C/C++ / Re: Un Tema Peliagudo (visual C++ .net)
« en: Lunes 19 de Enero de 2004, 16:06 »
Cita de: "shephiroth"
Buenas. Estoy con un trabajo personal y me gustarían me orientasen que camino he de tratar para conectar dos programas por medio de sockets. Nunca los he usado y me gustaría me dieran un poco de su tiempo. Librerias necesarias, primeros pasos, algunos ejemplos, paginas donde traten el tema (a poder ser en español), etc...cualquier cosilla por pequeña que sea me será de ayuda


GRACIAS.
Para los sockets, depende de que SO uses, pero basicamente necesitas para windows (calculo que estas en esta plataforma no lo se...) incluir la libreria winsock2.h a tu proyecto o usar algunobjeto de la libreria del ATL o MFC de sockets (que tambien los hay)

Si agregas el winsock2.h tendiras que hacer esto:

Para inicializar los sockets tenes que usar WSAStartup y para cuando la aplicacion termina WSACleanup.
Con eso te aseguras que el socket quede bien habilitado y deshabilitado en windows (solo windows necesita esas PORQUERIAS de funciones :P)

ahora luego tenes las funciones connect, disconnect, close, read, write para manejarte con el socket.

Disconnect se usa para poder hacer un "GRACEFULLY CLOSE" de la conexion.
QUE ES ESTO?
Bueno es cuando vos haces el 3 handshake que necesita el TCP para cerrar los enlaces.
primeramente "Desconectas" TU socket para la transmision, con eso le "indicas" al otro lado que terminaste de enviarle datos, entonces el otro lado hace lo mismo, y luego vos desconectas la "recepcion" de los datos con lo cual queda "desconectado el socket", pero no cerrado, para cerrarlo ahora tendrias que usar close.

Una vez conectado, con read y write podes escribit /leer del socket en cuestion, si vos queres que tu aplicacion sea "asincronica" o sea, que puedas hacer otras cosas mientras que estas esperando la recepcion de los datos vas a tener qeu usar select.
select lo que hace es "avisarte" cuando hay datos disponibles en el buffer del socket para leer.
Con solo hacer una consulta con select podras saber si tenes que leer o no datos,.
Generalmente se pone en el bucle principal del programa en la parte de conexion.

Ahora si te vas a manejar por "transacciones" no hace falta esto, solo envias y esperas la recepcion de datos y luego continuas hasta que tengas que hacer la siguiente transaccion.

Bueno esot es solo una "intro"...
Aca tenes un "tutorial" de como usar los sockets : http://www.buanzo.com.ar/articulos.html

slds

181
C/C++ / Re: TAD
« en: Lunes 19 de Enero de 2004, 15:52 »
Cita de: "Nagisa"
Hola!!La verdad es que esa duda tb la tenia yo, asi que me ha venido bien la contestacion. Solo tengo un par de dudas sobre esto:

La primera es: debo de poner en el .h todos los tipos, o puedo poner parte de ellos en el .c (para conseguir mayor ocultacion, que al fin y al cabo es de lo que van los TADs) ???

La segunda es: con que opciones se compilan los archivos y en que orden??

Uso el gcc bajo un PIV con WXP. Para compìlar normalmente uso gcc -c fichero.c , pero al compilar el .h me pone:

gcc: compilation of header file requested


Sobre el .c , solo me compila si comento las directivas de preprocesador #if_not_define y #end_if que deciais que habia que poner. De todos modos el .h no me compila (con o sin ellas).

A que se debe?? Me siento un poco...  :alien:

Muchas gracias por adelantado
La primera:
No, solo los que necesites para usar desde "afuera" de tu TAD, Todos los tipos que sean de uso "interno" al tad, van al .c

Se compila como siempre el .c sin nada especial con gcc seria:

gcc -c -Wall -O2 lista.c -I. -L. (resto de los includes y librerias y bla bla)

Y listo :D
El .h no se compila, se usa luego para ver las definiciones de tu .c en otros archivos del proyecto a traves de los includes.

ahora el #ifndef #endif que decis que necesitas poner es para evitar "inclusion recursiva" y "doble inclusion" de los archivos .h en un proyecto donde varias veces se use el .h en cuestion, a veces las declaraciones se superponene en un mismo ambite y salen problemas de "definition duplicated" o cosas por el estilo indicando comoq eu las funciones y/o vatraibles  y/o tipos de datos son declarados dos veces.

slds.

182
C/C++ / Re: TAD
« en: Lunes 19 de Enero de 2004, 15:48 »
Cita de: "T-Mac"
HOLA !!!! soy nuevo en este foro, y tambien el el leguaje C

weno, quiero pedir ayuda, para una practica q tengo q entregar sobre TADs
y la verdadm no tengo ni idea...

weno lo q tengo q hacer es:

un programa en c q me permita "hacer un lista de alumnos matriculados en varios seminarios organizado la Facultad de fisica, dicha lista contiene los datos personales del alumno (nombre,apallidos y DNI) y el seminario en el q esta matriculado y estara implementada en una lista simplemente enlazada usando los codigos disponibles para este TAD.
se trata de realizar un programa q parmita procesar los siguientes:
* introducir elementos en la lista
* Borrar un alumno de la lista dado su DNI
* Listar todos los alumnos matriculados en un determinado seminario
*introducir elementos en la lista de forma ordenada, utilizando como indice el DNI (opcional)"

esto es todo, espero q alguien me pueda ayudar, por q stoy desesperado

 :(  , gracias y un saludo a to2
No me parece logico que te tengamos que solucionar el problema aca, por que en la forma en que lo escribis pareceria que pretendes qeu te hagamos el codigo y lo pongamos aca, si se supone que estas estudiadno estudie y resuelvalo como todo un señor!.
Ahora si queres una mano, si, pero si no tenes ni la mas remota idea de nada, te diria que estes mas metido en las clases para poder comprender los conceptos.

Pregunta puntual y la contesto sin problemas :D

slds.

183
C/C++ / Re: TAD
« en: Lunes 19 de Enero de 2004, 15:43 »
Cita de: "© Jonathan ©"
Creo haber entendido, es algo similar a una libreria dinamica (DLL).
   Si necesitas elaborar una libreria yo te puedo ayudar. Bueno, con la ayuda que aporto mabrev espero hallas eliminado tus dudas. Saludos  :hola:
No, no es ni remotamente parecido.
un TAD es una estructura funcional basica de programacion como lo son las listas, pilas, colas, etc, en si, son tipos como el int, char, etc, pero que hacen mas referencia a tipos estructurados como un nodo de una lista, y esas cosas.

184
Visual Basic 6.0 e inferiores / Re: Error En Filtrado De Datos
« en: Lunes 19 de Enero de 2004, 15:39 »
No podes usar para guaradar un campo TEXT un valor numerico y dps pretender usar as operaciones control numerico como mayor, menor o igual que.
Lamentablemente con esa definicion de campo no vas a poder comparar si es mayop o menor, porq ue en caso de campos text, revisa la longitud.
O sea la DB y VB no son tan inteligente como para saber que corchos pretendes hacer vos con eso y compara las longitudes de las cadenas.
Tenes que poner ese campo como Numerico o usar otro tipo de algoritmo para buscarlo...


Algo BASE, es que si pretendes usar comparaciones para evaluar el contenido de un numero OBVIAMENTE no lo podes almacenar como cadena de texto, a aprte de que un numero como cadena de texto puede ocupar mas que un numero como entero o como float.

Es logico que no funcione stu "filtrado" por que esta mal hecho todo el sistema desde la base....
sorry por ser el portador de tan negras noticias...
 <_<

185
Visual Basic 6.0 e inferiores / Re: Apis
« en: Lunes 19 de Enero de 2004, 15:35 »
Cita de: "jorge.adell"
http://www.allapi.net.
Esta en ingles pero te podes bajar todas las api con sus ejemplos.
Es qeu eso da ejemplos de TODAS las funciones DE LA API DE WINDOWS (Win32)
No TODAS Las APIs... o sea.. TODAS LAS APIs no tiene sentido, ya que hay miles.

O sea, no confundamos el termino API con la FUNCION de una API.

slds :D

186
Usa el control msinfo.ocx

187
Visual Basic 6.0 e inferiores / Re: Aplicaciones Servidor - Cliente
« en: Lunes 19 de Enero de 2004, 15:29 »
eh?, podrias ser mas claro?
eso con un par de winsock y unas apps de cada lado se soluciona, no se cual es el rollo?.
O sea.. lee un poco de winsock e ideate el cliente/Servidor que necesitas.
O sea... que se supone que hay que escribvirte todo el codigo aca para uqe lo hagas?.
 :blink:

No es dificil, en las apps pones un par de timers y monitoreas el sistema.. de verdad que no entiend el problema, me parece que estan mal acostumbrados a recibir codigo en bandeja....  <_<

en fin...


slds. :comp:

188
Visual Basic 6.0 e inferiores / Re: Alguien Me Ayuda?
« en: Lunes 19 de Enero de 2004, 15:26 »
Cita de: "makisone"
hola a todos, es la primera vez que dejo aqui un mensaje y espero que me le respondan. Bueno, mi duda es la siguiente. Hice un programa que utiliza el winsock, una parte es el cliente y la otra el servidor. Cuando pruebo  en mi ordenador que se conecte funciona perfectamente, pero por ejemplo si el servidor se lo paso a alguien e intento conectarme a el no se me conecta, y estoy seguro de que el codigo esta perfecto y no tiene ningun fallo.

¿Alguien me podria decir que pasa? Gracias

A se me olvidaba, he subido al servidor unos buenos manuales de visual basic, mas bien estan orientados a personas que estan empezando en el mundo de la programacion.

gracias

saludos
Calculo que no sera que tenes hardcodeada la direccion 127.0.0.1 en el cliente  para conectarte no?.

Si el tipo no esta en la misam red que vos:
Si tu proveedor de inet tiene un proxy no vas apoder conectarte correctamente nunca, lo mismo pasa si el tiene un proxy en el proveedor.

slds.

189
Visual Basic 6.0 e inferiores / Re: Leer Un Txt
« en: Lunes 19 de Enero de 2004, 15:22 »
Cita de: "Bopo"
Cita de: "Bopo"
Cita de: "Brroz"
Hola Bopo.

Aquí tienes un ejemplo que mostraría uno a uno todos los registros de un archivo.

Código: Text
  1.  
  2. Private Sub Leer()
  3.   On Error Goto Err_Lectura
  4.   Dim intCanal as integer
  5.   intCanal = FreeFile
  6.   Open "C:\Ruta\Archivo.xxx" For Input As intCanal
  7.   Dim strRcd as String, intCta as integer
  8.   Do Until EOF(intCanal)
  9.        intCta = intCta + 1
  10.        Line Input #intCanal, strRcd
  11.        MsgBox strRcd,vbInformation,"Registro " & intcta
  12.   Loop
  13. Exit_Lectura:
  14.   On Local Error Resume Next
  15.   Close #intCanal
  16.   Exit Sub
  17. Err_Lectura:
  18.   MsgBox Err.Description
  19.   Resume Exit_Lectura
  20. End Sub
  21.  
  22.  

Suerte.
y como hago que me lea una linea definida :huh:
ya descubrri como:

a
Line Input #intCanal, strRcd

le agregue

Line Input #intCanal, strRcd1
Line Input #intCanal, strRcd2
Line Input #intCanal, strRcd

Asi me lee al tercera, pero habra alguna forma que poner el numerod e al linea?
No porq ue estas usando acceso secuencial al archivo para hacer loq eu vos queres deberias tener definia la longitud de las lineas y usar acceso random y calcular la cantidad de bytes en base a la longitud de la linea * la cantidad de lineas a moverte.

190
Visual Basic 6.0 e inferiores / Re: Deshabilitar Una Tecla
« en: Lunes 19 de Enero de 2004, 15:15 »
No, desde VB no se puede (no directamente y puramente) y menos desde la BIOS.
Para deshabilitar la tecla tenes que ver los drivers del teclado, esos teclados vienen con soft y drivers que te dejan habilitar/Deshabilitar esas teclas (junto con otras) para que no funcionen.

Si deshabilitas de la bios, deshabilitas la funcion no la tecla.
me explico?.
slds.

191
Visual Basic 6.0 e inferiores / Re: Temperatura Del Procesador
« en: Lunes 19 de Enero de 2004, 15:12 »
El control msinfo.ocx tiene para obtener la temperatura si mal no recuerdo.
No todo son interrupciones, y menos en windows!  :comp:  :hola:

192
Visual Basic 6.0 e inferiores / Re: Urgente Saber Sendmail
« en: Lunes 19 de Enero de 2004, 15:07 »
Usa los controles activex que hay para el envio del mail... mmm.. en este momento no me acuerdo el nombre, pero los podes usar para enviarte el mail.

193
Visual Basic 6.0 e inferiores / Re: Para Brroz
« en: Viernes 16 de Enero de 2004, 17:01 »
La propiedad disablenoscroll es la que controla si aparecen o no las scrollbars, cambiale el estado y listo. :D
Para configurar cuales scroollbatrs aparecen tenes la propiedad scrollbars, que pueden ser horizontal, vertical o ambas.

Para que se "corte" el largo de la linea creo que era la propiedad maxlenght

194
C++ Builder / Re: Codigo Ascii
« en: Viernes 16 de Enero de 2004, 13:58 »
Cita de: "mabrev"
Hola:

  Creo que puedes obtenerlo utilizando un simple cast.

char caracter;
int codigo;

caracter = (char)codigo;  //Para pasar de ASCII a carácter
codigo = (int)caracter;  //Para obtener el código ASCII de un carácter


  Espero que te sirva de ayuda.


Saludos
Asi es :D
Con el cast alcanza y sobra :D

195
Programación de Videojuegos / Re: Todo Bonito....
« en: Viernes 16 de Enero de 2004, 13:33 »
:blink:  :unsure:  <_<  :rolleyes:
Bueno calculo que podria poner algo.... :P
Pero pense que alguien podria tener algunos PDF tal vez sobre esto :D  :whistling:

196
Visual Basic 6.0 e inferiores / Re: Seleccionar Una Carpeta
« en: Viernes 16 de Enero de 2004, 13:31 »
Cita de: "Bopo"
Cita de: "Bopo"
Y que me de la ruta en una variable :P

¿Cómo se hace?
ya lo hice B)

Código: Text
  1. Private Sub Drive1_Change()
  2. Dir1.Path = Drive1
  3. End Sub
  4.  
  5.  
YEAH! :smartass:  B)

197
Programación de Videojuegos / Todo Bonito....
« en: Jueves 15 de Enero de 2004, 21:02 »
Que pasa con la parte de la Inteligencia? IA de los juegos? no vi nada de eso por aqui...

No vana poner anda al respecto?.

slds.

198
SQL Server / Re: Consulta Entre Fechas
« en: Jueves 15 de Enero de 2004, 19:34 »
verifica el formato de la fecha y usa BETWEEN FECHA1 AND FECHA2

Si usas #FECHA# FECHA tiene que estar en formato americano.
usa format para ponerlo asi, elimina espacios, y todo eso...

199
Visual Basic 6.0 e inferiores / Re: Seleccionar Una Carpeta
« en: Jueves 15 de Enero de 2004, 19:30 »
El ejemplo mas sencillo es:
Pones unavariable global en un modulo:
Public directorioSeleccionado as string.

dps haces un formulario con un dirlistbox y dos botones uno que dice aceptar y otro cancelar.
Supongamos que tenes el boton aceptar se llama cmdAceptar y el de cancerlar cmdCancelar, y el dirlistbox se llama dir1, entonces:
Código: Text
  1.  
  2. sub cmdAceptar_click()
  3.      if (dir1.path <> "") then
  4.            directorioSeleccionado = dir1.path
  5.      else
  6.            directorioSeleccionado = ""
  7.      end if
  8.      unload me
  9. end sub
  10.  
  11. sub cmdCancelar_click()
  12.     unload me
  13. end sub
  14.  
  15.  
Y listo entonces en el formulario "principal", pones:

     frmSeleccionarDirectorio.show

Y cuando necesites usar el directorio seleccionado se encotrara en la variable directorioSeleccionado.

Esperi qeu este mas claro...
slds.

200
C/C++ / Re: Función Random
« en: Jueves 15 de Enero de 2004, 19:20 »
Cita de: "Ruben3d"
Cita de: "QliX=D!"
Estos valores aleatorios no son adecuados para cosas sobre seguridad, pero si para aleatorizar metodos o datos en juegos, etc.

Francamente, opino que los valores así generados sí son aptos para aplicaciones seguras. No hay más que fijarse en el tamaño del periodo: m-1 = (2^32-1)-1 = 2147483646. Lo que más puede poner en compromiso la fiabilidad de un sistema basado en un generador de este tipo es la correcta elección de ciertas constantes que se utilizan (una de ellas es m). Una elección al azar o no estudiada detenidamente puede dar lugar a generadores que altenernen entre números pares o impares, que tiendan a generar más veces ciertos números o que se reduzca su periodo drásticamente, propiedades difícilmente deseables.
 
NO! NO! Y NO!.
realmente no es apto para aplicaciones seguras por que los generadores congruenciales son muy sencilllos de "adivinar"
El periodo de 2147483646 es demasiado pequeño para cualquier tipo de implementacion segura.
En cierta manera con un generador congruencial haciendo una analisis de varios valores se peude llegar a adivinar un "rango" de numeros donde puede caer nuestro proximo numero.

Si pasean por varios sitios de la red dice explicitamente que para requerimientos de seguridad no son suficientemente bueno los generadore congruenciales, por ejemplo: Quoteado de: http://webs.ono.com/usr005/jsuarez/aleat3.htm

Citar
El generador lineal congruencial.

Ponemos como ejemplo este generador porque es uno de los más difundidos siendo a la vez uno de los más débiles y no apto para uso criptográfico. Se utiliza en la mayoría de las funciones rand() y similares.

La forma general de es: Xi+1=(a.Xi + b ) mod m donde X0 sería la semilla del generador. La salida suele ser el número Xi/m, un número en coma flotante en el intervalo [0,1).

Algunas propiedades de estos generadores:

   1. El módulo m es una cota superior del número de valores diferentes que puede tomar la semilla.
   2. Si Xi vuelve a tomar el valor de la semilla inicial la secuencia se repetirá cíclicamente.
   3. Todas las secuencias producidas por este tipo de generador si se prolongan lo suficiente (periodo) acaban en un ciclo que se repite indefinidamente.

Un buen generador lineal tendrá un periodo tan largo como sea posible (es decir m). Este máximo se alcanza si y sólo si se cumplen las tres siguientes condiciones [Knuth]

a) b es primo con m
B) a-1 es múltiplo de p para todo primo p que divida a m
c) a-1 es múltiplo de 4 siempre que m sea múltiplo de 4

Habitualmente se toma como m una potencia de 2 más de 1 de modo que se puede coger por ejemplo b=1 y a un número impar.

No sólo este tipo de generador sino todos los de tipo polinómico congruencial, es decir:

x= (anxn + ... + a1x + a0) mod m

son predecibles y por tanto inútiles para cualquier cifrado serio.

Tambien de:
http://www.dwheeler.com/secure-programs/Se...om-numbers.html

en una parte dice:
Citar
Most non-cryptographic library PRNGs are some variation of ``linear congruential generators'', where the ``next'' random value is computed as "(aX+B) mod m" (where X is the previous value). Good linear congruential generators are fast and have useful statistical properties, making them appropriate for their intended uses. The problem with such PRNGs is that future values can be easily deduced by an attacker (though they may appear random)


Bueno y no muchos mas.... pero hay mas para poner.
En si, el problema es que es ADIVINABLE el proximo numero.


HAy formas de "engañar" al atacante y hacer que no se de cuenta de que uso un congruencial lineal... pero bueno, no way... usen otro tipo... no usen este estilo de PRNG y listo :D

Páginas: 1 ... 6 7 [8] 9