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

#571
Si son sin signo entonces usa las mascaras e ignora las funciones...

Dulces Lunas!¡.
#572
Hasta donde yo se un numero por decir uno el "24" en un int de 8, 16, 24, 32 y 64 SIEMPRE tendran los mismos bits encendidos.

Prueba estas funciones que te arme


typedef int INT32;  //  Entero de 4 bytes...
typedef int INT24;  //  Deberian ser 3 bytes... de manera auxiliar pongo un int de 4 bytes...

INT32 int24To32(INT24 i24)
{
    INT32 i32Ret = (0x7fffff & i24); // Esta mascara la implemente por que ahorita en este codigo INT24 es de 32 bits (la estoy emulando).
    return (i24 & 0x800000) ? (0x800000 | i24) : i24;
}

INT24 int32To24(INT32 i32)
{
    INT24 i24Ret = (0x7fffff & i32); // Esta mascara es para obtener los 3 bytes menos significativos que corresponden a un entero de 24 bits.
    //  la "e" es para ignorar el bit que se supone es para el bit de signo (el que corresponde) para el entero de 24 bits... en este caso
    //  omitimos este y lo dejamos en 0, y verificamos si el bit de signo del entero de 32 esta encendido para encenderlo en el entero de 24 bits.
    return (i32 & 0x80000000) ? (0x800000 | i32) : i32;
}


Edito:

Aclaración: las funciones son para Dezplazar el signo y poner en donde corresponde el bit de signo... en tal caso que no quieras desplazarlo solo debes aplicar mascaras:

entero24 =  0xffffff & entero32;

entero32 = entero24;

Dulces Lunas!¡.
#573
Programación C/C++ / Re: Comparando cadenas
22 Enero 2012, 19:34 PM
Busca un libro o revisa si el que estas leyendo mas adelante ya usa nombres de variables explicitas o que venga codigo o cuesiones de buena practica.



#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main()
{
    char    szNombres[10][20],  //  Array de PAlabras (cada una de 20 letras)
            i,                  //  Indice Contador.
            szLine[20];         //  PAlabra q buscar en el array...

    //damos un valor a 10 nombres --> ERROR
    for (i = 0; i < 10; i++)
    {
        printf("Introduce un nombre para el elemento: %d\n", i);
        fgets(szNombres[i], 20, stdin);
    }

    while(1)
    {
        printf("Introduce un nombre para comprobar si se encuentra entre los anteriores\n");
        fgets(szLine, 20, stdin);

        if (!strcmp(szLine, "fin\n"))   //  si no se le pone \n  y szLine = fin retornara strcmp 1...
            break;  //  Exit do...

        for (i = 0; i < 10; ++i)
        {
            if (!strcmp(szNombres[i], szLine))
            {
                printf("Cadena encontrada en el indice: %d\n", i);
                break;  //  Exit For...
            }
        }
    }
    printf("Programa terminado\n");
    getchar();

    return EXIT_SUCCESS;
}



Dulces Lunas!¡.
#574
Instala un Hook al teclado... o usa DOS Timers..

Dulces Lunas!¡.
#575
Cita de: zapala76 en 22 Enero 2012, 03:58 AM
...
lleno un datagrid desde una DB con cuatro filas, y tengo que borrar tres, pero al querer borrar la tercer fila me sale un error de que el indice esta fuera de rango, ya que el datagrid se redimensiona
...

Ya tienes la(s) solucion(es) que son bastantes obvias!¡.

Te dejo los codigos en C++/CLI (usando .NET)... lo podras transpasar a C# demasiado facil.

1.- Elimina restando el numero de filas eliminadas al indice a eliminar, si realizas cuentas este "indice" SIEMPRE te dara "0"... el codigo por obvias razones sera:
Código (c++) [Seleccionar]

while(this->gridCalendar->SelectedRows->Count > 0)
this->gridCalendar->Rows->Remove(this->gridCalendar->SelectedRows[0]);


2.- Empiesa a eliminar la fila por el ultimo indice... de la coleccion de Filas seleccionadas...
Código (c++) [Seleccionar]

while(this->gridCalendar->SelectedRows->Count > 0)
this->gridCalendar->Rows->Remove(this->gridCalendar->SelectedRows[this->gridCalendar->SelectedRows->Count - 1]);


3.- for each...

NOTA: Para actualizar los cambios puedes dejar de lado TODAS las instrucciones SQL realizando un simple update del DataTable...

Dulces Lunas!¡.
#576
***** me mintio... le entregue mi virginidad y lo de ahora era la password... *****.

Dulces Lunas!¡.
#577
Cita de: seba123neo en 21 Enero 2012, 01:53 AM
"static const" vs "#define" in c

El operador static tiene otro uso...

Dulces Lunas!¡...

EI: juntando mensajes.

lo mas conveniente serian:



const char* CADENA_SPAM = "SPAM";
///o
const char CADENA_SPAM[] = "SPAM";  // <- Yo me inclino por esta...



Recomendación: Para que encuentre y sepas que son constantes escribe el nombre de la constante en mayusculas.
#578
Como sabras los '0' a la izquierda de un numero no influyen... quitalos... que si no estaras haciendo valores OCTALES... jamas dejes 0 a la izquierda...

en C/C++ 015 es dinto de 15 ya que 015 esta en octal y 15 en decimal...

015 octal = 13 en decimal...

Dulces Lunas!¡.
#579
Foro Libre / Re: FILESERVE cierra los pagos
20 Enero 2012, 20:41 PM
...
Megaupload aun esta... sin dominio pero hay esta:

http://109.236.83.66/

Dulces Lunas!¡.
#580
Noticias / Re: Cierre de MU
20 Enero 2012, 20:39 PM
...

Aqui esta MegaUpload...

http://109.236.83.66/

Dulces Lunas!¡.