piet: Formatierungen programmieren

Hallo,

ich möchte eine eigene Formatierung von Zahlen mit/ohne Nachkomma bzw. bool mit Textanzeige programmieren.
Die Programmiersprache ist einmal unwichtig, nur das System wie man so etwas machen kann.
(So eine Art print jedoch auch mit Textersetzung)

z.B.

Es wird von mir ein Template erstellt. Wenn die Datei angefordert wird, wird das Template eingelesen mit aktuellen Messwerten gefüllt und mit neuem Namen (Dateum/Zeit) ausgegeben.

Templatedatei:

Lufttemperatur: %-10d °C
Lüfter: %EIN/AUS
Status: %text1/text2/text3 , $temperatur, $bit, $int

oder

Lufttemperatur: %-10d$temperatur °C
Lüfter: %EIN/AUS$bit
Status: %text1/text2/text3$int

oder

Lufttemperatur: $temperatur%-10d °C
Lüfter: $bit%EIN,AUS
Status: $int%text1/text2/text3

-------------------------------------------------------------------------
Für Zahlen könnte ich print(f) verwenden, wie mache ich es aber bei Text mit
bool, bzw. Text mit Zahl (1=1. Text, 2=2.Text, usw)

Bitte um Anregung, vielleicht gibt es schon so etwas, CPAN oä.

Gruß
       piet

  1. Das scheint mir ein Musterbeispiel für die Leistungsfähigkeit von Regulären Ausdrücken in Verbindung mit Callbacks zu sein.

    Gruß, LX

    --
    RFC 1925, Satz 2: Egal, wie fest man schiebt, ganz gleich, wie hoch die Priorität ist, man kann die Lichtgeschwindigkeit nicht erhöhen.
    1. Hallo,

      Das scheint mir ein Musterbeispiel für die Leistungsfähigkeit von Regulären Ausdrücken in Verbindung mit Callbacks zu sein.

      du meinst suche/ersetze ??
      z.B. mit Perl habe ich schon einmal es bißchen gemacht ?

      Aber gib doch kurz ein Beispiel.. ich muß ja eine eindeutige Kennung/Zeichen
      habe wo wann was steht ???

      Gruß
            piet

  2. Hi,

    Für Zahlen könnte ich print(f) verwenden, wie mache ich es aber bei Text mit bool, bzw. Text mit Zahl (1=1. Text, 2=2.Text, usw)

    Du kannst auch Funktionsaufrufe bzw. deren Rückgabewert als Parameter für [s]printf verwenden.

    MfG ChrisB

    --
    The most exciting phrase to hear in science, the one that heralds new discoveries, is not “Eureka!” but “That's funny...” [Isaac Asimov]
  3. hi,

    Bitte um Anregung, vielleicht gibt es schon so etwas, CPAN oä.

    Na aber sischr:

    use Text::Template;

    habs mir die Tage mal angeschaut, geht affenartig schnell ;-)

    Btw., die anderen Text::Module sind auch ganz interessant, Text::Autoformat benutze ich z.B. beim Erstellen von pdf-Dateien und Text::Query benutze ich in meiner Suchfunktion für die Website.

    Hotti

    1. Hallo,

      Bitte um Anregung, vielleicht gibt es schon so etwas, CPAN oä.

      Na aber sischr:

      use Text::Template;

      Das sieht doch super aus, warum das Rad neu erfinden :-)

      aber,... beim öffnen meines Templates weiß ich nicht welche Variablen benutzt werden.
      d.h.
      Ich müsste erst alle Variablen im Template lesen, Daten aus der Datenbank holen, dem Modul Text::Template übergeben und dann das Template füllen.

      Ich denke einmal laut !!

      Ich könnte nun die Namen (Platzhalter) im Template so wählen wie die Namen in der Datenbank. Dann lese ich das Template ein und suche alle Platzhalter
      (beginn mit $ gefolgt von Ascii a(A)-z(Z)... keine { )
      Ist es möglich dies mit einem regulären Ausdruck so hinzubiegen das alle
      gefundenen "Namen" in einem Array stehen ??

      Dann diese Platzhalter welche auch Variablennamen in der Datenbank sind, herausholen mit Messwerten.
      Dann ein hash aus den einzelnen Platzhaltern mit Messwerten erzeugen.

      Und erst jetzt das Modul Text::Template über das Template laufen lassen.

      wenn nötig bitte korrigiert mich

      Gruß
                    piet