Tomé la idea anterior e implementado en una tokenreader utilizado para importar datos. Cada token es una cadena, que luego se convierte al tipo apropiado. El código necesario para convertir a entero y cadena se encuentra en la parte inferior de la publicación.
Para leer y convertir una ficha sólo se necesita el siguiente código:
Myvalue := DataImporter.ImportToken;
Dependiendo del tipo de MyValue, la conversión implícita correcta se dispara.
El código:
TTokenValue = record
public
FValue:string;
constructor Create(const AValue:string);
class operator Implicit(const AFoo:TTokenValue): integer;
class operator Implicit(const AFoo:TTokenValue): string;
end;
Implementación
function TDataImporter.ImportToken: TTokenValue;
begin
result := TTokenValue.Create(GetCurrentToken());
end;
constructor TTokenValue.Create(const AValue: string);
begin
FValue := AValue;
end;
class operator TTokenValue.Implicit(const AFoo: TTokenValue): integer;
begin
result := strtointdef(AFoo.FValue, 0);
end;
class operator TTokenValue.Implicit(const AFoo: TTokenValue): string;
begin
result:=AFoo.FValue;
end;
Ah, bueno, no del todo la respuesta que esperaba, pero interesante de todos modos. Aclamaciones. – HMcG