• Domingo 6 de Octubre de 2024, 00:04

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

Páginas: 1 ... 14 15 [16] 17 18 ... 30
376
C/C++ / Re: Error: Infracción De Acceso (0xc0000005)
« en: Miércoles 30 de Junio de 2004, 20:29 »
Pon el código aqui y lo pruebo (pero usa el tag CODE o XCODE!!).

377
C/C++ / Re: C Modo Grafico En Windows Xp No Corre
« en: Miércoles 30 de Junio de 2004, 20:28 »
Como no expliques algo más, más bien nadie sabe. ¿Qué compilador usas? ¿Alguna librería gráfica en concreto?

378
C/C++ / Re: Problema Con Templates En C++
« en: Miércoles 30 de Junio de 2004, 20:26 »
Por definición, la única manera de que una plantilla no sea inline es usando export. Puedes consultarlo en el capítulo dedicado al respecto del libro de Stroustrup. Sé que compila si lo pones en el .cpp, ese caso lo expliqué en el primer post, pero no lo enlaza desde otra unidad de traducción.

Un saludo.

Ruben3d

379
C/C++ / Re: Problema Con Templates En C++
« en: Miércoles 30 de Junio de 2004, 00:56 »
ragnarok lo ha descrito perfectamente. Yo quiero que la implementación no sea inline, que vaya en el cpp. Pero para que eso se pueda hacer con plantillas hace falta que el compilador lo implemente con export, y no lo hacen.

Un saludo.

Ruben3d

380
Novedades en SoloCodigo / Re: Coloreado De Sintaxis
« en: Martes 29 de Junio de 2004, 17:54 »
Citar
felicito y agradezco a Rubén por su aportación

 :hola: Gracias. Para mi gusto faltaría alguien que contribuyera creando un front-end gráfico para el programa.

Un saludo.

Ruben3d

editado: Aqui se pueden ver ejemplos de los resultados:
http://foros.solocodigo.com/index.php?showtopic=9420

381
C/C++ / [Código Fuente] Programa para postear código con la sintaxis en color.
« en: Martes 29 de Junio de 2004, 15:01 »
Esta aplicación permire formatear el código fuente de Pascal o C++ usando los tag COLOR, para que aparezca la sintaxis coloreada al postearlo en los foros.

El código que genera ha de ser puesto entre los tag XCODE y /XCODE, de efecto similar a CODE, pero que permite el uso del tag COLOR.

El programa está realizado usando el analizador léxico Flex, que es compatible con Lex y se distribuye bajo licencia GNU. Para realizarle modificaciones recomiendo hacerlo en el .l en vez de en el .c.

Si detectáis cualquier error en el funcionamiento del programa avisadme e intentaré solucionarlo.

Un saludo.

Autor: Rubén Moreno Montolíu

http://ruben3d.iespana.es

382
Sobre los Foros de SoloCodigo / Re: Cómo Poner Varios Espacios Seguidos
« en: Martes 29 de Junio de 2004, 14:48 »
Y la versión de C++ funciona también bien. Voy a juntar todo y subirlo.

<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->

#include <stdio.h>
#define N 8

void llenar_vector(int v[])
{
    int i;
    for (i=0; i<N; i++)
     {
        printf ("ingresa elemento v[%d]: ", i);
        // Fijate, le paso la dir. de memoria con '&'
        scanf ("%d", &v[i]);
    }
}

void mostrar_vector(int v[])
{
    int i;
    for (i=0; i<N; i++)
     {
        printf ("Elemento v[%d]: %d\n", i, v[i]);
    }
}

int main (int argc, char **argv)
{
    int notas[N];
    llenar_vector(notas);
    mostrar_vector(notas);
    
    // Para que se pause antes de acabar
    fflush(stdin);
    getchar();

    return(0);
}

<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->

383
Sobre los Foros de SoloCodigo / Re: Cómo Poner Varios Espacios Seguidos
« en: Martes 29 de Junio de 2004, 14:41 »
La versión de Pascal ya parece que funciona bien, no se ve tan bien como en HTML pero no está mal. No pongo el archivo entero, sólo un fragmento para que se vea.

<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->
(* --- FRAGMENTO --- *)

BEGIN { **** PROGRAMA PRINCIPAL **** }

  { Este es el valor de las variables, a no ser que las sobreescriba el CFG }
  r_ScreenWidth := 640;
  r_ScreenHeight := 480;
  r_VideoMode := 2; { 640x480 }
  r_DrawMode := 0; { Solo caras }
  r_LightMode := 2; { Posicion de luz omni }
  r_NormalizarColor := False; { Por defecto apagado }
  r_MostrarFPS := True;
  r_MostrarInfoObjeto := True;
  r_MostrarInfoRender := True;
  m_RotarObjeto := False; { Por defecto no se rota }
  fichero := 'nudo.geo'; { Por defecto abre este archivo }


  { Cuerpo del programa }
  { =================== }
    if cargarAplicacion then
      motor3d;
  { =================== }
  { Fin del programa    }

  { Libera la mem. de las pantallas virtuales. }
  kill_VW(r_Pantalla);
  kill_VW(r_Borrador);
  kill_VW(r_ZBuffer);

  { Descarga el objeto }
  objeto.done;

  { Se cierra el modo grafico }
  kill_graph;

  { Se chequea la memoria. }
  CHECKMEMORY;

  { Se da de baja la clase y se termina. }
  TERMINATE;

END.

<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->

384
Sobre los Foros de SoloCodigo / Re: Cómo Poner Varios Espacios Seguidos
« en: Martes 29 de Junio de 2004, 14:03 »
¡Gracias! Voy a acabar la versión de Pascal y lo subo a la sección de Código fuente.

Un saludo.

Ruben3d

385
C/C++ / Re: Error: Infracción De Acceso (0xc0000005)
« en: Martes 29 de Junio de 2004, 13:58 »
Es extraño que suceda eso en esa llamada. ¿Para usar fopen incluyes la cabecera de C, "stdio.h", o la de C++, "cstdio" ?

Un saludo.

Ruben3d

386
C/C++ / Re: Error: Infracción De Acceso (0xc0000005)
« en: Martes 29 de Junio de 2004, 11:48 »
Supongo que ptrArchivo es un miembro de la clase de tipo FILE*. ¿En qué punto exacto te da el error? ¿En la llamada a fopen? Comprueba que el puntero nomArchivo es válido.

Un saludo.

Ruben3d

387
C/C++ / Re: Problema Con Templates En C++
« en: Martes 29 de Junio de 2004, 11:41 »
No soy yo el que escribe muchas veces el código, es el compilador cuando genera el código máquina. Al poner la implementación en el fichero de cabecera el código se genera inline, y yo lo que quiero es que se realicen llamadas a funciones, no que se escriba todo el código cada vez que se use (me refiero a que lo escriba el compilador, no yo).

Un saludo.

Ruben3d

388
Dudas informáticas / Re: Contraseñas Para Compactados
« en: Lunes 28 de Junio de 2004, 20:38 »
En esta web hay diversas utilidades para quitar contraseñas a archivos comprimidos.

Un saludo.

Ruben3d

389
La taberna del BIT / Re: Jim Morrison
« en: Lunes 28 de Junio de 2004, 20:31 »
Tenía entendido que fue encontrado muerto por sobredosis en una bañera en un piso de París, donde estaba escribiendo poemas, pero no me hagáis mucho caso. Es una de esas cosas que se tienen en la cabeza y no sabes de dónde han venido.

Un saludo.

Ruben3d

390
C/C++ / Re: Trabajo Con Vectores
« en: Lunes 28 de Junio de 2004, 12:23 »
Hola.

El problema es que no le está pasando la dirección de memoria del elemento a scanf, fijate en este código:

#include·<stdio.h>
#define·N·8

void·llenar_vector(int·v[  ])
{
····int·i;
····for·(i=0;·i<N;·i++)
····{
········printf·("ingresa·elemento·v[ %d ]:·",·i);
········//·Fijate,·le·paso·la·dir.·de·memoria·con·'&'
········scanf·("%d",·&v[ i ]);
····}
}

void·mostrar_vector(int·v[  ])
{
····int·i;
····for·(i=0;·i<N;·i++)
····{
········printf·("Elemento·v[ %d ]:·%d\n",·i,·v[ i ]);
····}
}

int·main·(int·argc,·char·**argv)
{
····int·notas[ N ];
····llenar_vector(notas);
····mostrar_vector(notas);
····
····//·Para·que·se·pause·antes·de·acabar
····fflush(stdin);
····getchar();

····return(0);
}·


Un saludo.

Ruben3d

391
C/C++ / Re: Problema Con Templates En C++
« en: Lunes 28 de Junio de 2004, 12:09 »
Hola.

Soy consciente de que con el soporte actual hay que dejar la implementación en el fichero de cabecera. Esto fuerza que todos los métodos sean inline. ¿Pero qué pasa si yo no quiero que unos fragmentos de código bastante grandes estén repetidos cada vez que uso la clase template? Con la palabra reservada export debería poder definir la implementación en un fichero cpp, y ser el compilador el encargado de generar en su fichero objeto todas las especializaciones de la clase, en vez de generar el código en cada lugar que se utilice. Para distribuirlo, habría que distribuir el fichero de cabecera y el cpp.

