Новые книги

Peter Seibel

interviews 15 of the most interesting computer programmers alivetoday in

, offering a brand-new companion volume to Apress’shighly acclaimed best-seller

by Jessica Livingston. As thewords “at work” suggest, Peter Seibel focuses on how his interviewees tacklethe day-to-day work of programming, while revealing much more, like how theybecame great programmers, how they recognize programming talent in others, andwhat kinds of problems they find most interesting.

Coders at Work

Founders at Work
Майя Богданова – журналист, редактор, пиарщик, контент-технолог. Проще говоря, человек-текст.

Эта книга расскажет о том, как создавать тексты, с одной стороны посвященные вашему бизнесу, а с другой – завораживающие клиентов не хуже, чем истории Шахерезады.

Вопрос и Ответ 29

Вопросы и Ответы


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

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

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

      Пример:

      ............

      {Функция преобразования разнотипных данных в строку}
      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, a, '/', b, '=', a/b ]);

      end;

      ............


...предыдущая страница следующая...
оглавление





"Вопрос и Ответ 29"
Copyright © "В помощь Веб-Мастеру" (Alexander D. Belyaev) 2005-2024 .
При перепечатке любого материала видимая ссылка на источник "В помощь Веб-Мастеру" и все имена, ссылки авторов обязательны!
Время генерации страницы: 0.009