The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Quiq::Properties - Eigenschaften einer Menge von skalaren Werten

BASE CLASS

Quiq::Object

DESCRIPTION

Ein Objekt der Klasse ist Träger von Information über eine Menge von skalaren Werten (Integer, Float, String). Die Information ist nützlich, wenn die Menge der Werte tabellarisch dargestellt werden soll.

ATTRIBUTES

type

Typ der Wertemenge: s (String), f (Float), d (Integer).

width

Breite des breitesten Werts der Wertemenge.

floatPrefix

Maximale Anzahl an Zeichen einer Fließkommazahl vor und einschließlich dem Punkt. Dieses Attribut wird nur intern gebraucht, um die maximale Breite einer Fließkommazahl zu bestimmen.

scale

Maximale Anzahl an Nachkommastellen im Falle einer Wertemenge vom Typ f (Float).

align

Ausrichtung der Werte der Wertemenge: l (left), r (right).

multiLine

Boolscher Wert, der angibt, ob die Wertemenge wenigstens einen mehrzeiligen Wert enthält.

EXAMPLE

Erzeuge eine formatierte Liste von Float-Werten:

  my @values = (
      234.567,
        5.45,
    92345.6,
       42.56739,
  );
  
  my $prp = Quiq::Properties->new(\@values);
  
  my $text;
  for (@values) {
      $text .= $prp->format('text',$_)."\n";
  }
  print $text;
  
  __END__
    234.56700
      5.45000
  92345.60000
     42.56739

METHODS

Klassenmethoden

new() - Konstruktor

Synopsis

  $prp = $class->new(@opt);
  $prp = $class->new(\@values,@opt);

Arguments

@arr

Array von skalaren Werten (Integers, Floats, String)

Options

-noTrailingZeros => $bool (Default: 0)

Entferne bei Floats nach dem Dezimalpunkt 0-en am Ende.

Returns

Objekt

Description

Instantiiere ein Objekt der Klasse und liefere eine Referenz auf dieses Objekt zurück. Ist als Parameter eine Referenz auf ein Array angegeben, werden dessen Werte analysiert.

Akzessoren

align() - Setze/Liefere Ausrichtung der Werte

Synopsis

  $align = $prp->align;
  $align = $prp->align($align);

Returns

Ausrichtung (Zeichen)

Description

Setze/Liefere die Ausrichtung der Werte, falls sie tabellarisch angezeigt werden sollen.

  • Eine Wertemenge vom Typ d oder f hat die Ausrichtung r.

  • Eine Wertemenge vom Typ s hat per Default die Ausrichtung l, die aber auf r geändert werden werden kann.

multiLine() - Mehrzeilige Werte?

Synopsis

  $bool = $prp->multiLine;

Returns

Boolean

Description

Liefere wahr (1), wenn die Wertemenge mehrzeilige Werte enthält, andernfalls falsch (0). Kann nur für eine Wertemenge vom Typ s wahr sein.

scale() - Maximale Anzahl Nachkommastellen

Synopsis

  $scale = $prp->scale;

Returns

Integer

Description

Liefere die Maximale Anzahl an Nachkommastellen. Diese Information hat nur im Falle des Typs f (Float) eine Bedeutung.

type() - Liefere/Setze Typ der Kolumne

Synopsis

  $type = $prp->type;
  $type = $prp->type($type);

Returns

Typbezeichner (Zeichen)

Description

Liefere den Typ der Kolumne.

  • Eine Wertmenge hat den Typ d, wenn sie ausschließlich aus Integern (und Leerstrings) besteht.

  • Eine Wertmenge hat den Typ f, wenn sie ausschließlich aus numerischen Werten (und Leerstrings) besteht und wenigstens ein numerischer Wert einen Dezimalpunkt enthält, also Nachkommastellen besitzt.

  • Eine Wertmenge hat den Typ s, wenn sie leer ist, nur aus Leerstrings besteht oder wenigsténs einen nichtnumerischen Wert enthält.

width() - Länge des längsten Werts

Synopsis

  $width = $prp->width;

Returns

Integer

Description

Liefere die Länge des längsten Werts.

  • Die Breite einer Wertemenge des Typs d ist die Länge des längsten Werts.

  • Die Breite einer Wertemenge des Typs s ist die Länge der längsten Zeile eines Werts.

  • Die Breite einer Wertemenge des Typs f ist die Summe aus der maximalen Anzahl an Nachkommastellen plus der maximalen Anzahl an Zeichen vor und einschließlich des Kommas.

Objektmethoden

analyze() - Füge Wert zur Analysemenge hinzu

Synopsis

  $prp->analyze($value);

Arguments

$value

Skalarer Wert (Integer, Float, String)

Description

Analysiere Wert $value hinsichtlich seiner Eigenschaften und passe die Eigenschaften der Menge entsprechend an. Ein leerer Wert (undef oder Leerstring) ändert die Eigenschaften nicht.

format() - Formatiere Wert

Synopsis

  $str = $prp->format($format,$val);

Arguments

$format

Formatierung, die auf den Wert angewendet wird. Mögliche Werte: 'text', 'html'.

$val

Skalarer Wert (Integer, Float, String) aus der Wertemenge.

Description

Formatiere Wert $val gemäß Format $format und liefere das Resultat zurück.

set() - Setze Eigenschaften explizit

Synopsis

  $prp->set($type,$align);

Arguments

$type

Typ der Wertemenge: s (Text)

$align

Ausrichtung der Werte der Wertemenge: l (left), r (right).

VERSION

1.195

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2021 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.