Un saludo.

Ruben3d

392
C/C++ / Re: ¿cómo Hacer Una Función En 2º Plano?
« en: Sábado 26 de Junio de 2004, 12:22 »
Hola.

No hace falta tener nada en segundo plano. En cada turno del juego (cada vez que se mueva el tren) restale 1 a la duración a cada bomba que haya en la pantalla y, si baja de cero, llama a la función que se encargue de la explosión. De esta manera puedes definir la vida de cada bomba en turnos de juego.

En cada turno comprueba tambien el número de bombas. Si es menor a cierto número máximo genera una bomba en posición aleatoria e inicializala con el número de turnos de duración antes de que explote.

Espero que con esto te vayas guiando, si no pregunta.

Un saludo.

Ruben3d

393
Sobre los Foros de SoloCodigo / Re: Cómo Poner Varios Espacios Seguidos
« en: Viernes 25 de Junio de 2004, 19:35 »
De acuerdo. Gracias de nuevo. Por otro lado, este programilla es una modificación de otro que ya tengo hecho que genera la salida en HTML. Cuando genero para Pascal lo hago con el fondo negro y con colores parecidos a los de FreePascal, aunque ya veré cómo adapto los colores para fondo claro.

Un saludo.

Ruben3d

394
Sobre los Foros de SoloCodigo / Re: Cómo Poner Varios Espacios Seguidos
« en: Viernes 25 de Junio de 2004, 19:17 »
Uso COLOR para los colores y FONT, para establecer Courier. ¡Muchas gracias por el interés! Cuando tenga la versión de Pascal lo pondré en la sección de Código Fuente o Utilidades (van los dos juntos en el mismo programa y se selecciona el lenguaje por parámetro).

Un saludo.

Ruben3d

395
Sobre los Foros de SoloCodigo / Re: Cómo Poner Varios Espacios Seguidos
« en: Viernes 25 de Junio de 2004, 19:03 »
Horror, no me lo había planteado. Sólo se me ocurre meter un espacio después de cada '[' de manera sistemática, para evitar que coincida con algún tag, aunque puede quedar un poco feo si no meto otro delante de los ']'. A no ser que exista alguna manera de poner un [ i ] u otros tags sin que lo interprete como tag, pero me da que no.

Un saludo.

Ruben3d

EDIT: Bueno, parece que no queda tan mal con el invento de los espacios. Un poco espacioso, pero bueno. Pongo una comparación con cómo se vería con el tag CODE.

