Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   FillChar que es? (https://www.clubdelphi.com/foros/showthread.php?t=4862)

Descendents 31-10-2003 01:59:22

FillChar que es?
 
He visto que se utiliza en muchos sitios fillchar, y he buscado, y encontrado muchos sitios en que aparece, pero en ninguno me explica para que sirve y que hace.He mirado en la ayuda de delphi y bueno mas o menos, pero que no.

Solo se que requiere de tres parametros.

Si alguien fuera tan amable de explicarmelo.

Muchas gracias.

frankmch 31-10-2003 02:59:41

El fillchar sirve para rellenar los espacios en blanco de variables compuestas por tipos char, con un valor especifico conocido por el programador, esto con la finalidad de evitar la basura en el espacio sobrante declarado para esta variable.

es decir si declaras un tipo string de 200 caracteres y solo usas 40, los 160 restantes los puedes llenar de blancos con el fillchar, o puedes dar un formato especifico para los espacios en blanco.

procedure FillChar(var X; Count: Integer; Value: Byte);

x es la posicion desde donde deseas rellenar, count la cantidad de char a poner y value el valor de este char.

debes tener cuidado al rellenar ya que no hace ningun chequeo de rango


ejemplo de delphi help:

var

S: array[0..79] of char;
begin
{ Set to all spaces } // para llenar todos los espacios
FillChar(S, SizeOf(S), Ord(' '));
end;


saludos

jachguate 31-10-2003 05:33:45

En realidad FillChar puede rellenarte cualquier espacio de memoria, independientemente del tipo de dato que contenga, y se utiliza normalmente para inicializar un espacio con un valor conocido.

Si tenes algo como:

Código:

Type
  MiRegistro = Record
    a, b, c : Integer;
    d, e, f : Double;
    Nombre : String[40];
    apellido : String[40];
    Casado : Boolean;
  end;

Var
  persona : MiRegistro;

Begin
  FillChar(Persona, SizeOf(persona), 0);
  ..
end;

has hecho una inicialización rápida del registro, equivalente a:

Código:

  Persona.a := 0;
  Persona.b := 0;
  Persona.c := 0;
  Persona.d := 0.0;
  Persona.e := 0.0;
  Persona.f := 0.0;
  Persona.Nombre := '';
  Persona.Apellido := '';
  Persona.Casado := False;

!!

Hasta luego.

;)

Descendents 31-10-2003 12:00:26

Ok gracias.


La franja horaria es GMT +2. Ahora son las 15:46:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi