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

#41
es en esa linea pero el tamano es fijo.


for(int col = 0; col < map[row].length; col++)

for(int col = 0; col < mapheight; col++)
#42
Saludos a todos.

tengo una duda tengo en mi codigo un arreglo que me da el error del titulo pero el arreglo que tengo es de 5  * 5 entonces no se por que me da error que dice que estoy accediendo  a un indice que esta fuera de rango por favor si alguien me puede aconsejar seria un exito.. dejo el codigo.

Código (java) [Seleccionar]




TileMap(String s,int size)
{
tilesize = size;
try
{

BufferedReader br = new BufferedReader(new FileReader(s));
mapwidth = Integer.parseInt(br.readLine());
mapheight = Integer.parseInt(br.readLine());
System.out.printf("width [%d], height[%d]",mapwidth , mapheight);

map = new int[mapheight][mapwidth];
System.out.printf("Lenght [%d}",map.length);



String del = " ";

for(int row = 0;row < map.length ;row++ )
{
String line = br.readLine();
String[] tokens = line.split(del);
System.out.printf("Tokens [%s]\n", tokens);

                         



                             ///for(int col = 0; col < mapheight; col++)
                              for(int col = 0; col < map[row].length; col++)
{
System.out.printf("[%d],",Integer.parseInt(tokens[col]));
 
                                           ///eclipse me redirecciona aqui.
                                         map[row][col] = Integer.parseInt(tokens[col]);
}
System.out.printf("\n");

}
br.close();
}catch(Exception e)
{
e.printStackTrace();
}

}

public void update()
{

}

public void draw(Graphics2D g)
{
for(int row = 0; row < map.length; row++)
{
for(int col= 0; col < map[row].length; col++)
{
int rc = map[row][col];
if(rc == 0)
{
g.setColor(Color.BLACK);
}
if(rc == 1)
{
g.setColor(Color.RED);
}
g.fillRect(x+col *tilesize, y + row * tilesize, tilesize, tilesize);
}
}


}




}





Gracias por los consejos.
#43
disculpa , el unico error que me da es que la aplicacion cae, he estado despurando y cada vez que entro en el for de la linea 14 la aplicacion falla.

pienso que es por que esta dentro de un bucle while , pero por que justamente ahi?
por cierto la declaracioon de un SDL_Rect start[256]  podria darme problema siendo una struct arreglo de 256 campos?




--------------------------------------------------------------------------------------------
el problema es el for dentro del bucle while cada vez que llamo a la funcion CopiarPantalla
la aplicacion se cierra.

la pregunta es como podria hacer para usar los 256 elementos de esa struct?
#44
Programación C/C++ / error en bucle[codigo fuente]
4 Noviembre 2015, 16:34 PM
Buenas a todos !!
he estado programando un aplicacion mobil usando sdl y cuando cargo para probar
me da errores  la verdad tengo un buen tiempo y no doy con lo que me causa problema.

mas abajo dejo el codigo , aunque estoy pensando que es por un bucle que tengo pero no estoy seguro
Código (cpp) [Seleccionar]




#include<SDL.h>

#include<cstdlib>
#include<ctime>

using namespace std;


void CopiarPantalla(SDL_Renderer *renderer, SDL_Rect start_pos[256],SDL_Texture *img)
{
  for(unsigned int Drawers = 0; Drawers <255; Drawers++)
  {
  SDL_RenderCopy(renderer, img,NULL,&start_pos[Drawers]);
  }


}


