heinetz: Ascii-Tabelle

Hallo Forum,

meine Frage hat zwar nicht unbedingt mit HTML zu tun,
dennohc bin ich mir sicher, dass Ihr mir die Frage
beantworten/mir bei einer Lösung helfen könnt:

Ich versende im Auftrag meines Kunden ein Newsletter als
Multipart, also HTML und Text-Version. Dafür bekomme ich
von ihm jeweils eine Vorlage. Immer mal wieder gibt es den
konkreten Fall, dass eine Tabelle dargestellt werden soll.
In HTML kein Problem, aber bei der Rein-Text-Variante hae
ich grundsätzlich Problem ;(

Ich versuche die Tabelle mit Rahmen aus | und - darzustellen
und mit TAB dafür zu sorgen, dass die an den richtigen Stellen
sind.

Das sieht dann in etwa so aus:

header_a | header_b | header_c
--------------------------------------------------
cell_a1 | cell_a2 | cell_a3
cell-b1 | cell-b2 | cell_b3

... bei der Eingabe sehe ich eine sauber dargestellte Tabelle.

In der Thread-Vorschau oder wenn ich diese Tabelle aber per c&p
in einem anderen Editor einfüge, stimmt sie schon nicht mehr.

Kann man da etwas machen ?

danke für Tipps und

beste gruesse,
heinetz

  1. header_a | header_b | header_c

    cell_a1 | cell_a2 | cell_a3
    cell-b1 | cell-b2 | cell_b3

    header_a   |   header_b   |   header_c
    -----------+--------------+---------------
    cell_a1    |   cell_a2    |   cell_a3
    cell-b1    |   cell-b2    |   cell_b3

    So würde ich es machen, ein Pluszeichen als "Verbinder" und 3 Leerzeichen statt einem Tabulator.

    Kann man da etwas machen ?

    Ja, keine Tabulatoren benutzen, lieber leerzeichen (z.b. 1 Tab = 3 Leerzeichen)

    1. Ja, keine Tabulatoren benutzen, lieber leerzeichen (z.b. 1 Tab = 3 Leerzeichen)

      Bei unterschiedlicher Zeichenlänge der Zelleninhalte ist das aber genauso unsinnig - da gehört natürlich eine entsprechende Berechnung für die Anzahl der nötigen Leerzeichen her.

      1. Bei unterschiedlicher Zeichenlänge der Zelleninhalte ist das aber genauso unsinnig - da gehört natürlich eine entsprechende Berechnung für die Anzahl der nötigen Leerzeichen her.

        Ach, ich dachte das Leerzeichen an eine bestimmte Norm gebunden sind.

        Hier im Büro habe ich festgestellt, wenn ich mein HTML mit Tabulatoren formatieren (das tue ich immer!) sieht es ganz gut aus, aber auf einem anderen Rechner mit einem anderen Editor sieht das wieder nach Mist aus. Mit Leerzeichen war das nicht der Fall. Genauso der Quellcode im Browser (FF).

        1. Hi,

          Bei unterschiedlicher Zeichenlänge der Zelleninhalte ist das aber genauso unsinnig - da gehört natürlich eine entsprechende Berechnung für die Anzahl der nötigen Leerzeichen her.
          Ach, ich dachte das Leerzeichen an eine bestimmte Norm gebunden sind.

          bei Festbreitenschrift schon: Ein Leerzeichen ist so breit wie ein "M" oder ein "i". Ohne Festbreiteschrift ist ein Leerzeichen so breit, wie der Schriftentwickler lustig war.

          Hier im Büro habe ich festgestellt, wenn ich mein HTML mit Tabulatoren formatieren (das tue ich immer!) sieht es ganz gut aus, aber auf einem anderen Rechner mit einem anderen Editor sieht das wieder nach Mist aus. Mit Leerzeichen war das nicht der Fall. Genauso der Quellcode im Browser (FF).

          Allgemeiner Rat: Benutze Tabulatoren ausschließlich dort, wo sie technisch notwendig sind. Immer sonst verwende eine definierte Menge Leerzeichen.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. @@Cheatah:

            nuqneH

            Allgemeiner Rat: Benutze Tabulatoren ausschließlich dort, wo sie technisch notwendig sind. Immer sonst verwende eine definierte Menge Leerzeichen.

            You got it wrong.

            Allgemeiner Rat: Benutze eine definierte Menge Leerzeichen ausschließlich dort, wo sie technisch notwendig sind. Immer sonst verwende Tabulatoren.

            Das betrifft insbesondere auch Einrückungen in Programmcode, HTML, CSS, …

            Qapla'

            --
            Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
    2. @@Hans Wurst:

      nuqneH

      header_a   |   header_b   |   header_c
      -----------+--------------+---------------
      cell_a1    |   cell_a2    |   cell_a3
      cell-b1    |   cell-b2    |   cell_b3

      So würde ich es machen, ein Pluszeichen als "Verbinder" und 3 Leerzeichen statt einem Tabulator.

      Hm.

      header_a   │   header_b   │   header_c
      ───────────┼──────────────┼───────────
      cell_a1    │   cell_a2    │   cell_a3
      cell-b1    │   cell-b2    │   cell_b3

      Unicode: Box Drawing

      Darauf, dass Mailclients dicktengleiche Schriften verwenden, kann man sich keinesfalls verlassen.

      Wenn unbedingt Tabellen in einer Mail sein müssen, wäre doch glatt zu überlegen, das HTML-Format zu wählen. (Pfui, ich weiß.)

      Vielleicht ist es auch eine Alternative, die Tabelle als Webseite zu hinterlegen und nur den URI per Mail zu versenden.

      Qapla'

      --
      Alle Menschen sind klug. Die einen vorher, die anderen nachher. (John Steinbeck)
      1. Hallo,

        header_a   |   header_b   |   header_c
        -----------+--------------+---------------
        cell_a1    |   cell_a2    |   cell_a3

        vs

        header_a   │   header_b   │   header_c
        ───────────┼──────────────┼───────────
        cell_a1    │   cell_a2    │   cell_a3

        Darauf, dass Mailclients dicktengleiche Schriften verwenden, kann man sich keinesfalls verlassen.

        Darauf, dass Mailclients (inkl. Webmail-Systeme) Unicode beherrschen und so
        die speziellen Rahmen-Symbole korrekt darstellen, IMHO ebenfalls nicht.
        Somit würde ich der primitiveren oberen Variante mit +, - und | eindeutig
        den Vorzug geben, insbesondere, da es sich ja um den Fallback (Text-Version
        einer HTML-Mail) handelt, und dieser möglichst primitiv sein sollte.

        Freundliche Grüsse
        Thomas

  2. Kann man da etwas machen ?

    Keine Tablulatoren sondern Spaces (ggf. auch mehrere) verwenden da die Breite eines Tabulators nicht unbedingt fest ist (auch in eine Monospace-Schrift).

  3. Hallo,

    Ich versuche die Tabelle mit Rahmen aus | und - darzustellen
    und mit TAB dafür zu sorgen, dass die an den richtigen Stellen
    sind.

    verwende Leerzeichen statt Tabulatoren. Tabulatoren sind sehr nett, haben aber die unangenehme Eigenschaft, dass sie programmspezifisch einstellbar sind, ...

    Das sieht dann in etwa so aus:

    header_a | header_b | header_c

    cell_a1 | cell_a2 | cell_a3
    cell-b1 | cell-b2 | cell_b3

    ... bei der Eingabe sehe ich eine sauber dargestellte Tabelle.

    In der Thread-Vorschau oder wenn ich diese Tabelle aber per c&p
    in einem anderen Editor einfüge, stimmt sie schon nicht mehr.

    ... was Dir offensichtlich nicht unbekannt ist.

    Freundliche Grüße

    Vinzenz

  4. Hi!

    Das klingt komisch. Generell bleibt so ein Ihalt bei mir immer gleich. Das sollte er auch. Ob ich den hier schreibe und in mein Notepad einfuege oder umgekehrt.

    Es gibt 2 Dinge die zu beachten sind:
    Die Schriften.
    Die einstellungen der Tabs.

    Fuer soetwas benutzt man eine Monospace-Schrift. (Courier z.B.) Hier ist jedes Zeichen gleich breit. Wird die Tabelle nun in ein Programm kopiert, das eine Schrift verwendet, in der die Zeichen nur soviel Platz verwenden, wie sie brauchen, zerfaellt alles. Logisch.

    Die Tabs sind ein anders Problem: Nicht alle Programme benutzen fuer einen Tabulatorschritt den gleichen Platz. Damit hast Du selbst bei einer Monospace-Schrift Verzerrungen. Die Zeichen sind zwar alle gleich breit, aber durch unterschiedliche Tabs zerfaellt wieder alles.

    Ergo:
    Sorge fuer eine Monospace-Schrift und nutze keine Tabs, sondern Leerzeichen.

    Was Die Empfaenger in ihren Mails bekommen, kannst Du bei plain-text nicht bestimmen. Wenn jemand Arial in seinem Mailclient eingestellt hat, dann sieht er so eine Tabelle eben verzerrt. Das kannst Du genausowenig beeinflussen, wie die eingestellte Tabweite. Ausser Du bist Herr ueber alle betroffenen Systeme.

    --
    "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
          - T. Pratchett
  5. hi,

    Kann man da etwas machen ?

    Machn .gif.

    Hotte

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
    1. Hi,

      Machn .gif.

      eine Grafik als Text darzustellen ist zwar nicht unbedingt unmöglich, aber meist doch etwas schwieriger. Außerdem gelangt man dadurch mit den selben Problemen einfach nur auf eine neue Ebene.

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Hi,

        Machn .gif.

        eine Grafik als Text darzustellen ist zwar nicht unbedingt unmöglich, aber meist doch etwas schwieriger. Außerdem gelangt man dadurch mit den selben Problemen einfach nur auf eine neue Ebene.

        Öhhhm, ich wollte eigentlich einen _Text als Grafik_ darstellen, bzw. diesen an sich recht einfachen Vorgang, vorausgesetzt, es steht ein geeignetetes Programm zur Verfügung, hier ganz einfach mal als Vorschlag präsentieren. Also mit Perl und  GD.pm ist das wirklich überhaupt kein Problem. Eine Grafik als Text dazustellen, geht natürlich auch (auf OCR-Ebene).

        Hotte

        --
        Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
        1. Hi,

          Öhhhm, ich wollte eigentlich einen _Text als Grafik_ darstellen,

          was in einem Text-Only-Bereich etwas suboptimal ist. Du bist dran.

          Cheatah ;-)

          --
          X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
  6. Hallo Forum,

    danke für eure zahlreichen Antworten !

    Da es sich  hier um die Reintextvariante eines Newsletters
    handelt, ich alo keinerkei Einfluss auf die darstellende
    Software habe, kann die Lösung m.E. nur sein, auf Tabellen
    zukünftig zu verzichten.

    Ich habe mich für diesen Fall dennoch darauf geeinigt, das
    ganze mit Leerzeichen umzusetzen und für MS Outlook zu
    optimieren, weil damit wohl der grösste Teil der Empfänger
    das Dokument betrachten wird. MS Outlook verwendet scheinbar
    per default Courier New und damit sieht die Tabelle gut aus.

    beste gruesse,
    heinetz

    1. Hi!

      Da es sich  hier um die Reintextvariante eines Newsletters
      handelt, ich alo keinerkei Einfluss auf die darstellende
      Software habe, kann die Lösung m.E. nur sein, auf Tabellen
      zukünftig zu verzichten.

      Nein. Wuerde ich nicht so sehen. Ich kenne spontan keinen Mailclient (darunter fallen auch Webmailer) der nicht standardmaessig eine dicktengleiche Schrift benutzt. (meist Courier oder aehnliches). Der User entscheidet sich aleso normalerweise bewusst fuer bestimmte Nachteile, wenn er an der Schrift spielt. Auch wenn dem User das dabei nicht unbedingt bewusst ist.

      Ich habe mich für diesen Fall dennoch darauf geeinigt, das
      ganze mit Leerzeichen umzusetzen und für MS Outlook zu
      optimieren, weil damit wohl der grösste Teil der Empfänger
      das Dokument betrachten wird. MS Outlook verwendet scheinbar
      per default Courier New und damit sieht die Tabelle gut aus.

      Eine "Optimierung" fuer Outlook ist unnoetig (s.o.) Ich habe keine Zahlen. Ist Outlook wirklich das meistgenutzte Mailtool?

      Der Entschluss mit Leerzeichen und eventuell berechneten Feldern zu arbeiten ist allerdings die beste Wahl.

      --
      "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
            - T. Pratchett