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ú

Temas - bash

#1
Programación General / Matrix de Pantalla
9 Abril 2018, 23:16 PM
Hola a tod@s!!
espero que todos anden bien por aqui, me gustaria que me den algun consejo acerca de algo que quiero crear les cuento mi necesidad a ver si me dan ese consejo.

tengo una pantalla de 320 X 480 (en pixeles todo) tengo un matrix (apuntador de c++) sin tamaño asignado supongamos que estoy usando c++ aunque la implementacion puede ser en otro lenguaje. y tengo una variable que maneja el tamaño de la fuente estare usando TTF aun no se que espacion tengo entre caracteres pero podria ser 2px y lo que me gustaria hacer es que esa matrix se le asignaran las columnas y las filas por la cantidad de caracteres especificos dependiendo del tamano de la fuente( se puede omitir el espacio en letras) la verdad ese el problema mas incomodo que he visto me gustaria por favor si es posible unas recomendaciones de ustedes, lo pongo en este foro por que no me gustaria si aparece alguien a limitarme a programadores de c++ o c, lo importante es como se podria implementar el algoritmo, la verdad no tengo nada aun hecho.

Gracias de antemano y disculpen las molestias!!
#2
un saludo a todos , ahora mismo me encuentro estudiando estructura de datos y estoy tratando de aprender a  crear lista enlazada !!

Código (cpp) [Seleccionar]



class Link{
struct node{
node *next;
int vl;
};

node *head;
node *curr;
node *temp;

public:


Link(){
head = curr = temp = NULL;
}

void Add(int d){

node *n = new node;
n-> next = NULL;
n->vl = d;


   if( head == NULL)
   {
   head = n;
   }
   else
   {
      curr = head ;
      while(curr->next){
      curr = curr->next;
      }
      curr->next = n;
      curr = n;
   }

}

void Delete(int vl){
temp = head;
curr = head;
node *temp_;
if(head != NULL){

if( head->vl == vl )
{
   if(head->next != NULL)
   {
   temp  = head->next;

   temp_ = head;

   head = temp;

   delete temp_;
   temp_ = NULL;
   return;
   }

}
}

        while(curr != NULL && curr->vl != vl){
        temp = curr;
        curr = curr->next;
        }
if(curr == NULL)
return;
else{
temp_ = curr;
curr = curr->next;
temp->next = curr;
    delete temp_;
    temp_ = NULL;
}


}

  void Print(){
  node *temp = head;
  if(temp != NULL){
  while(temp != NULL)
  {
  cout << temp->vl <<endl;
  temp = temp->next;
  }
  }
  }

};




int main(){

Link li;
li.Add(0);
    li.Add(1);
    li.Add(2);
    li.Add(3);
    li.Add(4);
    li.Add(5);
    li.Add(6);
    li.Add(7);
    li.Add(8);
    li.Add(9);
    li.Delete(5);
    li.Delete(0);
    li.Delete(8);
    li.Print();

}








me gustaria opiniones.  gracias de antemano...
#3
Buenas a todos !!
tengo una duda sobre arreglos !!


tengo la siguiente estructura.


Código (cpp) [Seleccionar]
struct Tra{

  char b[8];
  char c[32];
};

...

int main(){

  Tra tr;
  memset(&tr, 0x00, sizeof(tr));
 
  strncpy(b, "123456789", 7);
  strncpy(c, "abecdefeghijklmnopqrstuvywz");

  cout << b <<endl;

}

Código (applescript) [Seleccionar]

salida : >> 123456789abecedefghi.....


me gustaria saber por que pasa eso con el valor de b si solo copio una cantidad especifica de caracteres en b?

nota : entiendo que c y c++ no tiene bound check .




el problema no es la compilacion ,esto lo edite rapido :D

pero al parecer no entendieron asi que me explicare , como cree esta estructura Tra
cree dos variable de tipo array a char , ambas con tamanos diferente , luego instancie un objeto de Tra en main , lo limpie ,luego le puse valores no importa que valor estos solo son ejemplo , luego lo imprimi solo el valor de la primera variable y la salida fue la mezcla de todos los valores de la variable c dentro de b , se que las estructura de array plano son como un super array pero por que salen todos los valore de c en b si solo copie cierta cantidad de char con strncpy?
#4
   Buenas a tod@s feliz inicio de año nuevo...
   bien, tengo una duda estoy tratando de crear un aplicacion te tipo webserver/server
   usando socket , serversocket, solamente por que quiero aprender y tambien quisiera saber si
   este servidor puede interactuar con aplicaciones escritas en otros lenguajes (c++, c.. obvio que si)
   quisiera entender por pasos y no soy nuevo en java pero para esta aplicacion mis conocimientos de socket
   son limitados , quisiera entender, quisiera que me recomendaran algun libro y link donde pueda leer
   acerca de este tema.
   
   
   pero como quiera les quiero mostrar algo sencillo , que quizas todos los que saben de      estetema en el foro saben.




Código (java) [Seleccionar]
package ConexionCliente;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintWriter;
import java.net.Socket;