int main(int argc, char *argv[])
{

SDL_Rect player = {10,12,32,32};


SDL_Window     *window    =  NULL;
SDL_Renderer   *renderer  =  NULL;
int width     =  0 ;
int height  =  0 ;
   bool Run  =  true;
   SDL_Surface    *unloaded  =  NULL;
SDL_Surface    *opt_img  =  NULL;
SDL_Texture    *img  =  NULL;
   SDL_Event    event;
SDL_DisplayMode mode;
unsigned int start = 0;
SDL_Rect start_pos[256];
SDL_Color color_pantalla = {0,0x12,0xa,0xff};
SDL_Rect fillRect;

if(SDL_Init(SDL_INIT_EVERYTHING) < 0 )
{
SDL_Log("Imposible Cargar SDL_INIT [%s]", SDL_GetError());
   Run    = false;
}
srand(time(NULL));
for(unsigned int initializer = 0; initializer <255; initializer++)
{
start_pos[initializer].x = 10 + rand() % width;
       start_pos[initializer].y = 10 + rand() % height;
       start_pos[initializer].w = 32;
   start_pos[initializer].h = 32;
}

unloaded = SDL_LoadBMP("color.bmp");
if(unloaded == NULL)
{
SDL_Log("No se cargo el graficio");
   Run = false;
}
else
{

opt_img =  SDL_ConvertSurfaceFormat( unloaded, SDL_PIXELFORMAT_RGBA8888, NULL );
if(opt_img == NULL)
{
SDL_Log("Imposible optimizar");
Run = false;
}
}


if(Run == true)
{




//obtner el tamano de los valores de la pantalla.
if( SDL_GetCurrentDisplayMode( 0, &mode ) == 0 )
     {
width   = mode.w;
height  = mode.h;
fillRect.w = width;
fillRect.h = height;
player.x = width /2;
player.y = height/2;
 }


//crear la ventana SDL
window = SDL_CreateWindow("Neo.App",SDL_WINDOWPOS_UNDEFINED,SDL_WINDOWPOS_UNDEFINED,width, height, SDL_WINDOW_SHOWN);
    if(window == NULL)
{
SDL_Log("Imposible crear la ventana ,[%s]", SDL_GetError());
    Run = false;
}
else
{
Run = true;
    }
    if(Run == true)
{
renderer = SDL_CreateRenderer(window , -1 ,  SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
if(renderer == NULL)
{
Run = false;
}
}
///Creamo la textura aqui.
SDL_SetColorKey(opt_img, SDL_TRUE, SDL_MapRGB(opt_img->format, 0,0,0));


img = SDL_CreateTextureFromSurface( renderer, opt_img);















///bucle principal.
while(Run)
{
start = SDL_GetTicks();
///pollEvent's
while(SDL_PollEvent(&event))
{
if(event.type == SDL_QUIT)
{
Run = false;
#ifdef _DEBUG_ENABLE
 SDL_Log("se acabo");
#endif
}
if(event.type == SDL_KEYDOWN ||  event.type == SDL_FINGERDOWN)
            {
if(event.type == SDL_FINGERDOWN)
{
color_pantalla.g +=32 ;
if(color_pantalla.g == 256)
{
            color_pantalla.g = 0;
       color_pantalla.r += 32;
color_pantalla.b += 64;
if(color_pantalla.r == 256)
color_pantalla.r = 0;
if(color_pantalla.b == 256)
color_pantalla.b = 0;
}
}



}







}//end event;


//update
   for(unsigned int initializer = 0; initializer <255; initializer++)
{
start_pos[initializer].x = 10 + rand() % width;
       start_pos[initializer].y = 10 + rand() % height;
       start_pos[initializer].w = 32;
   start_pos[initializer].h = 32;
}










//Draw
 SDL_RenderClear(renderer);
 SDL_SetRenderDrawColor( renderer, color_pantalla.r, color_pantalla.g, color_pantalla.b, color_pantalla.a);        
         SDL_RenderFillRect( renderer, &fillRect );
     CopiarPantalla(renderer,start_pos,img);
 
 SDL_RenderCopy(renderer, img,NULL,&player);

SDL_RenderPresent(renderer);

//FPS
}




}

return 0;
}




pienso que el error puede estar la funcion copiar.. pero no estoy seguro. por cierto en Desktop cuando la corro la aplicacion cierra desde que entra al primer for , pero en mobil es diferente y es confuso.

gracias
#45
si entiendo , de hecho ningun lenguaje esta hecho para trabajar con ellos pero la cosa es que me gustaria poder manipularlos, ahora me pondre a tratarlo a ver que sale. bueno seguro a muchos no le hace sentido tratar de acceder a esa informacion , pero verdad Gracias Por la aclaracion igual si lo termino mostrare algo de lo que trato de hacer!! ;-) ;-)
#46
Primero que todo gracias colegas !! entiendo que es mal legible hacerlo usando '\n' pero la verdad lo puse por ejemplo ayer no se me ocurria poner otra cosa , por ejemplo como dice  la firma de la funcion , trato de hacer un "editor" y la verdad queria probar mas cosas por ejemplo cuando manda start of text STX , cuando manda el NUL   cuand es ETX  end of text , claro dependiendo que quiera hacer en el momento ayer solo queria 'parsear ' los saltos de linea usando solo ele codigo ascii . un ejemplo es el notepad++ cuando abro un fichero que contienen algunos de los valores el lo representa por que fue programado para eso ... y me gustaria tener control sobre eso.  seguire probando y preguntando a ver que sale ...  ;-) :silbar:
#47
Buenaas !! Saludo !!!


