Как преобразовать в текст содержимое переменных любого типа, причем, тип и их количество заранее не известно?

Во-первых, необходимо в функцию передавать открытый массив, чтобы обеспечить передачу любого количества разнотипных переменных.
Во-вторых, проверять тип каждой полученной переменной и преобразовывать ее в текстовую строку функцией, предназначенной конкретно для этого типа.

В примере ниже приведен алгоритм преобразования наиболее часто используемых типов.

Пример:

{Функция преобразования разнотипных данных в строку}
FUNCTION TForm1.AllToStr(CONST Value: ARRAY OF CONST): STRING;
CONST BString: ARRAY [Boolean] OF STRING = ('False', 'True');
VAR
 
 i: Integer;
 S: STRING;
 
BEGIN
 
 Result := ''; 
 FOR i := Low(Value) TO High(Value) DO 
 
  WITH TVarRec(Value[i]) DO BEGIN
 
   CASE VType OF
 
    vtInteger : S := IntToStr(VInteger);
    vtBoolean : S := BString[VBoolean];
    vtChar : S := VChar;
    vtExtended : S := FloatToStr(VExtended^);
    vtString : S := VString^;
    vtPointer : S := IntToHex(LongInt(VPointer), 8);
    vtPChar : S := StrPas(VPChar);
    vtObject : S := vObject.ClassName;
    vtClass : S := vClass.ClassName;
 
   END;
  AppendStr(Result, S);
 
 END;
 
END;
 
............
 
{Пример использование функции AllToStr}
procedure TForm1.Button1Click(Sender: TObject);
VAR a, b: Integer;
begin
 
 a := 10; b := 20;
 Label1.Caption := AllToStr([ a, '+', b, '=', a+b, #9 ]);
 
end;

Последние комментарии

  • vitality ed pills cure for ed or natural ed medications treatment for erectile dysfunction or how to get amoxicillin can i buy amoxicillin over the counter or prednisone 20 mg tablets coupon prednisone 5mg coupon or vacuum pump for ed ed pills for sale
  • erectile dysfunction medication comparison of ed drugs ed cures that work otc ed pills https://canadianpharmacyvikky.com real viagra without a doctor prescription usa ed aids buy prescription drugs online without herbal remedies for ed
  • ed medications over the counter canadian pharmacy vikky best ed drugs new erectile dysfunction treatment https://canadianpharmacyvikky.com ed pills online

Счетчики