Código: Text
  1. // test.cpp
  2.  
  3. void funcion()
  4. {
  5.   char array[256];
  6.  
  7.   for (int i=0; i&#60;256; i++)
  8.   {
  9.     array[i] = i;
  10.   }
  11. }
  12.  

//·test.cpp

void·funcion()
{
····char·array[ 256 ];

····for·(int·i=0;·i<256;·i++)
····{
········array[ i ]·=·i;
····}
}

396
Programación de Videojuegos / Re: Urgente Laberinto En Opengl
« en: Viernes 25 de Junio de 2004, 16:20 »
Que no pongas varias veces el mismo post, que ya está en el foro de OpenGL!

397
Sobre los Foros de SoloCodigo / Re: Cómo Poner Varios Espacios Seguidos
« en: Viernes 25 de Junio de 2004, 15:51 »
Bueno. He llegado a una solución provisional poniendo el carácter '·' de color amarillo, de forma que se ve poco. Lo ideal sería tener un tag como el PRE de HTML para que la gente pudiera copiar y pegar el código sin tener que quitar los puntos que hacen de espacio. De esta manera queda así:


//
//·ejcpp.cpp
//

/*

Fichero·C++·de·ejemplo

todo:·Introducir·más·cosas

*/


#include·<iostream>
#include·<string>
#include·<cstdio>
#include·<cstdlib>

using·namespace·std;

//·Directiva·multilinea
#define·ASSERT(x)····if·(!(x))····\
····················{············\
························cout·<<·"La·condicion·\""·<<·#x·<<·"\"·ha·fallado·en·"·<<·__FILE__·<<·":"·<<·__LINE__·<<·endl;····\
························abort();····\
····················}


/*
····CLASE·CEscritor
····Escribe·el·texto·que·se·le·asigne.
*/

class·CEscritor
{
public:
····CEscritor(string·str)·:·m_str(str)·{}

····//·Escribe·el·texto·asignado·mediante·el·constructor·o·asignar()
····void·escribir();

····//·Le·asigna·un·texto·que·se·escribirá·mediante·asignar()
····void·asignar(string·&str);

private:
····std::string·m_str;
};

void·CEscritor::escribir()
{
····for·(int·i=0;·i<5;·i++)
········cout·<<·m_str·<<·endl;
}

void·CEscritor::asignar(string·&str)
{
····m_str·=·str;
}

/*·Punto·de·entrada·del·programa·*/
int·main(int·argc,·char·**argv[])
{
····CEscritor·*pEscritor·=·new·CEscritor(string("Este·texto·tiene·\"comillas·dobles\""));
····ASSERT(pEscritor·!=·NULL);············//·Comprueba·que·nada·haya·fallado.
····pEscritor->escribir();
····delete·pEscritor;····················//·Libera·la·memoria
····char·c·=·'\'';
····char·ch·=·'\xA2';
····printf("El·valor·de·'c'·es:·%c.\n",·c);
····printf("Un·float:·%02.2f.\n",·4.2356f);
····double·d·=·3.675;
····unsigned·short·int·usi·=·0xA2;
····getchar();
····return·0;
}

398
Sobre los Foros de SoloCodigo / Cómo Poner Varios Espacios Seguidos
« en: Viernes 25 de Junio de 2004, 15:33 »
Hola.

He hecho un pequeño programa que lee un fichero de C++ y genera la sintaxis coloreada usando los tags del foro, para que quede el código bien claro. El problema es que si pongo varios espacios seguidos (porque las tabulaciones las convierto en espacios) al postearlo en el foro desaparecen, y pierdo la justificación del código. ¿Hay alguna manera de conservar los espacios sin usar el tag CODE (porque no me deja colorear CODE)?

Muchas gracias.

Ruben3d

PD: Si consigo sulocionar lo de los espacios haré una versión para Pascal.

PD2: Dejo un ejemplo de lo que genera el programa con un fichero de prueba. Se puede ver cómo todos los grupos de uno o más espacios son reducidos a uno al ser mostrado por el foro:


//
// ejcpp.cpp
//

/*

Fichero C++ de ejemplo

todo] Introducir más cosas

*/


#include <iostream>
#include <string>
#include <cstdio>
#include <cstdlib>

using namespace std;

// Directiva multilinea
#define ASSERT(x)    if (!(x))    \
                    {            \
                        cout << "La condicion \"" << #x << "\" ha fallado en " << __FILE__ << ":" << __LINE__ << endl;    \
                        abort();    \
                    }


/*
    CLASE CEscritor
    Escribe el texto que se le asigne.
*/

class CEscritor
{
public:
    CEscritor(string str) : m_str(str) {}

    // Escribe el texto asignado mediante el constructor o asignar()
    void escribir();

    // Le asigna un texto que se escribirá mediante asignar()
    void asignar(string &str);

private:
    std::string m_str;
};

void CEscritor::escribir()
{
    for (int i=0; i<5; i++)
        cout << m_str << endl;
}

void CEscritor::asignar(string &str)
{
    m_str = str;
}

/* Punto de entrada del programa */
int main(int argc, char **argv[])
{
    CEscritor *pEscritor = new CEscritor(string("Este texto tiene \"comillas dobles\""));
    ASSERT(pEscritor != NULL);            // Comprueba que nada haya fallado.
    pEscritor->escribir();
    delete pEscritor;                    // Libera la memoria
    char c = '\'';
    char ch = '\xA2';
    printf("El valor de 'c' es: %c.\n", c);
    printf("Un float: %02.2f.\n", 4.2356f);
    double d = 3.675;
    unsigned short int usi = 0xA2;
    getchar();
    return 0;
}

399
La taberna del BIT / Re: A Quien Le Vas En La Euro??
« en: Viernes 25 de Junio de 2004, 14:19 »
Una respuesta off-topic en un foro off-topic, esto es un nivel superior de off-topic :lol:

400
La taberna del BIT / Re: Patentes
« en: Viernes 25 de Junio de 2004, 14:17 »
Ese nivel de patentabilidad de sw sólo está autorizado en EEUU. En Europa hace poco que se legalizaron las patentes de software, pero sólo a nivel de aplicaciones, no de conceptos tan concretos como el doble-clic.

Por cierto, me sorprende que le concedan la patente del doble-clic a Microsoft, pues hay que demostrar que se es el primero en hacerlo y es un concepto anterior al Windows (ya intentó patentar los entornos de ventanas).

Un saludo.

Ruben3d

Páginas: 1 ... 14 15 [16] 17 18 ... 30