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

#1181
Cita de: Stakewinner00 en 31 Enero 2013, 17:11 PM
Ok, ya esta arreglado, muchas gracias por todo, el fallo lo tenia en una función, donde hay 2 archivos de textos que los abro y cierro múltiples veces
No tienes que abrir y cerrar el mismo archivo multiples veces... Para rebobinar puedes usar la función Lectura.seekg(0, ios::beg); y para limpiar el EOF (si estuviera activado) puedes usar la función Lectura.clear();
#1182
Lo has advierto en modo binario como te dije?.

Una cosa que puedes hacer es calcular el tamanyo del archivo y leerlo del tiron:

Código (cpp) [Seleccionar]
ifstream Lectura;
Lectura.open(Nombre,ios::binary);
Lectura.seekg (0, ios::end);
int Tamanyo =Lectura.tellg();
Lectura.seekg (0,ios::beg);

int* Datos = new int[Tamanyo];

Lectura.read((char*)& Datos,Tamanyo);


Todo lo que quieras trastear está en el array "datos". Y despues para escribir igual:

Código (cpp) [Seleccionar]
Escritura.write((char*) &Datos,Tamanyo);

Cita de: Stakewinner00 en 31 Enero 2013, 16:33 PMpor eso decia de intentar abrir directamente el archivo como hexadecimal para poder leer  sin problemas el archivo.
Ese modo "hexadecimal" es el modo binario... Con eso puedes obtener el valor de cada Byte (en formato decimal que es más fácil).
#1183
Usa mejor un editor hexadecimal (Yo uso HxD).

Has comprobado si se ha activado el EOF?
#1184
Código (cpp) [Seleccionar]
array1[pall[i]-65];

Esta sentencia no hace nada. Si lo que quieres es asignarle al array el valor de pall:

Código (cpp) [Seleccionar]
array1[i] = pall[i] -65;

Lo mismo con el otro array.
#1185
Cita de: Yidu en 30 Enero 2013, 21:16 PM
Y que necesita un exceso de código para hacer algo simple.
Falso, necesita las líneas necesarias.

Si algun lenguaje se salta 2-3 líneas menos es porque el lenguaje/libreria las hace "por su cuenta". Por lo cual ya estás perdiendo control sobre el programa.
#1186
http://minidosis.org/C++/

Ahora, te digo aprender a programar no es nada sencillo. Y te va a requerir muuuuuuuuuuuuuuuuuuchísimo tiempo y práctica.
#1187
Fácil, abrelo en modo binario:
Código (cpp) [Seleccionar]
ifstream Lectura;
Lectura.open(Nombre,ios::binary);


Lees un byte cualquiera:

Código (cpp) [Seleccionar]
int Byte;
Lectura.read((char*) &Byte,1);


Y obtienes su valor en decimal, luego ya trasteas con el como quieras.

Para escribir lo mismo:

Código (cpp) [Seleccionar]
Escritura.open(Nombre,ofstream::binary);
Escritura.write((char*) &Byte,1);
#1188
Mingw bajo el IDE de CodeBlocks.

Eliminando el include de Menu.rc tengo el siguiente error:

C:\Users\Miguel\Dropbox\Ventana\Ventana\Assets\Menu.rc|5|syntax error|
||=== Construcción finalizada: 1 errors, 0 warnings (0 minutes, 0 seconds) ===|


Ningún dato más :(
#1189
Programación C/C++ / Windows API: Crear Menú
30 Enero 2013, 18:34 PM
Iniciandome en el tema de Windows API, intento crear un menú sencillo pero no me lo coje!:

Menu.rc
Código (cpp) [Seleccionar]
#include "Constantes de menu.hpp"

Menu MENU
BEGIN
   POPUP "&Archivo"
      BEGIN
         MENUITEM "&Abrir", M_ABRIR
         MENUITEM "&Guardar", M_GUARDAR
         MENUITEM SEPARATOR
         MENUITEM "&Salir", M_SALIR
      END
    POPUP "Ediccion"
        BEGIN
            MENUITEM "&Deshacer",M_DESHACER
        END

END


Main.cpp
Código (cpp) [Seleccionar]
#include <windows.h>
#include "Assets\Constantes de menu.hpp"
#include "Assets\Menu.rc"

/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/*  Make the class name into a global variable  */
char szClassName[ ] = "CodeBlocksWindowsApp";

int WINAPI WinMain (HINSTANCE hThisInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR lpszArgument,
                     int nCmdShow)
{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Data structure for the windowclass */

    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);

    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;                 /* No menu */
    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;                      /* structure or the window instance */
    /* Use Windows's default colour as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
        return 0;

    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           "Code::Blocks Template Windows App",       /* Title Text */
           WS_OVERLAPPEDWINDOW, /* default window */
           CW_USEDEFAULT,       /* Windows decides the position */
           CW_USEDEFAULT,       /* where the window ends up on the screen */
           544,                 /* The programs width */
           375,                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           LoadMenu(hThisInstance,"Menu"),                /* No menu */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );

    /* Make the window visible on the screen */
    ShowWindow (hwnd, nCmdShow);

    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }

    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}


/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* handle the messages */
    {
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}


Constantes de Menu.hpp
Código (cpp) [Seleccionar]
#define M_ABRIR 100
#define M_GUARDAR 101
#define M_SALIR 102
#define M_DESHACER 103


Me da error de sintaxis en Menu.rc, y yo no veo ninguno *_*

#1190
Actualizado a una nueva versión ;)