tengo una pequena duda estoy leyendo algo sobre caracteres de la tabla ascii estoy usando un cast a char pero cuando ingreso el retorno de linea (13) por ejemplo nop pasa nada por lo menos cuando comparo directamente con caracteres quizas lo estoy haciendo mal , por que tengo una funcion que si me da los espacios que quiero por ejemplo dejare los codigos de ambos para que vean que trato de decir .... gracias

... solo me gustaria un consejo que deberia de hacer por favor no quiero el codigo me he dado cuenta que quizas a veces pregunto por algo y me dan el codigo y la verdad me gustaria solo un consejo gracias !!!!  :laugh: :laugh: :laugh: 
y disculpen las molestias !!!!!!

Código (cpp) [Seleccionar]
void Editor()
{

string filename;
cout <<"por favor ingrese el  del fichero que va a editar"<<endl;
    ///analizar texto/
getline(cin , filename, '$');
for(string::iterator it =filename.begin(); it != filename.end(); it++)
{
if(*it == (char)13 || *it == (char)3)
cout <<"Salto de linea \n "<<endl;
else
cout << '\n' << *it <<endl;  ///aqui me imprime todo los caracteres
                                                                 ///incluyendo los espacios y los enter
                                                                 ////solo es parte del codigo de la
                                                               //// asi que el nomnre lo pueden ignorar.....
}
}



en este por ejemplo el espacio si sale como deseo pero en el codigo de arrba no pasa nda d
Código (cpp) [Seleccionar]
void PrintSpace(unsgined int cnt)
{
    for(auto e(0) : cnt )
       cout <<( char ) 32;
}



Gracias por los consejos !!
#48
Buenas a tod@s aqui !!
tengo una duda estoy usando eclipse para un proyecto y tengo configurado un .bat y tengo dos inconvientes uno es que cuando le doy a build me muestra el path y no corre el comando y de ser posible como se configura para que capture la salda ,gracia !!!
#49
Programación C/C++ / creando un registro
9 Julio 2015, 05:50 AM
Saludos a todos tengo un pequeno incoviente con el siguiente codigo cuando lo uso mi aplicacion se cae , creo que estoy manejando mal los archivos bueno dejo el codigo a ver si me aconsejn



Código (cpp) [Seleccionar]

#include...
////librerias esas estanbien incluida

///usare una funcion getTransaccionActual()
void CopiarFichero(){

  int inFhandle;
  int outFhandle;
  int cnt;
  int bytesLeidos;
  int bytesEscrito;
TRAN_STRUCT stTran;

   inFhandle    = open("lect.dat", O_RDONLY);
   outFhandle  = open("lect.dat", O_WRONLY | O_CREAT);
   

   if(inFhandle < 0 || outFhandle < 0)
   {
        LOG("Error abriendo el fichero");
       /// si pudiera salir  o hacer Ret ,aunque no hay salida en log
   }
  else
  {
    do{
          bytesLeidos = read(inFhandle , (char *)&srTran, sizeof(srTran));
         
           if(bytesLeidos == sizeof(srTran))
           {
           
         if(strcmp(srTran.code, "mivalor") != 0)
           {
              bytesEscritos = write(outFhandle , (char *)&srTran, sizeof(srTran));
            }
           else
           {
                  ////simplemente ignoro
           }
         
      }else
          {
                /////mas codigo para mostrar el error
         }
    }while(bytesLeidos == sizeof(srTran));
    close(inFhandle);
    close(outFhandle);' 
}
   

////mas codgio



}






bueno es parte de lo que tengo hecho se utiliza y me pregunto que podria estar haciendo mal ?
me como alguna variable , el dispositvo al que se la pongo truena... no se que hacer ya.


GRACIAS !!
#50
Buenas a todos me pregunto si alguien me podria decir por favor la diferencia entre

typedef struct y struct . que diferencias en codigo , se que typedef se usa para declarar tipos .