elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Mensajes
Páginas: 1 ... 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 [44] 45
431  Foros Generales / Noticias / Re: Anonymous declara la guerra a la SGAE en: 8 Octubre 2010, 00:28 am
La verdad no creo que consigan hacer nada contra la SGAE, hacer un ataque DDoS contra su web no me parece un método eficaz....

La SGAE es capaz de subir el canon para cobrar los daños contra sus servidores  ;D ;D

Saludos.
432  Programación / Programación C/C++ / Re: Principios básicos de desarrollo de drivers en Windows - Lenguaje C en: 7 Octubre 2010, 22:45 pm
Muy bueno, gracias.

Saludos.
433  Programación / Programación General / Re: Curso de Delphi en: 7 Octubre 2010, 22:35 pm
Capítulo 3. Tipos de datos.

A la hora de programar, ante la necesidad de trabajar con información y operar con datos empleamos las constantes y variables. Una constante es un identificador que puede hacer referencia a una cadena de caracteres, a un número entero, a un número en coma flotante, a un número hexadecimal, etc.. Su característica principal es que su valor no puede ser alterado, al contrario que las variables.

Para emplear variables, primero debemos definir que tipo de dato va a contener esa variable: texto, un número, un valor de tipo bool (cierto o false), etc...

En esta tabla puedes ver los tipos de datos más utilizados en Delphi y su equivalencia en C/C++ y Visual Basic.



En el siguiente ejemplo puedes ver el uso de constantes y como se utilizan:

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. //Las constantes se deben de declarar debajo de los uses
  9. //y siempre finalizan en ;
  10. const
  11.  MiCadena = 'Hola, soy una constante';
  12.  OtraCadena = 'Adios';
  13.  UnNumero = 4;
  14.  
  15.  
  16. begin
  17.  Writeln(MiCadena);
  18.  Writeln(OtraCadena);
  19.  Readln;
  20. end.
  21.  

Para definir constantes utilizamos la palabra reservada const (las palabras reservadas suelen ir en negrita) y a continuación le asignamos a nuestras constantes un identificador como nombre y les asignamos un valor mediante el =. Lo que está escrito encima de const es un comentario y sirven para comentar código y facilitar la comprensión del mismo, son ignorados por el compilador. En Delphi se pueden declarar comentarios de 3 formas:

Código
  1. //Mediante la doble barra como en C/C++/C#, Java y otros lenguajes...
  2.  
  3. {
  4.   Entre llaves....
  5.   se pueden escribir varias lineas de comentario
  6. }
  7.  
  8. (*
  9.   Esta es otra forma de declarar comentarios, aunque es poco conocida y usada...
  10.   Es similar a la forma /*    */ de C
  11. *)
  12.  

Dentro del begin y del end. hacemos 2 llamadas al procedimiento Writeln y le pasamos como parámetro el contenido de las constantes MiCadena y OtraCadena

Las constantes no se pueden declarar en cualquier parte del código, generalmente se declaran debajo de los uses aunque ya veremos en otro capítulo que se pueden declarar en más sitios. A la hora de declarar constantes y variables tenemos algunas limitaciones con el nombre del identificador, estas son las normas a seguir:

  • No se pueden emplear palabras reservadas como identificador, además de que no pueden existir 2 variables/constantes con el mismo identificador.
  • No se pueden emplear símbolos como identificador de una constante o variable.
  • Se pueden emplear mayúsculas, minúsculas, guiones bajos y números.
  • Si quieres usar números para declarar constantes o variables, el identificador de la constante o variable nunca puede empezar por número.

Estos son ejemplos de identificadores de constantes y variables no válidos:

Código
  1. const
  2.    1Mensaje = 'Esto es un mensaje';
  3.    Men saje = 'Esto es otro mensaje';
  4.    #M = 18;
  5.  