public class SocketCliente{

///BufferedOutputStream bout = null;
///BufferedInputStream  bin  = null;
ObjectOutputStream output = null;
ObjectInputStream  input  = null;
Socket               sck  = null;
boolean              can  = false;


public SocketCliente(){
try{
sck = new Socket("localhost", 4444);
}
catch(Exception e)
{
   e.printStackTrace();
}
}





public SocketCliente(String host, int port){
try
{
sck = new Socket( host , port);
    if(sck != null)
    System.out.println("Se Conecto con "+sck.getInetAddress().getHostAddress() );
}
catch(Exception e)
{
   e.printStackTrace();
}
System.out.println("SocketCliente");
}


public String receive(){
System.out.println("receive");
String ret= null;

if(sck.isClosed())
{
    System.out.print("Socket is Close");
    return ret;
}

try {
BufferedReader br = new BufferedReader(new InputStreamReader(sck.getInputStream()));

String t;
while((t = input.readLine()) != null){
ret += t;
System.out.println(t);
}
//br.close();
input.close();

} catch (IOException e) {
e.printStackTrace();
}
finally{
System.out.println("receive");
return ret;
}
}


public void Send(String str){

System.out.printf("%s\n", str);
try {


if(sck.isClosed())
{
    System.out.print("Socket is Close");
    return;
}
    PrintWriter pw = new PrintWriter(sck.getOutputStream());
        pw.print(str);
    pw.flush();
//output = new ObjectOutputStream(sck.getOutputStream());
//output.writeBytes(str);
    //output.flush();
    //output.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
System.out.println("Send");
}
}

public void Close(){
if(!sck.isClosed())
{
   try {
sck.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}


este codigo es de Main
Código (java) [Seleccionar]

public class Main {

public static void main(String[] args) {
       
//try{
//Socket s = new Socket(InetAddress.getByName("stackoverflow.com"), 80);
//PrintWriter pw = new PrintWriter(s.getOutputStream());
    //pw.print("GET / HTTP/1.1\r\nHost: stackoverflow.com\r\n\r\n");
   /// pw.print("Host: stackoverflow.com\r\n\r\n");
//pw.flush();
//BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
//String t;
//while((t = br.readLine()) != null) System.out.println(t);
//br.close();
//}catch(Exception e){
    // e.printStackTrace();
//}
   String str;
   str = "GET / HTTP/1.1\r\nHost: google.com\r\n\r\n";
  /// SocketCliente sck = new SocketCliente("google.com", 80);
   SocketCliente sck = new SocketCliente("localhost",4444);
   sck.Send(str);
   String res  = sck.receive();
   System.out.println(res);
   sck.Close();






ahora el codigo del servidor


Código (java) [Seleccionar]


package Server;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Date;

public class Server implements Runnable{

int          puerto;
ServerSocket ssock;
Socket        sock;
boolean        isrun = true;
String         server_id;
String         response;


Server(int puerto, String sid){
this.puerto = puerto;
server_id = sid;
    try{
ssock = new ServerSocket(puerto);
    }catch(IOException e){
    e.printStackTrace();
    }
}

public void HandleRequest(){
   
System.out.println("manejando desde el Puerto "+ Integer.toString(puerto));

  try{
sock = ssock.accept();
System.out.println("cliente Conectado desde la IP "+sock.getRemoteSocketAddress());

Reader in = new InputStreamReader(new BufferedInputStream(sock.getInputStream()));

StringBuilder request = new StringBuilder(2048);
while (true) {
int c = in.read();
if (c == '\r' || c == '\n' || c == -1) break;
request.append((char) c);
}

System.out.printf("%s", request.toString());

Writer out = new OutputStreamWriter(sock.getOutputStream());
Date now = new Date();
out.write(now.toString() +"\r\n");
out.flush();
sock.close();
isrun = false;
        System.out.println("Cliente desconectado");

  }catch(IOException e){
  e.printStackTrace();
  }


}







@Override
public void run() {
while(isrun){
System.out.println("Esperando conexion....");
HandleRequest();
}

}






}






Bueno cada vez que trato de interactuar el servirdor lee solo hasta \n \t el reader no me permite leer una linea completa se queda colgado, me gustaria que me ayudaran por favor post-data la informacion que me respoda no importa esta parte se puede obviar. gracias de antemano por los consejos..



#5
Java / Ejemplo real sobre thread
13 Diciembre 2016, 17:31 PM
Buenas a todos de nuevo!!

ahora estoy tratando de enteder los hilos de java , he leido un par de escritos y todos con el mismio esquema de contar numeros hasta 10 y cosas asi ,si es posible alguien me podria mostrar un ejemplo de uso diario de los hilos.  gracias de antemano.
#6
Java / JPanel no dibuja imagen [inherit]
9 Diciembre 2016, 14:10 PM
buenas a todos !!


les cuento mi duda estoy tratando de ponerle un background a mi jpanel pasandole una image preeviamente cargada , cuando trato de dibujar con la funcion heredada de PaintComponent la imagen aparece null , es extrano por que todas las imagenes que pongo las uso en otro componente es mas antes de pasarla verifico de varias formas que no sea nulo pero al final es lo mismo siempre, mas abajo esta el codigo de jpanel

Código (java) [Seleccionar]
public class RockPosPanel  extends JPanel{

      Image Icon;
      String url;
  int x, y,w,h;

  JLabel label;
 
 
   public RockPosPanel(){
   super(null);
       super.setLayout(null);
   }
 
   public RockPosPanel(String str){
   this();
   
   x = 0;
   y = 0;
   w = 100;
   h = 100;
   url = str;
   if(str != null)
   {
   try {
       System.out.print("Cargando imagen");
   Icon = ImageIO.read(new File(str));
       if(Icon == null)
       System.out.println("La image es null desde que la cargan");
     
   } catch (IOException e) {

e.printStackTrace();
}
   
   
   
   }
   }
 

 
   public void SetImage(Image im, int x, int y, int w, int h)
   {
   
   if(im != null)
   this.Icon = im;
   
   this.x = x;
   this.y = y;
   this.w = w;
   this.h = h;
   }

@Override
  protected void paintComponent(Graphics g) {
    super.paintComponent(g);
       
      if(Icon == null)
      {
      if(url !=null)
try {
Icon = ImageIO.read(new File(url));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
       if(Icon == null)
       System.out.println("La image es null desde que la cargan");     
     
      System.out.println("La image es null");
      }

      if(Icoo)
      g.drawImage(Icon,x,y, w, h, this);
   
    ///System.out.println("image is null");
   
}

}



y cuando pruebo la isntancia de la clase :
Cargando imagen
la imagen no es null
image is null

image is null

image is null

image is null

image is null

image is null




quizas me falto implementar algo pero la verdad no he encontrado informacion en la red
si alguien me diera una recomendacion, seria mas que suficiente.
gracias de antemano.
#7
Bases de Datos / insertar en varias tablas fk y pk
1 Diciembre 2016, 03:59 AM
un saludo a tod@s en el foro!!

soy nuevo en esto de base de datos ,y quiero entender algo, le explico tengo varias tablas , normalizadas y como es entendible hay una relaccion donde una de las columna de la tabla es una llave foranea de otra tabla ,entonces me gustaria ver un ejemplo de como puedo hacer un insert en ambas tablas ejemplo...


tabla cliente ( idcliente, nombre....)
tabla datoscliente ( idcliente fk, direccion,...)

esa seria mi tabla de prueba quisiera insertar datos en ambas tablas ,como podria hacerlo??? 
#8
Buenas a todos!!

tengo como siempre un par de preguntas :

1- estoy tratando de linkear una libreria estatica (.a) desde una ruta alternativa al path que tiene el compilador por defecto y si siempre me dice que no encuentra la libreria,
estoy usando GCC segun el manual pasando el path con la opcion -LC eso esta resuelto pero no es asi.

2- estoy tratando de utilizar la libreria .a pero sin el prefijo lib, segun varias fuentes en internet pasando -l:<Nombre_de_mi_libreira>.a eso deberia estar resuelta pero no, tambien puede ser que el problema dependa del punto 1.


quite todas las dependencias de la libreria solamente para probar la aplicacion y este seria le siguiente punto.


3-estoy tratando de hacer una prueba fuera de la maquina que tengo en desarrollo y cuando trato de correr la aplicacion ya creada , me sale un msg que dice, que la version de la aplicacion no es compatible con la version de windows que estoy utilizando, que verifique si necesito una version de 32 o 64 bit de la aplicacion y contacte al que publica la aplicacion.


agradezco por adelantado.

#9
un Saludo a Todos !!

tengo un incovenienten , les cuento estoy creado una clase para que me haga de manager con las bases de datos es decir que me cree la conexion , que ejecutes los query o  alguna actulizacion y luego cierre la conexion , el siguiente incoveniente es el que tengo , mi clase se conecta bien a la base de datos (estoy usando Auntenticacion )si fallo me da error y luego si trato ingresar con un usuario valido como quiera me da la misma excepcion(rechanzando la conexion ), estoy usando Derby pero supongo que es problema de programacion, la verdad estoy perdido. dejare el codigo a ver si me pueden hechar una mano o consejo

Código (java) [Seleccionar]


public class RockPosDBManager
{
private boolean debugEnable;
private int     engine;
private int     typeOfConn;


private String  Embeddeddriver    = "org.apache.derby.jdbc.EmbeddedDriver";
private String  Clientdriver      = "org.apache.derby.jdbc.ClientDriver";
private String  mySQLClientDriver = "com.mysql.jdbc.Driver";

private String  DerbyServer   = "jdbc:derby://localhost:1527/";
private String  DerbyNoServer = "jdbc:derby:/";
private String  MySQLServer   = "jdbc:mysql://localhost:3306/";


private String  DBName;
private String  UserName;
private String  password;

 
private String finalConnectionString;
private String finalDriver;
private boolean    Authentication;


private boolean    create;
private Connection connection;
private boolean    isConnected;


/**
* @function Print
* @brief  this function Print Information on terminal console if the Debug Flag is enable.
* @param String - this String is the value that will be print onto the screen
* */
private void Print(String templ){
if( debugEnable == false) return;
if( templ != null )
{
//System.out.printf("DEBUG :  %s\n", templ );
}
}


/**
* @function Print
* @brief  this constructor will set the current Engine, kind of connection, we have  avaliable Derby engine and Mysql .
* @param  int sqlEngine =type of Engine rockPosClient = server, embedded or Client
* @see  RockPosDBEngine &  RockPosTypeConn
* */
public RockPosDBManager(int sqlEngine , int rockposClient, boolean created ){
this.engine     = sqlEngine;
   this.typeOfConn = rockposClient;
   this.debugEnable     = false;
   this.isConnected = false;
   this.create = created;
}

/**
* @function setDebugVerbose
* @brief  this function will turn on the Debug Flag for Terminal.
* @param  none
* @see  
* */
public void setDebugVerbose(boolean e){
debugEnable=e;
}

/**
* @function isConnectedIntoDatabase
* @brief  this Function Verify if the databe is connected;
* @param  none
* @see  
* */
public boolean isConnectedIntoDatabase(){
return this.isConnected;
}

/**
* @function SetDBNameConn
* @brief  
* @param  
* @see  
* */
public void SetDBNameConn(String DBname){
    try{
    if(DBname == null)
    throw new Exception("DB name Is null.");
   
    this.DBName = DBname;
    Print("DB name is : "+ DBName);
   
   
    switch(engine){
   
    case RockPosDBEngine.SQL_DERBY:
     Print("ENGINE SQL_DERBY");
    switch(typeOfConn)
    {
    case RockPosTypeConn.ROCKPOS_CLIENT:
     Print("Type Of Connection  ROCKPOS_CLIENT");
      finalConnectionString = DerbyServer   + this.DBName;
      finalDriver = Clientdriver;
      break;
    case RockPosTypeConn.ROCKPOS_EMBEDDED:
      Print("Type Of Connection  ROCKPOS_EMBEDDED");
      finalConnectionString = DerbyNoServer  + this.DBName;
      finalDriver = Embeddeddriver ;
      break;
    case RockPosTypeConn.ROCKPOS_SERVER:
      Print("Type Of Connection  ROCKPOS_SERVER");
      finalConnectionString = DerbyServer   + this.DBName;
      finalDriver = Clientdriver;
      break;
    }
    break;
   
   
    case RockPosDBEngine.SQL_MYSQL:
    Print("ENGINE SQL_MYSQL");
   
   
    switch(typeOfConn)
    {
    case RockPosTypeConn.ROCKPOS_CLIENT:
    ///   Print("Type Of Connection  ROCKPOS_CLIENT");
      finalConnectionString = MySQLServer   + this.DBName;
      finalDriver = mySQLClientDriver;
      break;
    case RockPosTypeConn.ROCKPOS_EMBEDDED:
    ////  Print("Type Of Connection  ROCKPOS_EMBEDDED");
      Print("MySQL does not work in Embedded Mode yet.");
      finalDriver = mySQLClientDriver;
      break;
    case RockPosTypeConn.ROCKPOS_SERVER:
    ////  Print("Type Of Connection  ROCKPOS_SERVER");
      finalConnectionString = MySQLServer  + this.DBName;
      finalDriver = mySQLClientDriver;
      break;
    }
    break;
    }
     Print("Connection Driver is : "+ finalDriver);
     Print("Connection String is  ===> "+ finalConnectionString);
    if(this.UserName != null && this.password != null)
    {
    Print("Authentication is  On.");
    Print("User name is =[ "+this.UserName+ " ] password = [ "+ this.password +"]");
    Authentication = true;
    }
    else
    {
     Print("Authentication is  On.");
     Print("No user name was provide.");
    Authentication = false;
   
    }

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

/**
* @function SetCredential
* @brief  
* @param  
* @see  
* */
public void SetCredential(String user, String pass){
  if(user != null)
  this.UserName = user;
  if(pass != null)
    this.password = pass;
}

public void RequireAuth(boolean auth){
this.Authentication = auth;
}



/**
* @function Connect
* @brief  
* @param  
* @see  
* */
public boolean Connect(){

this.connection = null;
try{
Class.forName(finalDriver);
}
catch(Exception e)
{
e.printStackTrace();

this.isConnected = false;
return this.isConnected ;
}

try{

String param;
  if(create == false)
  {
 
  param =  finalConnectionString +";user="+ this.UserName+";password="+ this.password;
 
  }
  else
  {
  param =  finalConnectionString +";create=true;user="+this.UserName+";password="+ this.password;
 
  }

   System.out.printf("Param to Server : %s", param);
   this.connection = DriverManager.getConnection(param);
                   if(this.connection.isValid(30)){
                    this.isConnected = true;
                    System.out.print("\nEsta Conectado.");
                   }
                   else{
                    this.isConnected = false;
                    System.out.print("\nno Esta Conectado.");
                   
                   }
                       
   
}
catch(SQLException e)
{
  int code = e.getErrorCode();
  e.printStackTrace();
  this.isConnected = false;
  return this.isConnected;
}

                   
     return this.isConnected;

}


public boolean Disconnect(){

  try {
    this.connection.close();
    } catch (SQLException e) {
   
     e.printStackTrace();
 return isConnected;
    }
    this.isConnected = false;
return isConnected;  
}









public boolean Execute(String sql){
///Print("Execute");
boolean res = true;
if(this.isConnected == false  )
{
  Print("theres is not Connection");
  return false;
}

PreparedStatement stmt   = null;
try
{
   stmt   =  this.connection.prepareStatement(sql);
   stmt.executeUpdate(sql);
}catch(Exception e){
e.printStackTrace();
Print("Error Executing that Query");
return false;
}
finally{
///Print("Execute Finally");
try {
stmt.close();

} catch (Exception e) {
       Print("Error closing Statement.");
}
}
return res;
}








public ResultSet Query(String sql){

if(this.isConnected == false  )
{
  Print("theres is not Connection");
  return null;
}

Statement stmt   = null;
ResultSet result = null;
try
{


this.connection.setAutoCommit(true);
   stmt   =  this.connection.createStatement();
   result = stmt.executeQuery(sql);
   if(result == null)
    Print("Result is null");
   
}catch(Exception e){
Print("Error Executing that Query");
}
try {
stmt.close();
} catch (Exception e) {
           Print("Error closing Statement.");
}
return result;
}


public void CloseConn(){
try {
this.connection.close();  
Print("Closing Connection");

} catch (Exception e) {
         Print("Error Closing Conection.");
}
this.isConnected= false;

}






}



algo que me falto ponerle es una prueba de lo que quiero hacer
Código (java) [Seleccionar]

RockPosDBManager rm = new RockPosDBManager(RockPosDBEngine.SQL_DERBY, RockPosTypeConn.ROCKPOS_CLIENT, true);
rm.SetDBNameConn(RockPosConstant.DB_PATH+"d1234f");
rm.SetCredential("dbmanager", "dbmanager");
boolean creado = rm.Connect();
if(creado == true)
System.out.println("prueba 1Creado");
else{
System.out.println("prueba 1 no Creado");

}
String sql = "CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(\'derby.database.defaultConnectionMode\',\'noAccess\')";
creado = rm.Execute(sql);
if(creado == true)
System.out.println(" prueba 2 Se Ejecuto");
else{
System.out.println(" prueba 2 no sejecuto Creado");
   
}

rm.Disconnect();
rm.SetDBNameConn(RockPosConstant.DB_PATH+"d1234f");
rm.SetCredential("usuario2", "usuario2");
    creado = rm.Connect();
if(creado == true)
System.out.println("\n\n\n prueba 2 Creado\n");
else{
System.out.println("\n\n\n prueba 2 no Creado\n");
     
}
rm.Disconnect();
rm.SetCredential("dbmanager", "dbmanager");
    creado = rm.Connect();
if(creado == true)
System.out.println(" prueba 4 prueba pasada ");
else{
System.out.println("prueba 4 prueba no pasada");
    return;
}



#10
Buenas a todos !!

estoy actualmete aprendiendo a implementar una lista enlazada simple y me gustaria saber como es que los punteros estan trabajando de manerar interna para poder comunicarse, si es algo sencillo en teoria pero tengo una duda que ronda en mi cabeza hace un par de minutos, estoy siguiendo un tutorial y he entendido algunas cosas como que cada nodo (usando una estructura ) tieene un puntero a otro nodo que esta en una "lista" y al final de la lista hay uno que apunta a NULL y para este aproach estoy usando c++ y plantillas , le explico un poco como tengo mi codigo:

tengo una clase llamada List esta contiene una estructura Node que contiene el dato T y el link al sugiente elemento de la estructura .... ahora en la clase tengo 2 puntero first y curr
estos contienen el dato de la cabeza (Inicio de la estructura) y curr que contiene el frente de la estructura (front )  bien en la funcion siguiente

Código (cpp) [Seleccionar]


    void insert(T f)
    {
      Node<T> *temp= new Node<T>(f);
       if(first == NULL)
       {
       first= temp;
       curr = temp;
       }
       else
       {
       curr->next=temp;
       curr = temp;
       }
    }

el primer if esta bien  pero esta parte en else me hace perderme por ejemeplo
Código (cpp) [Seleccionar]

     void Print(){
    if(first == NULL) return;
         curr = first;
    while( curr  )
    {
    cout << "Value is : "<< curr->date<<endl;
    curr = curr->next;
    }
     }


donde curr = first
toma el first pero en la funcion Insert la que se lleno fue curr por que first tiene el link de first, alguien podria explicarme eso por favor.


Código (cpp) [Seleccionar]

#include <iostream>

#include <string.h>
using std::cout;
using std::string;

template<typename T>
class List
{
private:
template<class R>
struct Node{
R  date;
Node *next;
    Node(T t){
    date = t;
    next = NULL;
    }
};

Node<T> *first;
Node<T> *curr;

public:

List(){
first = NULL;
curr  = NULL;
}
    List(int d)
    {
    Node<T> *temp= new Node<T>(d);
    first = temp;
    curr  = temp;
    }

    void insert(T f)
    {
      Node<T> *temp= new Node<T>(f);
       if(first == NULL)
       {
       first= temp;
       curr = temp;
       }
       else
       {
       curr->next=temp;
       curr = temp;
       }
    }

     void Print(){
    if(first == NULL) return;
         curr = first;
    while( curr  )
    {
    cout << "Value is : "<< curr->date<<endl;
    curr = curr->next;
    }
     }


     void DeleteData(int data)
     {
          Node<T> *delPtr = NULL;
          Node<T> *temp   = first;
          curr            = first;

          while(curr != NULL && curr->date != data)
          {
          temp = curr;
          curr = curr->next;
          }

          if(curr == NULL)
          {
          cout << "this data is not in the list;";
          }
          else
          {
          delPtr = curr;
          curr = curr->next;
            temp->next = curr;
          if(delPtr == first)
          {
          first = first->next;
            temp  = NULL;
          }
               delete delPtr;
          }

     }




};



int main()
{
   List<int > ls;
   ls.insert(12);
   ls.insert(345);
   ls.insert(345);
   ls.DeleteData(345);
   ls.Print();
}


#11
buenas a todos
me gustaria compartiles algo que estoy haciendo para aprender mas sobre los punteros y los templates, antes que nada se que podria usar una lista enlazada  y podria evitarme lo de asignarle memoria dinamica con new pero quiero tenerla asi controlada con tamano fijo.
me gustaria sus opiniones.

Código (cpp) [Seleccionar]




template<class T>
class FixedArrayTemplate
{
private :
  int max_size;
  int size;
  T *Allocate_array;
  bool Correct;
public:
  FixedArrayTemplate(const unsigned int _size)
      {
          Correct = CreateMemoryArray(_size);
      }

  bool Push(T element)
  {
  if(size < max_size)
  {
  Allocate_array[size] = element;
  size++;
  return true;
  }
  else
  return false;

  }
     bool isCorrect(){return Correct;}

     void Clean()
     {
    if(this->Correct) delete[] this->Allocate_array;
    this->Allocate_array = NULL;
    this->Correct = false;
    size = 0;
    max_size = 0;
     }

      bool CreateMemoryArray(int _size)
      {
      if(this->isCorrect())
          this->Clean();

  max_size = _size;
  size     = 0;
  Allocate_array = new T[_size];
  if(Allocate_array == 0)
  {
Correct = false;
return Correct;
  }
  else
  {
  Correct = true;
  return Correct;
  }

      }


      T getElement(int e)
      {
      if(( e > 0 && e < size ) && e < this->max_size )
      {
    if(this->Correct)
      return this->Allocate_array[e - 1];
      }
      else
      {

    if(this->Correct)
      return this->Allocate_array[size - 1];
      }
      }



     ~FixedArrayTemplate()
     {
            Clean();
     }
};


int main()
{

   char *buffer1 ="buffer 1 ";
   char *buffer2 = "buffer 2";
   char *buffer3 = "buffer 3";
   char *buffer4 = "buffer 4";
   char *buffer5 = "buffer 5";
   FixedArrayTemplate<char *>miArray(20);
   if(miArray.isCorrect())
   {
   miArray.Push(buffer1);
   miArray.Push(buffer2);
   miArray.Push(buffer);
   miArray.Push(buffer3);
   miArray.Push(buffer4);
   miArray.Push(buffer5);
   cout << miArray.getElement(0)<<endl;
   cout << miArray.getElement(1)<<endl;
   cout << miArray.getElement(2)<<endl;
   cout << miArray.getElement(3)<<endl;
   cout << miArray.getElement(4)<<endl;
   cout << miArray.getElement(5)<<endl;
   cout << miArray.getElement(6)<<endl;
   }

}





gracias su opinion es muy importante.
#12
Programación C/C++ / Cortar Cadena [slice]
29 Septiembre 2016, 23:28 PM
Buenas A tod@s en el foro , tengo una duda media boba e interesante he estado viendo varias libreria para manejo de cadenas o mejor dicho un par porque necesito una funcion para cambiar el tamano de una cadena (claro eliminando caracteres ) lamentablemente no encontre ninguna que haga esto eficientemente o que requiera de alguna otra libreria y entonces por esa razon decidi crear una pequena libreria en parte me ha funcionadod correctamente , pero tengo un inconveniente creando una funcion que recorte un mi cadea desde algun punto especifico que pertenezca  a ella misma obviamente, quizas se el manejo de memoria. la verdad tengo un par de dias en esto y ya no encuentro como hacer esta funcion , posteare el codigo para recibir su recomendacion para ver si me pueden hechar una mano o algun consejo.


Código (cpp) [Seleccionar]
ini String::CutString(int beg, int end)
{
Dbg(__FUNCTION__, __LINE__, "");
   if(this->szChars == NULL)
    return 0;
if(this->inlen < end || this->inlen < beg)
return 0;

int   inLen         = 0;
char *szBeg         = NULL;
char *szEnd         = NULL;
char *szCharsCopy   = NULL;


szBeg       = (char *)calloc(inlen, sizeof(char ));
szEnd       = (char *)calloc(inlen, sizeof(char ));
szCharsCopy = (char *)calloc(inlen, sizeof(char ));


strncpy( szBeg, &this->szChars[0], beg);
strncpy( szEnd, &this->szChars[end], inlen);
// memcpy( szBeg, &this->szChars[0], beg);
// memcpy( szEnd, &this->szChars[end], inlen);


strncat( szCharsCopy, szBeg , strlen(szBeg));
strncat( szCharsCopy , szEnd, strlen(szEnd));

free (this->szChars);
this->szChars = NULL;

   inLen = strlen(szCharsCopy);
this->szChars = (char *)calloc(inLen + 1, sizeof(char ));
strncat( this->szChars , szCharsCopy, inLen );
this->szChars[inLen + 1] = NULL;

if(szBeg)
 free(szBeg);
if(szEnd)
 free(szEnd);
if(szCharsCopy)
 free(szCharsCopy);
if(this->szChars)
   return strlen(this->szChars);
else
 return 0;
}
#13
Bases de Datos / jdbc derby , networkserve trace
8 Septiembre 2016, 19:11 PM
un saludo a tod@ en el foro me disculpan por favor si este tema no va aqui  estoy tratando de aprender jdbc y estoy tomando un curso en la escuela y me estan dando derby coml dbms y me pidieron  buscar algo como capturar las salida del servidor cuando se realize una transaccion desde un cliente. eso parece algo de la configuracion la aplicacion segun el manual acpta varios parametros uno es trace on y sysinfo pero ningunos me han servido . quizas me falta algo pero no doy con ese asunto. por favor ayuda o me podrian decir en cual tomo de.los  manuales puedo conseguir eso. muchas gracias y mis disculpas.
#14
Java / Agrandar un JTextField
6 Septiembre 2016, 16:49 PM
Buenas A todos !!
estaba haciendo un Form con JFrame y quiero usar un JTextField pero me gustari cambiar su altura, estaba buscando en la pagina de oracle pero no encuentro ningun ejemplo de como hacerlo , sera que alguien por favor pueda ensenarme o darme algun consejo de como hacerlo  le agradezco de antemano.
#15
Java / Consulta sobre Socket.....
29 Julio 2016, 20:00 PM
Saludos En general!


Disculpen la molestia , tengo una duda sobre la conexion con Socket en java, es posible que alguien me muestre un ejemplo en java donde pueda hacer una conexion , a una url o IP  con un puerto especifico  solo enviar un buffer y luego esperar un respuesta immediata, si parece una pregunta de alguien que esta haciendo una tarea pero no la verdad programo en c / c++ tengo un poquito de experiencia en socket. en c es sencillo
si eres un cliente creas el socket, haces un connect, si conecta haces un send y receive y luego un close , pero en java es bien diferente y me gustaria ver como podria aprender eso
si es posible , gracias de antemano.


postdata : Disculpe por no poner titulo.
#16
Programación General / Restful & json
15 Julio 2016, 18:22 PM
Saludos a todos mi gente !!

tengo una duda muy grande con este tema realmente , estoy tratando de hacer un request a un webservice que trabajo con JSON y la verdad no se como hacer una peticion al servicio , tengo algo de experiencia con SOAP pero me imagino que estoy es muy diferente
si alguien me puede dar una idea o aconsejarme a donde pueda buscar informacion mas profunda , gracias.
#17
Redes / Sincronizacion y cierre [AYUDA]
15 Mayo 2016, 15:28 PM
Un saludo a todos!!


tengo una duda que tiene un par de dias en mi cabeza y no se como hacer.. :[ soy programador y me pidieron que hiciera una aplicacion que me permita conectarme a web services , lo he logrado pero hago el proceso de conexion varias veces (mas o menos 15 veces ) en un lapso corto de tiempo  y cuando llego a un punto especifico la conexion sin mas es denegada , el socket de mi parte se crea y otra cosa estoy usando ssl , por cierto pongo el titulo por lo siguiente al conectarme como todos sabemos se hace una sincroniza con el servicio   , le muestro mejor :


ACK, SYN
...
SYN
FIN
ACK RST
...
ACT RST
FIN

todo esto solo cuando llego a la 15va conexion.. es decir immediatamente termino el socket se cierra , aunque algunas veces cuando veo el ID del socket es el mismo pero solo por veces ....


eso me tiene sin sueno , me gustaria por favor que me hechen una manito a ver como lo hago , gracias !!!
#18
Un saludo a todos!!


necesito su consejo por favor , les cuento tengo una funcion que quita  algunos caracterers y luego retornar un puntero a char * que deberia ser valido pero siempre me da null o la aplicacion se cae. es mejor que les muestre... la hize de varias manera..

Código (cpp) [Seleccionar]



char *purge_char(char *buff, char ch)
{
    char *ret = NULL; //OJo
    char *temporal = NULL;
    int len = strlen(buff);
    int index= 0;
    int omitidos = 0;
   
     temporal = new char[len + 1];
     while(index < len)
    {
         if(buff[index] != ch)
           {
                temporal[omitido] = buff[index];
                omitido++;
           }
          index++;
    }
   
   ret = new char[omitido + 1];
   index = 0;
   while(index < omitido)
    {
         ret[index] = temporal[index];
    }
    delete temporal; 
    return ret;
}











char *purge_char(char *ret, char *buff, char ch)
{
    if(ret != NULL)
     {
        delete ret;
        ret = NULL;
      }   
     char *temporal = NULL;
    int len = strlen(buff);
    int index= 0;
    int omitidos = 0;
   
     temporal = new char[len + 1];
     while(index < len)
    {
         if(buff[index] != ch)
           {
                temporal[omitido] = buff[index];
                omitido++;
           }
          index++;
    }
   
   ret = new char[omitido + 1];
   index = 0;
   while(index < omitido)
    {
         ret[index] = temporal[index];
    }
    delete temporal; 
    return ret;
}




esas dos formas son las que yo uso y me dan error ambas , me gustaria que alguien me aconsejara please.
#19
Programación C/C++ / detalle sobre extern
24 Febrero 2016, 16:06 PM
Saludo a todos !!

estoy aprendiendo alguinas coasa pero me he confundido con algo que realmetne me tiene loco a ver si alguien por favor me aclara :


Código (cpp) [Seleccionar]
#ifdef __cplusplus
extern "C"
{
#endif
#include<...>

#ifdef __cplusplus
}
#endif


para q
#20
Saludo a todos !!

Con el proposito de aprender estructura de datos estoy haciendo una clase para tener una especie de lista enlazadas , estoy usando template y como todos sabemos los templates se deben definir dentro del mismo header(c++98) entonces le cuento tengo una estructura llamado nodo que esta basada en plantilla y tiene de variables , un puntero al nodo siguiente y el dato a almacenar en esa instancia, luego tengo la clase lista que tiene el nodo a la cabeza de node y tengo una funcion que me devuelve un nodo
el problema me lo da al compilar

es el siguiente :
../src/LinkList.h:66:50: error: invalid cast from type 'Object' to type 'void*'
         head_traits = (T) createNode((void *)data);


me gustaira saber si hay perdidas de datos cuando forzo a compilar  con static_cast<void *> , el codigo solo compilar si uso eso si no :D es otra cosa. dejare  el codigo...
Código (cpp) [Seleccionar]



#define DEBUG 1

Node_traits<void*>* createNode(void *cr_dat)
{

#ifdef DEBUG
    clog << "__FUNCTION__"<<__FUNCTION__<<endl;
#endif

Node_traits<void*> *ret = new Node_traits<void*>();
    memcpy(ret->data, cr_dat, sizeof(cr_dat));
    ret->next_ptr_traits = NULL;
    return ret;
}



template<class T>
struct Link_List
{
int cnt;
    Node_traits<T> *head_traits;


    void CreateList(T data)
    {
        head_traits = (T) createNode((void *)data);
    }



};











gracias de antemano.!!
#21
Saludo para todos!!


les cuento he estado tratando de escribir una clase  pueda leer de una arhivo varios objetos y cuando encuentre el null salga de la func pero lo unico que me da es un par de exceptiones dejare el codigo abajo pienso que es la forma correcta asi pero si alguien me aconseja.

Código (java) [Seleccionar]
package Data;

import Data.InventarioData;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

public class ReadData {
ObjectInputStream inputFile;


public ReadData(){}


public Object ReadDataFile( String filename)
{
Object ret = null;
try {
inputFile = new ObjectInputStream(new FileInputStream(filename));
ret = inputFile.readObject();
   inputFile.close();

} catch (IOException e) {

e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

return ret;
}

public void ReadAllData(String filename)
{
InventarioData inv = null;

boolean reading = true;
{
try {
inputFile = new ObjectInputStream(new FileInputStream(filename));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while( reading == true )
{

try {
if((inv = (InventarioData ) inputFile.readObject())!= null)
 {
     inv.PrintConsole();
 }
} catch (ClassNotFoundException e) {
reading = false;
e.printStackTrace();
} catch (IOException e) {
reading = false;
e.printStackTrace();
}

}

}


}

}



la exception es la siguiente :
Código (lua) [Seleccionar]
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at Data.ReadData.ReadAllData(ReadData.java:50)
at Main.Main.main(Main.java:23)


tambien me gustaria agregar que la clase inventario Implementa serializable de hecho si leo individualmente un objeto me devuleve bien , pero ahora me estoy preguntado si esta bien el metodo que uso para escrbir el objeto y que append al archivo

Código (java) [Seleccionar]
ObjectOutputStream fileOutput;

...
            //// no se si hay otra forma de hacerlo.
            fileOutput = new ObjectOutputStream(new FileOutputStream(filename));
    fileOutput.writeObject(object);



tambien me gustaria agregar que no estoy usando  la documentacion de oracle simplemente estoy usando algo que tome de una clase y por eso quizas me hace falta algo , soy nuevo en java vengo de c++ , cualquier consejo o critica es bien tomado y agradecido...!!! :D



gracias de antemano.
#22
Un saludo a todos !!

tengo una duda , yo quiero intercambiar valores dentro de un vector , pero cada vez que accedo a algun elemento usando un objeto temporal recibo un error , vi la funcion std::swap pero ella intercambia entre dos vectores y yo solo tengo uno estoy pensando probar con algun iterador pero me gustaria saber su opinion.

abajo dejo el codigo aunque es algo sencillo :D

Código (cpp) [Seleccionar]


void SwapVectorValue(vector<Tile *>&ref,int index1, int index2)
{
   Tile *temp  = NULL;
   temp->x     = ref[index1]->x;
   temp->y     = ref[index1]->y;
   temp->color = ref[index1]->color;
   temp->index = ref[index1]->index;

   ref[index1]->x     = ref[index2]->x;
   ref[index1]->y     = ref[index2]->y;
   ref[index1]->color = ref[index2]->color;
   ref[index1]->index = ref[index2]->index;

   ref[index2]->x         = temp->x;
   ref[index2]->y         = temp->y;
   ref[index2]->color     = temp->color;
   ref[index2]->index     = temp->index;

}




gracias por su pronta respuesta...!!
#23
Programación C/C++ / fltk
9 Diciembre 2015, 06:22 AM
saludos  a todos !!


tengo una duda tengo un proyecto que usa fltk pero no se como hacer que se compile en windows usando mingw , he intentado usar fltk-config pero no lo reconoce me gustaria saber si existe otra forma estoy usando codeblocks o eclipse para ese proyeto.
#24
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.
#25
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
#26
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 !!
#27
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 !!!
#28
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 !!
#29
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 .
#30
Buenas a todos en mi afan de aprender me he topado con lo siguiente
tengo cantidades monetarias en string y quiero agregarles en su debido lugar un caracter espeficio como son comas y puntos pero no me explota el programa cuando lo corro
pior que seria eso ?

abajo dejo parte del codigo ,gracias por los consejos.
Código (cpp) [Seleccionar]
char *addComma(char *szValue){
   char *szReturn =  NULL;
   char *szTemp1  =  NULL;
   char *szTemp2  =  NULL;
    int inLength = strlen(szValue);
   
   /*
    *  10000.00 -->> 10,000.00
    *  9000.00  -->>  9,000.00
    *
    *
    *
    * */
   
   
   
   if(inLength >= 6 ){
switch(inLength){
case 7:
strncpy(szTemp1,szValue, 2 );
strncat(szTemp1, ",", 1);
strncat(szTemp1, szValue+3,3);
strncpy(szTemp1, ".", 1);

break;
case 5:


   }
 
   return szTemp1;
}



solo importa la parte que hago strncat , strncpy
#31
Buenas a tdos tngo un pequeno string  y quisiera copiar parte de el a otro string se donde estan las posiciones pero con memcpy y memmove ni van bien o lo estoy haciendo mal alguien me podria dar un pequeno consejo por favor? gracias de antemano.
#32
hola a todos !!
Disculpen a este novato que tiene este foro a mil con tatnas preguntas pero de verdad me interesa aprender
y gracias a ustedes lo estoy logrando , bueno ahora lo que quiero es partsear un xml  ose eleminar un tag en algun sitio dentro del documento. yo se que me haran un pregunta , despues de ver el codigo , estoy en un entorno donde solo tengo open, write ,read y close de unix  el programa compila pero me da segmentation fault (core dumped ) , me pasa muy a menudo pero esta vez cuando trato de leer la cantidad de bytes con read que deberia. bueno pongo el codigo a ver si me doy a entender.
este seria el xml
Código (xml) [Seleccionar]
<xml>
<tag>
 m texyo de be ser
ffgfgf
fgfhfhfh
hf hhf hf hf hfh
gh hghg gh ghghg
gh ghgh
</tag>
</xml>



luego el codigo en c
#include <fcntl.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc ,char argv[])
{
  int bucle =0;
  char *pbuffer={'\0'};
  int file = open("s.xml", O_RDONLY);
  if(file < 0){
     printf("Error Abriendo el fichero \n");
     exit(1);///salida de error
   }else{

    pbuffer = NULL;
    int r = read(file, 1024);
    printf("cantidad de bytes leidos :\n %d", r);
    close(file);  
    char *sin= strstr(pbuffer, "<tag>");
    pbuffer = NULL;
    while(sin[5+bucle] != '<')
    {
      strncat(pbuffer, &sin[5+bucle],1);
       bucle++;
    }  
   
    int s2 = open("copia.xml", O_WRONLY|O_TRUNC);
    if(s2 < 0){
      printf("Error @");
     int d=  write(sin, 1024);
     printf("cantidad de bytes escritos : %d", d);
     close(s2);
    }
   }///else??
 

}



segun la documentacion de unix ,cuando trate de leer o escribir tantos n-bytes en el o desde el buffer y tengas disponible menos eso es lo que te devolvera o me equivoco ?
gracias de anteamano. igual quisiera leer una estructura completa pero esta fuera del scope ahora me preocupa ese error.
#33
Buenas a todos !!!
tengo una duda teorica estoy recibiendo un buffer que tienes mas 11000 caracteres
pero el maximo de buffer que puedo leer es de 8000 caracteres o valores y me gustaria saber que manera es eficiente y efectiva para poder recibir ese buffer ? solo es teoria  si le sale algo practico esta bien pero me guistaria entender esto !!

modificado:

#include<fcntl,h>

char buffer[1024];

int main()
{
    int fd = open("buffe.cier", O_WRONLY);
  if(fd < 0)
  {
      ///error    
   }else{

    ////aqui la verdad no me llega como llenar el buffer
   //// pense usar un while o un for para ir leyendo
   //// pero es un sistema empotrado
    ////intente leer 1024 a 1024
    ////2048 a 2018
    ///// y tambien el buffer completo
   /// 11700 pero nada
   ///////opiniones!!! please

   }



 return 0;
}


Gracias por adelatado

Mod: Obligatorio el uso de etiquetas GeSHi
#34
Buenas a todos !!
vuelvo con otras dudas sobre esto de las cadenas ahora tengo una duda que me surgio sobre esto  usar las funciones de string.h  

ahora le toca a strcat , ahora tengo una estructura de y quiero copiar varios campos que son punteros o son arreglos y el resultado es el mismo , el programa crash  voy a poner el codigo  :

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstring>
#include <stdlib.h>
using namespace std;


struct Campos {
 char *campo1;//10 era un array de 10 campos y como quiera
 char campo2[16];
 char campo3[7];
 char campo4[8];
 char campo5[6];
 char campo6[21];


};

char datos[] ="SOLOESTO..0000000000000000000     0000000   000000000     0000.0  00000-00-10011:00:00 ";

int main(){
  Campos cmp1;
  memset(&cmp1, 0x00, sizeof(Campos));
 char *token = strtok(datos , " ");
 while(token != NULL)
 {
    cout << " "<<endl<< token;
    token = strtok(NULL, " ");

 }
 int iteraciones= 0;

  cout << "iteraciones ----------------------------------------";
 for( ; iteraciones < 11; iteraciones++)
 {

   if(iteraciones < 12)
   {
     strncat(cmp1.campo1,&token[iteraciones], 1);
     cout << cmp1.campo1;
   }



 }


}


Gracias !!
#35
Buenas a todos !!

tengo una duda , tengo un par de horas tratando de hacer algo con un string es quiero copiar caracter a caracter usando varoas funciones pero nada de funcionar le pondre lo que he hecho.
Código (cpp) [Seleccionar]



#include<cstdlib>
#include<cstring>
#include<iostream>

using namespace std;

void copiar(){
   char *szBuffer1 = "mi cadena es esta ";
   char *szCopia;
  char  caracterAcaracter[30];
   
   ///la plataforma en la que lo uso no tiene malloc
  memset(szCopia, 0x00, strlen(szBuffer1));


    for(int i = strlen(szBuffer1)); i < -1 ; i--)
      {

       caracterAcaracter[i] = szBuffer[1];
      strcat(szCopia, szBuffer1[i]);
     strcpy(szCopia, szBuffer1[i]); ///igual pasa con los que piden n caracateres para cpiar
                                                   /// no me deja por que el segundo argumento pide const char *
                                                   ///strtok no se bien si alguien me aconseja si me conviene                                               
}





}











podrian darme algun consejo o decirme donde podria leer mas sobre lo string y caracteres , gracias y discuplen la molestia .
#36
Buenas a tod@s aqui !!

tengo una duda con el siguiente codigo !!
vean el codigo !! si se que me paso dandole mas tamanio a len pero por que cuando lo imprimo me sale el pause de system es posible obtener una explicacion. graciass Y disculpen la molestia :)

Código (cpp) [Seleccionar]
#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;

void reverse(const char *rev)
{
    int len = strlen(rev) + 5 ;
char *reverse = new char[len];
for(int i=0 ; len > 0 ; len--,i++){
   reverse[i] = rev[len];
       cout <<rev[len];
  }
  cout <<endl;
  delete reverse;
}



int main(int argc, char *argv[])
{
const char *szstring = "linda";
reverse(szstring);
system("pause");
return 0;
}
#37
buenas a todos aqui !!

espero y deseo que todos esten bien !! ejej
bien tengo una duda nueva estoy tratando de  leer unos caracteres desde un fichero y los estoy tratando de capturar en un arreglo de dos dimensiones en otros lenguajes como java y c# me ha funcionado bien pero en c++ que es mi caso o no me muestra nada y me imprime como ordeno o simplemente me muestra numero que supongo que son las direcciones de memoria de las variables dentro del arreglo posteo el codigo para ver si alguien me dice en que me equivoco , gracias e ante mano..


Código (cpp) [Seleccionar]

void cargarArray()
{
    fstream entrada("map.txt", ios::in);
     if(!entrada.is_open())
        cout <<"dddd";

    char temp =NULL;
    char arreglo2d[20][20];
    for(int t(0); t<20;t++){
      for(int i(0); i < 20 ; i++)
       {
          entrada << temp;
          arreglo2d[t][i] = temp;
       }
    }


    for(int t(0); t<20;t++){
       cout <<'\n';
      for(int i(0); i < 20 ; i++)
       {

          cout << arreglo2d[t][i] <<' ';
       }
    }


}


esto compila pero no me presenta el resultado esperado !!
#38
Hardware / puertos usb !!
17 Abril 2015, 12:53 PM
Saludos a todos !!

espero y deseo que tdoo este bien bueno mi duda es la siguiente tengo una laptop que los puertos usb no funcionan para datos cuando le conecto un mouse o una memoria que tiene led se prende el led o el laser del mouse pero no pasa nada excepto eso lo he probado en linux ,windows... tambien la lleve a un tecnico la destapo y me dijo que no era problema de hardware ademas entre al BIOS y todos los controles de usb estan encedidos, es posible que sea problema de FIRMWARE  ?


Gracias de antemano;
#39
Buenas a todos !!!


Hoy vengo con otra duda , se el uso basico de las uniones y las estructuras pero me gustaria que me explicaran cual es la ventaja de usar estructura y ventaja de usar uniones

pondre un ejemplo mas abajo para ver si me doy a enteder mejor

Código (cpp) [Seleccionar]

#include <iostream>
using namespace std;

  int main(){

   struct stTest{
     char caracter;
     int entero;
  };
  stTest test1;
  test1.caracter= 'a';
  test1.entero   = 1;
 
  cout << test1.caracter << test1.entero <<endl;
  /////Esto simplemente imprime : a1
  union  unTest{
    char caracter;
    int    entero;
  };
unTest test2;
   test2.caracter= 'a';
  test2.entero   = 1;
cout << test2.caracter << test2.entero <<endl;
  /////Esto simplemente imprime : @1

}




Entiendo que en las uniones todos los campos comparte el mismo espacion de memoria
eso es importante pero pero por que se usa mucho .. alguien me puede dar ejemplos de  caso de uso por favot , y aparte alguien me puede explicar eso de los campos de bit.

no soy nuevo pero nunca lo he usado y quisiera comprender para que se usa pero los cursillos , libro que he visto no me dejan entender el por que y para que eso y algunas cosas, Gracias de antemano.
#40
Buenas a todos !!
Me gustaria consultar si es posible que alguine me explique como puedo usar los tipos de datos :

Código (cpp) [Seleccionar]

unsigned int8 O uint8_t;
unsigned int16 o uint16_t



se que puedo usar
Código (cpp) [Seleccionar]

#include<stdint.h>


pero me gustaria por favor si es posible que alguine aqui me de una explicacion de uso y utilidad.


Gracias por todo!!
#41
buenas a todos !!


tengo una dudad estoy haciendo un app que guarda un estructura en un archivo (los datos) bien , la aplicacion toma los datos desde la consola luego los concatena con los que estan en el fichero ahora quiero tambien leer desde la estructura y me resulta medio dificil posteo el codidgo para ver si alguien me puede dar una mano por favor.

Código (cpp) [Seleccionar]
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
struct prueba{
   int r;
};

void escribir(struct prueba t){
   fstream salida("test.b" , ios::out|ios::binary|ios::app|ios::ate);
   salida.write(reinterpret_cast<char *>(&t), sizeof(prueba));
   cout <<"Registro Escrito Exitosamente."<<endl;
   salida.close();
 }

int main()
{
 prueba re;
 re.r =1;
 escribir(re);
 re.r =2;
 escribir(re);
 re.r =3;
 escribir(re);
 re.r =4;
 escribir(re);
   re.r =1;
 escribir(re);
   re.r =1;
 escribir(re);
 int l;
 cout <<"\n pulse la tecla de enter"<<endl;
 cin.get();
 fstream entrada("test.b", ios::in|ios::binary);
 entrada.seekg(0,entrada.end);
 l = entrada.tellg();
 int cnd = l/sizeof(prueba);
 entrada.seekg(0,entrada.beg);

 cout <<"la longitud del fichero es : "<< cnd;
 cin.get();

 vector<prueba> pr;
 prueba obj;
 for(int f= 1; f < cnd; f++)
 {
     entrada.read(reinterpret_cast<char*>(&obj), sizeof(prueba));
     pr.push_back(obj);
     entrada.seekg(cnd*f, entrada.cur);

 }


 entrada.close();
 for(int g=0;g< pr.size(); g++)
   cout << "value : "<< pr.at(g).r<<endl;


 cin.get();
 cin.get();
 return 0;

}


me gustaria que alguien explique por lo menos como puedo desplazar seekg() por que lo he intentao varias veces de diferente modos y me da tamanos waoo ...y he buscado por internet pero no he encotrado nada que comprenda.. :'(
Gracias Y disculpen la molestia.
#42
GNU/Linux / Ubuntu en mac
11 Marzo 2015, 13:39 PM
Buenas a todos !!

tengo una duda les cuento tengo una macbook que se le dano el sistema operativo pero no quiero ponerle mac y ademas no tengo acceso a instalarle refit existe algun forma que yo le pueda instalar ubuntu a una memoria usb para instalarla , tengo windows en otra maquina  es posible hacer que la memoria usb arracable  desde windows para correr en mac ?


Gracias de antemano
#43
Mac OS X / recover mac os
10 Marzo 2015, 13:13 PM
Buenas a todos !!

tengo una al instalar bootcamp elemine todas las particiones de mac os ("TODAS"), entoces estoy tratando de reinstalar mac y ahora siempre que trato me da un error "try to reinstall " hay alguna forma de de instalar por lo menos la particion de recuperacion he tratado con
DVD("no directamente de apple "), usb ("igual que el anterior "), los he probado en virtualbox y al parecer instalan. por favor podrian ayudarme , Gracias !!


no es igual que el tema anterior!!
#44
Mac OS X / reinstalar mac os x lion
5 Marzo 2015, 17:24 PM
buenas a todos aqui presente !!

soy nuevo en el SO jejej , tengo una duda quiero reinstalar es SO desde cero baje la iso ahora bien estaba leyendo  y algo no entiendo , mi duda es : es posible reinstalar o borrar el sistema sin usar ningun medio externo es decir hacer un simple Borrado(wipe out ) y ya , alguien me podria orientar por favor ?!!
#45
Programación C/C++ / lista enlazada ayudita
3 Marzo 2015, 12:50 PM
Buenas a todos !!
Estoy aprendiedo a crear lista enlazadas simples tengo el siguiente codigo me corre algunas veces y otras mas no,me gustaria que me corrigieran , disculpen la mala ortografia.


Código (cpp) [Seleccionar]
#include <cstdlib>
#include <cstdlib>
#include <iostream>

using namespace std;

class LinkList{
     
    int dat;
    LinkList *nxt;
    public:
    ~LinkList(){
      delete nxt;
    }
   
   
    LinkList(int t =0):dat(t){
          nxt = new LinkList(0);
    }     
    void add(LinkList *ll,int d){
       nxt = ll;
       dat =d;
    }
   
    void Print(){
       while(nxt != NULL)
       {
           cout <<"Dat Value : "<< dat<<std::endl;
           nxt = nxt->nxt;
           
       }     
    }
};




int main(int argc, char *argv[])
{
    LinkList f, r1(7), r2(6);
    f.add(&r1,7);
    f.add(&r2,6);
    f.Print();
   
   
    system("PAUSE");
    return EXIT_SUCCESS;
}


nxt : is not a type eso dice el compilador