PDA

Ver la Versión Completa : Como rellenar campo de tabla


JODELSA
26-02-2005, 13:31:47
Que tal!

tengo una pequeña aplicación, uso una tabla paradox y me conecto con DBE
en la tabala tengo 2 campos numericos, y lo que quiero es que cuado yo guarde el valor digitado a traves del componente Dbedit se rellenen los espacios no ocupado con cero (0), como lo hago.

gracias

marcoszorrilla
26-02-2005, 18:26:40
Si son por la izquierda no puedes pues los ceros que añadas se perderán, si es por la derecha lo tienes sencillo, no tendrás más que multiplicar por 10, 100 o lo que proceda en cada caso.

Aunque si lo lo quieres para formatear a la hora de mostrarlos por pantalla, mírate las funciones y máscaras para formate de número.s

Un Saludo

JODELSA
28-02-2005, 13:02:50
Amparentemente no podre con el campo numerico, pero presento el mismo problema con un campo texto, cuando convierto mi tabla a txt, el campo texto solo me lleva los espacios escritos y necesito en mi archivo txt, el total del campo rellenado de espacios en blanco lo que no se escribio.

marcoszorrilla
28-02-2005, 15:31:30
Pues conviértelo tu mismo por código y así podrás rellenar con lo que desees.

Un Saludo.

marcoszorrilla
28-02-2005, 15:41:53
A modo de ejemplo:


Function FillSpaces(cVar:String;nLen:Integer):String;
begin
Result:=StringOfChar(' ',nLen - Length(cVar))+cVar;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Text:= FillSpaces(Edit1.Text, 10);
end;


Un Saludo.

roman
28-02-2005, 16:57:41
Aparte de la sugerencia del amigo Marcos, ¿te has preguntado si realmente necesitas guardar los ceros en la base?

Si el acceso a las tablas se hace siempre mediante tu aplicación entonces basta que agregues los ceros al momento de tomar el dato de la base y presentarlo al usuario con una función similar a la que te propone Marcos.

Para el usuario es lo mismo y te puedes ahorrar un buen espacio en tu base. Toma en cuenta, por dar un ejemplo, que si estás almacenando números de ocho dígitos te basta con un campo de tipo LongInteger que ocupará 4 bytes, a diferencia de los ocho bytes (el doble) necesarios para almacenarlo como una cadena de ocho caracteres.

E incluso en el caso de los espacios, usando un campo VarChar ocuparás únicamente los bytes necesarios al omitir los espacios iniciales rellenándolos sólo al momento de presentarlos en pantalla.

// Saludos

JODELSA
28-02-2005, 21:31:49
este función fué un éxito, que seria de mi sin ustedes...