Para declarar variables tenemos que poner primero la palabra reservada var y a continuación podemos definir nuestras variables. Primero se pone el identificador seguido de : y el tipo de datos que va a contener, luego se finaliza con ;. Las variables en Delphi se declaran fuera del begin y del end., mucha gente lo considera una molestia porque tiene la mala costumbre declarar variables en medio del código, de esta forma te quedan todas las variables estructuradas y un código limpio y ordenado. Para asignarle un valor a una variable se utiliza el operador de asignación := y como siempre, se termina con ;.

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. const
  9.  Pi = 3.14;
  10.  NumeroEnHex = $FD4;
  11.  //Para declarar un número en hexadecimal se utiliza el dolar
  12.  
  13. var
  14.  Cadena: string;
  15.  Numero: integer;
  16.  EsCierto: boolean; //solo puede ser true o false
  17. begin
  18.  EsCierto:= true;
  19.  
  20.  Numero:= NumeroEnHex;
  21.  Cadena:= 'Esto es una cadena';
  22.  Writeln(Cadena);
  23.  Cadena:= 'Esto es otra cadena';
  24.  Writeln(Cadena);
  25.  Readln;
  26.  EsCierto:= false;
  27. end.
  28.  

El tipo de dato string almacena una cadena de caracteres, es muy útil y la utilizarás mucho. Integer almacena un número entero comprendido entre  -2,147,483,648 a 2,147,483,647 y Boolean solo puede tomar el valor de true (cierto) o false (falso).

Quedaría algo así:





434  Programación / Programación General / Re: Duda de novato en Free pascal en: 7 Octubre 2010, 01:13 am
Fallo mío, hice el código al vuelo y no lo comprobé.

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  Windows, SysUtils;
  7.  
  8. procedure WriteLnOem(Line: PAnsiChar);
  9. var
  10. szBuff: PAnsiChar;
  11. begin
  12.  try
  13.    GetMem(szBuff, StrLen(Line)); //Reservamos memoria
  14.    CharToOemBuffA(Line, szBuff, StrLen(Line)); // Convierte la cadena Line en formato Oem, szBuff es el destino
  15.    WriteLn(szBuff); //Escribe la linea en la consola
  16.  finally
  17.    FreeMem(szBuff); //Liberamos la memoria
  18.  end;
  19. end;
  20.  
  21. begin
  22.  WriteLnOem('Ejemplo de cadena: ñ, á, í, ó, é');
  23.  WriteLnOem('...');
  24.  ReadLn;
  25. end.
  26.  

Saludos.
435  Programación / Programación General / Re: Curso de Delphi en: 6 Octubre 2010, 22:41 pm
Capítulo 2. ¡Hola mundo!

Para empezar a programar en Delphi, vamos a dejar de lado la interface visual y los controles y empezaremos trabajando en modo consola. Para iniciar un nuevo proyecto en Delphi vamos a File -> New -> Other -> y se nos abrirá una nueva ventana, en donde escogemos Console Application.

Tendríamos que ver algo así:



Por comodidad cerré los 4 paneles que rodeaban la pantalla principal.

Hay parte de código que de momento no nos vas a ser útil y que explicaré más adelante para que sirve. Así que quitaremos el código que se encuentra entre el begin y el end., quedando de la siguiente forma:

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. begin
  9.  
  10.  
  11. end.
  12.  

Ahora vamos a guardar el proyecto, vamos a File -> Save all -> y le damos un nombre a nuestro proyecto, por ejemplo: "HolaMundo", una vez hayáis hecho esto, el código fuente os cambiará, quedando así:

Código
  1. program HolaMundo;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. begin
  9.  
  10.  
  11. end.
  12.  

Con esto podemos deducir que "HolaMundo" que está precedido de program, es el nombre de nuestro proyecto. El nombre del proyecto tiene que ser el mismo que el del archivo .dpr (Delphi Project). A continuación de esta línea encontramos {$APPTYPE CONSOLE}, esta es una de las muchas directivas de configuración que tiene Delphi, APPTYPE (Application Type) es el tipo de aplicación que vamos a crear. Si quitamos esta línea o la dejamos así {$APPTYPE GUI} Delphi generará un programa que no mostrará la pantalla de la consola. Las aplicaciones visuales, por defecto, ya ni ponen esta línea...

A continuación tenemos uses y debajo "SysUtils;". Con uses lo que haces es incluir ficheros de código fuente en nuestro programa, en este caso, el fichero SysUtils.pas. Finalmente tenemos un begin(comienzo) y un end.(final). Aquí es donde empieza nuestro programa, el programa siempre termina con un end seguido de un punto.

