Perdón quería decir de String a AnsiString

Daniel
29 de Abril del 2004
Agradecería que alguien me dijera cómo se puede pasar de String a AnsiString al igual que en caso contrario se puede hacer con c_str(). Gracias de antemano.

Maria GE
29 de Abril del 2004
var s:string;
as:ansistring;

a mi me va con as:=ansistring(s); directamente

bye

DCelso
29 de Abril del 2004
Vamos a ver String es un tipo de datos de Pascal y funciona prácticamente igual al AnsiString de C++builder. Creo que te refieres a pasar de cadena c (c string) Osea para que nos entendamos la que termina en un carácter '/0', a AnsiString.
Esto último es muy facil, solo tienes que llamar a la función con el mismo nombre que el tipo, un ejemplo:
char cadenac[5]="hola"; // esto es una cadena c inicializada, por el quinto caracter es el '/0' fin de cadena, el compilador sabe que tiene que ponerlo por definir un vector (array) de caracteres e iniciarlo a una cadena.
AnsiString CadenaAnsi; // esta cadena es dinámica, no necesita longitud porque se va adaptando a lo que le metas.
CadenaAnsi= AnsiString(cadenac); // busca en cadenac todos los caracteres hasta llegar a '/0', asi que al final en cadenaAnsi tendremos una cadena de 4 caracteres que pone hola.
Me queda decir que la función AnsiString() está sobrecargada, es decir, existe una función ansistring para cada tipo de dato. Para que nos entendamos, también convierte un int a AnsiString, además de otros tipos de variables.

xnomad
29 de Abril del 2004
todos los consejos estan bien, pero se olvidaron de comentarte que el string soporta solo 256 caracteres, el paso de string a AnsiString no tiene problema, pero de un AnsiString a un String pude que te pierda todos los caracteres desde la posicion [256] en adelante.