Ver Mensaje Individual
  #2  
Antiguo 08-11-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Reputación: 0
coso Va por buen camino
Hola, nos tendrias que poner como es la estructura que quieres llenar. Para pasar un texto a un vector podrias usar algo como esto:

Código:
// formato de vector : (1 2 1 3.4 2)
double *StringToVector(unsigned char *s)
{
    TStrings *ss;
    double *res;
    
    ss = TStringList->Create;

    s = StringReplace(s,"(","",[]);
    s = StringReplace(s,")","",[]);
    
    ss->CommaText = s;
    SetLength(res,ss->Count); // no se si existe en c++. si no fuera asi, se deberia usar getmem(ss,ss->Count*sizeof(double));

    for (int i=0;i<ss->Count;i++)
          res[i] = StrToFloat(ss[i]);

    ss->Free;

    return(res);
}
llamando a la funcion asi

Código:
{
     double *v;

     v = StringToVector("(1 2 1 3)");
     v = StringToVector(Edit1->Text);
     ...
     SetLength(v,0); // o bien freemem(v);
}
Para pasar de vector a string, seria algo asi

Código:
unsigned char *VectorToString(double *v)
{
     unsigned char *s;
     getmem(s,Length(v)*sizeof(unsigned char));

     for(int i=0;i<Length(v);i++)
     s[i] = char(FloatToStr(v[i]));

    return(s);
}
y llamarla con

Código:
{
      unsigned char *s;
      double *v;

      SetLength(v,3);

      v[0] = 1;
      v[1] = 4;
      v[2] = 3;

      s = VectorToString(v); 
      ShowMessage(s);

      freemem(s);
      SetLength(v,0);
}
PD : mi C esta bastante oxidado, por lo que seguro que te saltan bastantes errores de compilacion, aparte que se podran usar classes para los vectores y las cadenas.
Responder Con Cita