Delphi es un lenguaje no case sensitive (no es sensible a las mayúsculas/minúsculas), es lo mismo BEGin que begin. Esta característica está bastante desfasada, de hecho creo que solo Pascal/Object Pascal/Delphi y Basic la tienen, el resto de los lenguajes si que son sensibles a las mayúsculas, el ejemplo más claro es C o Java. Para ser sincero, esta característica me gusta bastante, evita dolores de cabeza corrigiendo mayúsculas y minúsculas...

Otra característica muy importante de Delphi es que es un lenguaje de programación fuertemente estructurado en la que hay que respetar las partes del programa. Pascal es muy estricto con este tema, no puedes declarar constantes antes que las funciones y muchas más cosas... en este aspecto Delphi es más permisivo.

Una vez aclarado esto, vamos a crear un programa que nos muestre un Hola Mundo en la consola. Para ello vamos a emplear 2 procedimientos: WriteLn y ReadLn. Una función es un conjunto de instrucciones que se ejecutan una detrás de la otra y que retornan una valor, un procedimiento es lo mismo que una función pero sin devolver ningún valor.

El procedimiento WriteLn, muestra el texto que se le pasa como parámetro en la consola. Las cadenas de caracteres en Delphi van entrecomillados por la comilla simple '. El procedimiento ReadLn() lo que hace es leer una línea que se introduce por teclado hasta que se pulse Enter, lo que va a hacer en nuestro programa es evitar que se cierre.

Código
  1. program HolaMundo;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  SysUtils;
  7.  
  8. begin
  9.  WriteLn('Hola mundo!');
  10.  ReadLn;
  11.  
  12. end.
  13.  

Las líneas de código que van dentro del begin y del end finalizan en punto y coma ; al igual que C o Java. Los procedimientos que no pasan parámetros pueden finalizar en () por si tienes la costumbre de C/C++/C#, de Java o de cualquier otro lenguaje, el compilador lo da por válido.

Una vez hecho esto, guardamos todo, y vamos a Project -> Compile HolaMundo. Luego pulsamos F9 o le damos al botón del Play que sale en color verde y se nos mostrará algo como esto:



El ejecutable se encuentra en la misma carpeta en la que guardamos el código fuente.

¡Felicidades, acabas de crear tu primer programa!





436  Programación / Programación C/C++ / Re: [Capitulo II] Procesos en: 6 Octubre 2010, 16:33 pm
Hola Lord R.N.A., está muy bien el curso, de hecho tenía ganas de empezar a trabajar de lleno con la API de Linux. Pero me surgió una duda:

La API de Windows tiene 2 métodos para trabajar con ficheros, por ejemplo: CreateFileA y CreateFileW, pero.. ¿Cómo hace Linux para trabajar con ficheros que tienen una ruta en formato UNICODE o UTF-8?¿Emplea un sistema parecido al de Windows o trata las rutas como char y luego hace la conversión a wchar_t?

Saludos.
437  Programación / Programación General / Re: Curso de Delphi en: 6 Octubre 2010, 16:19 pm
Capítulo 1. Delphi.

Delphi es un entorno de desarrollo de aplicaciones rápidas o entorno RAD (Rapid Applications Development). Delphi emplea como lenguaje de aplicación una versión moderna del Pascal, llamada Object Pascal, aunque mucha gente se refiere a Delphi como un lenguaje de programación.

¿Por qué Delphi?

Delphi es un lenguaje de programación de alto nivel con el que podrás desarrollar potentes aplicaciones como si programaras en C/C++ pero reduciendo drásticamente el tiempo de desarrollo, además nos facilita el uso de las últimas tecnologías de programación para aplicaciones Windows y Web, tanto en la plataforma Win32 como .NET.

Algunas características:
  • Delphi compila a código máquina y no depende de ningún FrameWork o dependecias externas como OCX o DLLs de terceros para funcionar.
  • Permite Assembler inline.
  • Delphi trabaja con sus componentes VCL (Visual Component Library) y son ampliables. Puedes descargar nuevos componentes e instalarlos (algunos son de pago).
  • Delphi es una estupenda elección para desarrollar aplicaciones que trabajan con motores de base de datos. De hecho, se pasó de Turbo Pascal a Delphi para ese fin, recientemente se incorporó soporte para las bases de datos FireBird.

Además Delphi cuenta con su versión para .NET llamada Delphi Prism que permite crear aplicaciones multiplataforma empleando MONO, pero este no es el objetivo de este curso.

Seguramente conozcas alguna aplicación desarrollada en Delphi, entre ellas: Skype, Ares, KMPlayer, AIMP, TuneUp, DevCpp, etc.. Aquí tienes una lista mucho más amplia:


Conocer el IDE (Integrated Development Enviroment) de Delphi, traducido como entorno de desarrollo integrado, es fundamental para desarrollar aplicaciones.



La interfaz es similar a la del Visual Studio, pero de todas formas voy a explicar lo básico en este capítulo. A primera vista tenemos una página de bienvenida en el centro del programa, que nos muestra los programas recientes y los favoritos. A la izquierda de la página de bienvenida tenemos dos paneles: Structure y Object Inspector. El primero va a mostrar todos los componentes visuales de nuestra aplicación y con el segundo podremos ver las propiedades y eventos de cada componente (ya veremos que son).

A la derecha de la página de bienvenida tenemos otros dos paneles: Project Manager y Tool Palette, el primero nos servirá para ver los archivos y la configuración de nuestro proyecto y el segundo panel es el cuadro de los componentes de Delphi.

En la parte superior de Delphi tenemos el clásico menú con las posibles configuraciones y opciones y debajo un panel con unos botones que ya iremos viendo.

438  Programación / Programación General / Curso de Delphi en: 6 Octubre 2010, 16:00 pm
Hola, abro este hilo para empezar un curso de introducción a Delphi. Antes de nada, aclaro que no necesitas conocimientos previos de programación para seguir el curso y que para preservar la integridad del curso no posteéis aquí.

Para este curso voy a emplear la versión de Delphi 2010. A partir de Delphi 2007, se incluyeron mejoras notables como UNICODE nativo, soporte para interfaces táctiles y los genéricos en la sintaxis de Delphi, así que para seguir este curso recomiendo usar Delphi 2009 o superior.


NOTA: Si tenéis alguna duda/consejo sobre el curso o sobre cualquier cuestión de Delphi podéis consultarme por mp.
439  Programación / Programación General / Re: Preguntas estupid** contestar porfavor en: 6 Octubre 2010, 00:47 am
1.- El lenguaje siempre va a ser el mismo, aunque nadie sabe que puede pasar dentro de 10 años... Los compiladores e IDEs mejorarán y habrá que adaptarse a los nuevos cambios. Visual Basic 6 está muerto, y no tiene nada que ver con Visual Basic .NET, lo único que tienen en común es la sintaxis del lenguaje.

2.- Para programar en C++ uso el Visual C++, pero el DevC++ también es una buena elección. El C++ Builder 6 es bastante antiguo, C++ Builder y Delphi son de la misma compañía, ahora mismo existe C++ Builder y Delphi 2010 y recientemente salió la versión del 2011.

3.- Visual Basic 6 no vale para nada, mejor aprende un lenguaje de verdad que te pueda ayudar. Yo en clase estoy dando C# para trabajar con bases de datos y la verdad no me disgusta. Visual C# y Visual Basic .NET usan las mismas clases, que son propias del FrameWork, lo único que varía es la sintaxis del lenguaje, el resto es todo igual.

4.- Delphi es la versión moderna de Object Pascal.

5.- Mmm la verdad lo dudo mucho, yo estoy estudiando un Ciclo Superior de Administración de Sistemas Informáticos y sí, esas cosas las estoy dando, a parte de programación.

Saludos.
440  Programación / Programación General / Re: Duda de novato en Free pascal en: 6 Octubre 2010, 00:38 am
Puedes hacer algo como esto:

Código
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6.  Windows, SysUtils;
  7.  
  8. procedure WriteLnOem(Line: AnsiString);
  9. begin
  10.  CharToOemBuffA(PAnsiChar(Line), PAnsiChar(Line), Length(Line));
  11.  WriteLn(Line);
  12. end;
  13.  
  14. begin
  15.  WriteLnOem('Prueba con acentos y ñ: á é í...');
  16.  WriteLnOem('...');
  17.  ReadLn;
  18. end.
  19.  

Saludos.
Páginas: 1 ... 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 [44] 45
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines