pl: Müssen wir undef bzw. null transportieren?

1 69

Müssen wir undef bzw. null transportieren?

pl
  • meinung
  1. 0
    Tabellenkalk
  2. 2
    dedlfix
    1. 0
      pl
    2. 0
      pl
      1. 0
        TS
      2. 0
        Auge
        • programmiertechnik
      3. 0
        dedlfix
        1. 0
          pl
    3. 0
      Gunnar Bittersmann
  3. 0
    Linuchs
    1. 0
      dedlfix
      1. 0
        pl
        1. 0
          TS
          • programmiertechnik
          1. 0
            pl
            1. 0
              dedlfix
              1. 0
                pl
                1. 0
                  dedlfix
            2. 0
              Auge
              1. 0
                pl
                1. 0
                  Auge
                  1. 0
                    pl
                    1. 0
                      Auge
                2. 0
                  dedlfix
                  1. 0
                    pl
                    1. 0
                      JürgenB
                      1. 0
                        pl
                        1. 0
                          JürgenB
                          1. 0

                            Müssen wir undef bzw. null transportieren? Ja hier Beispiel!

                            pl
        2. 0
          dedlfix
    2. 0
      pl
    3. 0
      Gunnar Bittersmann
    4. 0
      Julius
      • javascript
      1. 0
        pl
        1. 0
          encoder
        2. 0
          MudGuard
          1. 0
            TS
            1. 0
              MudGuard
              1. 1
                pl
                1. 0
                  Auge
              2. 0
                Gunnar Bittersmann
                • formulare
                • internationalisierung
                • typografie
                1. 0
                  Matthias Apsel
                2. 0
                  TS
                  1. 0
                    pl
                  2. 0
                    Matthias Apsel
                    • typografie
                  3. 0
                    MudGuard
                    1. 0
                      Matthias Apsel
                      1. 0
                        Gunnar Bittersmann
                        • internationalisierung
                        1. 0
                          Matthias Apsel
                  4. 0
                    Gunnar Bittersmann
                    • typografie
                    1. 0
                      TS
                3. 0
                  MudGuard
                  1. 0
                    Gunnar Bittersmann
                    • formulare
                    • internationalisierung
                    1. 0
                      TS
                    2. 0
                      Gunnar Bittersmann
                      • internationalisierung
                4. 0
                  MudGuard
                  1. 0
                    Gunnar Bittersmann
                    • typografie
                    1. 0
                      MudGuard
                      1. 0
                        Gunnar Bittersmann
  4. 0
    TS
    • programmiertechnik
    1. 0
      dedlfix
      1. 0
        TS
    2. 0
      pl
    3. 0
      Julius
      1. 0
        Gunnar Bittersmann
    4. 0
      pl
  5. 0
    pl
  6. 1
    encoder ohne Anmeldung
    1. 0
      Gunnar Bittersmann

Darüber denke ich seit vielen Jahren nach, aber mir will kein Beispiel einfallen wo ich das so gebraucht hätte. Transportieren meint: Schlüssel-Werte-Paare per Socket, HTTP, Datei... über Plattformen hinwech. Also der Schlüssel ist grundsätzlich gegeben aber der Wert kann von der Datenquelle her undef oder null sein. I.A. vermeiden DB-Designer NULL und setzen den Default "", so hab ich das bisher auch beim Transport gehandhabt.

Aus Programmsicht ist "" stets ein definierter Wert im Gegensatz zu undef (Perl) oder null. Hat hier schonmal jemand null gebraucht beim Programmieren? Über ein Beispiel freute ich mich.

MfG

  1. Hallo,

    Zu deiner Frage kann ich nix beitragen

    Über ein Beispiel freute ich mich.

    Aber für den Konjunktiv gab ein + von mir.

    Gruß
    Kalk

  2. Tach!

    Aus Programmsicht ist "" stets ein definierter Wert im Gegensatz zu undef (Perl) oder null. Hat hier schonmal jemand null gebraucht beim Programmieren?

    Wenn dein periodisch ausgelesenes Thermometer ausfällt und statt null den Wert 0 liefert, verfälscht das die Aufzeichnung.

    Ein Leerstring anstelle null für ein nicht vorhandenes Objekt macht sich auch nicht besonders gut. Ein leeres Objekt (also dessen Felder alle "" oder 0 enthalten) zu liefern ist auch nicht besonders sinnvoll, weil das beim Zählen 1 ergibt, obwohl da eigentlich nichts da ist.

    Man braucht null, wenn die Ersatzwerte "" oder 0 eine andere Bedeutung als "nichts" haben oder wenn explizit gekennzeichnet werden soll, dass da nichts ist und auch beim Zählen und dergleichen nicht beachtet werden soll.

    dedlfix.

    1. Mir gehts um den Transport-Layer. Wenn Daten transportiert werden sollen, stellt sich unabhängig vom Serialize-Algorithmus grundsätzlich immer die Frage wie mit undef verfahren werden soll, weil es undef in einer Sequenz (Datei) nicht gibt. Man könnte es leise still und heimlich zu einem Leerstring machen und in der Regel wird das auch so gemacht obwohl es dann kein undef mehr ist und der Leerstring dann beides bedeuten kann.

      Deswegen bat ich um ein Beispiel, wo undef dem Empfänger was bedeutet.

      MfG

    2. Wenn dein periodisch ausgelesenes Thermometer ausfällt und statt null den Wert 0 liefert, verfälscht das die Aufzeichnung.

      Oops. Wenn ein Thermometer 0 liefert, ist nicht davon auszugehen, dass es ausgefallen ist, weil 0 ein Wert ist der im Regelbetrieb ohnehin zu erwarten ist.

      Man braucht null, wenn die Ersatzwerte "" oder 0 eine andere Bedeutung als "nichts" haben oder wenn explizit gekennzeichnet werden soll, dass da nichts ist und auch beim Zählen und dergleichen nicht beachtet werden soll.

      Genau das ist ja meine Frage: Wann braucht man das, Beispiel.

      Es lebe das Nichts 😉

      1. Hello,

        ?

        Das Thermometerbeispiel sollte es doch zeigen, dass 0 hier kein neutrales Element bildet.

        Liebe Grüße
        Tom S.

        --
        Es gibt nichts Gutes, außer man tut es
        Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
      2. Hallo

        Wenn dein periodisch ausgelesenes Thermometer ausfällt und statt null den Wert 0 liefert, verfälscht das die Aufzeichnung.

        Oops. Wenn ein Thermometer 0 liefert, ist nicht davon auszugehen, dass es ausgefallen ist, weil 0 ein Wert ist der im Regelbetrieb ohnehin zu erwarten ist.

        Eben, gerade dafür wird die Unterscheidung zwischen „0“ (0°C (wenn's denn Celsius-Skala ist)) und „NULL“ (kein Wert lieferbar) gebraucht.

        Es lebe das Nichts 😉

        Quasi genau das.

        Tschö, Auge

        --
        Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
        Toller Dampf voraus von Terry Pratchett
      3. Tach!

        Wenn dein periodisch ausgelesenes Thermometer ausfällt und statt null den Wert 0 liefert, verfälscht das die Aufzeichnung.

        Oops. Wenn ein Thermometer 0 liefert, ist nicht davon auszugehen, dass es ausgefallen ist, weil 0 ein Wert ist der im Regelbetrieb ohnehin zu erwarten ist.

        Eben. Dafür braucht es einen Wert für NaN. Und vielleicht auch Inf+ und Inf- oder ähnliches, wenn man angeben möchte, dass die Temperatur außerhalb des Messbereichs oder Messwertebreichs liegt.

        Man braucht null, wenn die Ersatzwerte "" oder 0 eine andere Bedeutung als "nichts" haben oder wenn explizit gekennzeichnet werden soll, dass da nichts ist und auch beim Zählen und dergleichen nicht beachtet werden soll.

        Genau das ist ja meine Frage: Wann braucht man das, Beispiel.

        Siehe oben? Ansonsten klär das doch mit den potentiellen Anwendern deines Systems. Ich weiß auch grad nicht, warum du an diesem Ende sparen möchtest, wenn du doch sowieso eine Unterscheidung für diverse Datentypen benötigst. Oder hast du dich da unnötigerweise auf einen zu kleinen Wertebereich festgelegt?

        dedlfix.

        1. Also gut wir drehen mal Deine Aussage rum: Das Thermometer liefert null bzw. undef statt 0. Damit sind wir bei der Datenerfassung und ja da hast Du vollkommen recht, dieser Fall wäre abzuklären.

          Hier würde ein DB-Designer einen systematischen Fehler machen, wenn er den Default auf numerisch 0 setzte, weil ein Ausfall der Messung damit unbemerkt bliebe: Der fehlende Wert (Default) würde eine erfolgreiche Messung vortäuschen die es nicht gegeben hat.

          Default NULL wäre hier tatsächlich angebracht, aber was einen etwaigen Transport-Layer betrifft: Da tuts auch genausogut ein Leerstring.

          MfG

    3. @@dedlfix

      Wenn dein periodisch ausgelesenes Thermometer ausfällt und statt null den Wert 0 liefert, verfälscht das die Aufzeichnung.

      Da fällt mir in dem Zusammenhang wieder die fehlerhafte deutsche Übersetzung der CSS2-Spec ein, die statt none keinen Ausgangswert liefert und den Sinn verfälscht.

      „Initial: none“ darf nicht zu „Ausgangswert: keiner“ übersetzt werden, da das Schlüsselwort none gemeint ist, nicht „kein Wert“.

      Mit translate="no" wär das (vielleicht) nicht passiert.

      LLAP 🖖

      --
      “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
  3. I.A. vermeiden DB-Designer NULL und setzen den Default "", so hab ich das bisher auch beim Transport gehandhabt.

    Ich denke NULL ist ein Wert, der nicht übertragen wird.

    Warum sollte ich etwa den dritten Vornamen eines Kunden übertragen, wenn ich nicht weiss, ob er überhaupt einen dritten Vornamen hat? Der Wert "" bedeutet: Kein dritter Vorname vorhanden. Das wäre eine Information.

    Was bitte sollte NULL bei einer Übertragung bewirken? Die Mitteilung der eigenen Unkennntnis?

    Gut, in CSV-Dateien verpflichtet man sich, für die oben genannten Felder Werte anzugeben. Aber wie willst du den Text "NULL" interpretieren? Irgend eine durchgeknallte Punkband heisst bestimmt "NULL" - und nun?

    Linuchs

    1. Tach!

      I.A. vermeiden DB-Designer NULL und setzen den Default "", so hab ich das bisher auch beim Transport gehandhabt.

      Ich denke NULL ist ein Wert, der nicht übertragen wird.

      Je nach System kann man einen Ersatzwert nehmen. Man braucht ja auch irgendeinen Mechanismus, der Strings von Zahlen und so weiter unterscheiden kann, und da muss man eben auch NULLs einbauen.

      Warum sollte ich etwa den dritten Vornamen eines Kunden übertragen, wenn ich nicht weiss, ob er überhaupt einen dritten Vornamen hat? Der Wert "" bedeutet: Kein dritter Vorname vorhanden. Das wäre eine Information.

      Was bitte sollte NULL bei einer Übertragung bewirken? Die Mitteilung der eigenen Unkennntnis?

      Zum Beispiel das.

      Gut, in CSV-Dateien verpflichtet man sich, für die oben genannten Felder Werte anzugeben. Aber wie willst du den Text "NULL" interpretieren? Irgend eine durchgeknallte Punkband heisst bestimmt "NULL" - und nun?

      ;; ← dazwischen ist ein NULL-Wert - oder ein Leerstring. Da man Strings nicht in Anführungszeichen setzen muss, ist NULL und Leerstring nicht unterscheidbar mit CSV transportierbar.

      dedlfix.

      1. ;; ← dazwischen ist ein NULL-Wert - oder ein Leerstring. Da man Strings nicht in Anführungszeichen setzen muss, ist NULL und Leerstring nicht unterscheidbar mit CSV transportierbar.

        Das widerlege ich sofort, aber Du kannst ja mal selber darüber nachdenken wie man ein NULL in einer CSV so kennzeichnen könnte damit es sich von einem Leerstring unterscheidet bzw. den Leerstring als NULL deklariert 😉

        1. Hello,

          eine SDF- oder CSV-Datei enthält normalerweise nur druckbare Zeichen, darf aber auch "unschädliche Steuersequenzen" enthalten. Die wurden eigens für Sonderfunktionen ersonnen.

          Da das Stadard Data Format, wie CSV früher hieß, nur wenige starre Regeln kennt und Freiheiten lässt, wäre dies also möglich. Es müssen nur beide Seiten (Quelle und Senke) wissen.

          Liebe Grüße
          Tom S.

          --
          Es gibt nichts Gutes, außer man tut es
          Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
          1. hi Tomtom,

            die Lösung ist ganz einfach. undef wird für den Transport als Leerstring eingetragen und damit der Empfänger das unterscheiden kann, gibt es ein zusätzliches Feld zur Deklaration:

            suburb;S;;
            suburb;U;;
            

            Im ersten Fall ist der Statdtteil ein Leerstring, im zweiten Fall auch aber als undef deklariert. Also wie wir das machen ist nicht die Frage, die Frage ist, obs gebraucht wird. Konkret: Brauchen wir ein zusätzliches Feld zur Deklaration?

            Bei diesem Bespiel sehen wir auch, das es bereits bei der Datenerhebung einen Default geben sollte für eine fehlende Angabe (nicht jede Anschrift beinhaltet einen Stadtteil). Ich kenne DB-Designer die machen sich da keine Rübe, da kommt ein suburb mit NULL daher. Genau dieses Beispiel zeigt aber auch, das es für eine weitere Verarbeitung unsinnig ist, zwischen Leerstring und NULL bzw. undef unterscheiden zu müssen.

            Einzig beim Klonen einer Tabelle in 1:1 sehe ich dafür eine Notwendigkeit, aber dafür gibt es fertige Lösungen.

            MfG

            1. Tach!

              die Lösung ist ganz einfach. undef wird für den Transport als Leerstring eingetragen und damit der Empfänger das unterscheiden kann, gibt es ein zusätzliches Feld zur Deklaration:

              Ja, dann ist es "CSV plus Individualerweiterung". Und es ist dann zum Beispiel nicht mehr einfach über eine allgemeine Import-Funktion lesbar. Man muss die Zusatzinformationen erst auswerten, bevor man den richtigen Wert erhält. CSV ist für den Transport solcher Daten nur bedingt geeignet.

              Also wie wir das machen ist nicht die Frage, die Frage ist, obs gebraucht wird. Konkret: Brauchen wir ein zusätzliches Feld zur Deklaration?

              "Ihr" solltet das untereinander klären in eurem konkreten Szenario. Aber ich vermute mal, du meinst mit dem "wir" ein inklusives. In dem Fall ist die Fragestellung nicht weiter sinnvoll, weil es sowieso jeder machen muss, wie es für den Anwendungsfall benötigt wird.

              Genau dieses Beispiel zeigt aber auch, das es für eine weitere Verarbeitung unsinnig ist, zwischen Leerstring und NULL bzw. undef unterscheiden zu müssen.

              Kann ja sein, aber das auf alle Anwendungsfälle verallgemeinern zu wollen ist auch nicht sinnvoll.

              dedlfix.

              1. Ja, i.d.R. wird ein Transport-Layer auch dafür genutzt um zu Vermitteln, das schrieb ich ja bereits. Und in meiner gesamten beruflichen Praxis ist mir auch nichts Anderes untergekommen, wäre ja auch Quatsch wenn auf einem Briefumschlag steht Stadtbezirk: Undefiniert.

                Abstrakt ist die Frage, ob ein Transport-Layer die Rolle eines Vermittlers spielen darf oder grundsätzlich transparent sein muss. Und genau dafür bitte ich um ein Beispiel. Auch wenn ich Transport-Layer einsetze die sowohl vermitteln als auch transparent sind, ich habe einfach kein Beispiel dafür dass sie transparent sein müssen. Deswegen hab ich diesen Thread eröffnet.

                MfG

                1. Tach!

                  Abstrakt ist die Frage, ob ein Transport-Layer die Rolle eines Vermittlers spielen darf oder grundsätzlich transparent sein muss. Und genau dafür bitte ich um ein Beispiel.

                  Grundsätzlich muss gar nichts sein. Weder in die eine noch in die andere Richtung. Wenn du ein Gott-Format entwickeln möchtest, dann solltest du nicht nur für die Werte deiner Fragestellung offen sein, sondern für alles mögliche Unvorhergesehene, auch jenseits der simplen Typen. Ansonsten bist du beim Konkreten und solltest deinen konkreten Anwendungsfall betrachten, und der Rest kann dir egal sein.

                  Auch wenn ich Transport-Layer einsetze die sowohl vermitteln als auch transparent sind,

                  Das würde man dann anderenorts Verletzung des Postgeheimnisses nennen. Warum kümmert es dich im Falles des Transporteurs was da für Inhalte kommen? Warum gefällt dir das Prinzip der Trennung von Zuständigkeiten nicht? Im Verkehrswesen benötigt man verschiedene Container für die verschiedenen Arten von Gütern. Aber im Digitalen gibt es quasi nur einen Type: Bytes. Also transportier einfach die Bytes und überlass die Interpretation den höheren Schichten. Abstraktes Problem abstrakt gelöst.

                  ich habe einfach kein Beispiel dafür dass sie transparent sein müssen. Deswegen hab ich diesen Thread eröffnet.

                  Müssen sie ja auch nicht per se. Aber welchen Nutzen bringt es, sie einschränkend zu gestalten? Und warum muss es dafür eine allgemeine Lösung geben?

                  dedlfix.

            2. Hallo

              die Lösung ist ganz einfach. undef wird für den Transport als Leerstring eingetragen und damit der Empfänger das unterscheiden kann, gibt es ein zusätzliches Feld zur Deklaration:

              suburb;S;;
              suburb;U;;
              

              Im ersten Fall ist der Statdtteil ein Leerstring, im zweiten Fall auch aber als undef deklariert. Also wie wir das machen ist nicht die Frage, die Frage ist, obs gebraucht wird. Konkret: Brauchen wir ein zusätzliches Feld zur Deklaration?

              Dann ist das kein CSV mehr. Also hast du garnix widerlegt.

              Tschö, Auge

              --
              Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
              Toller Dampf voraus von Terry Pratchett
              1. Dann ist das kein CSV mehr

                Aber hallo, ich kann in CSV Felder definieren wie ich das für richtig halte und wie der Empfänger das braucht. Selbstverständlich ist und bleibt das CSV, das ist überhaupt keine Frage. In XML könnte ich das auch so machen:

                <suburb type="undef"></suburb>
                <suburb type="string"></suburb>
                

                Und auch das ist und bleibt XML. Aber wie gesagt, dass war nicht die Frage.

                MfG

                1. Hallo

                  Dann ist das kein CSV mehr

                  Aber hallo, ich kann in CSV Felder definieren wie ich das für richtig halte …

                  Kannst du, aber im Zweifelsfall sit das eben kein CSV mehr, sondern ein eigenes Format, dass …

                  … und wie der Empfänger das braucht.

                  … für den Empfänger tatsächlich geeigneter als z.B. CSV sein kann. Es ist dann nur keines mehr.

                  Selbstverständlich ist und bleibt das CSV, das ist überhaupt keine Frage. In XML könnte ich das auch so machen:

                  <suburb type="undef"></suburb>
                  <suburb type="string"></suburb>
                  

                  CSV enthält im „V“ das Kürzel für „Values“. Es gibt in „CSV“ keinen Buchstaben, der für „Typ“ oder „Datentyp“ steht. Was du hier in XML machst und was z.B. auch bei Serialisierungen gemacht wird, funktioniert bei CSV nicht auf diese Weise. Bestenfalls kannst du mit der Einhaltung bestimmter Konventionen die Typen festlegen (Strings durch Einfassung in Anführungszeichen (…;"String";…), Zahlen als Werte ohne Anführungszeichen (…;2;7.5;…), NULL durch einen „echt“ leeren Wert, nicht einen leeren String (…;;…)). Das muss dann auch vom lesenden Programm unterstützt werden.

                  Was du in deinem vorigen Posting vorschlugst, mag je nach Anwendungsfall eine sinnvolle Datenstruktur sein, es wird aber von keinem Programm, das CSV lesen kann, als das erkannt werden, was dir vorschwebt. Es käme nur eine Tabelle mit vier Feldern pro Zeile, jeweils zwei mit Strings und zwei mit NULL, heraus.

                  |suburb|S||| |suburb|U|||

                  Tschö, Auge

                  --
                  Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
                  Toller Dampf voraus von Terry Pratchett
                  1. CSV ist nicht auf dedizierte Felder beschränkt. Kommagetrennt könntest Du auch Eintity;Attribute;Value in eine CSV transformieren und eine mögliche resultierende Datenstruktur wäre ein Array mit Objekten wobei jedes Objekt (Entity) beliebige und beliebig viele Attribute/Werte haben darf.

                    D.h., vom Algorithmus her gehören immer 3 Felder zusammen und maskiert werden muss nur das ; falls es selbst in einem der Values vorkommt. Dann können Values auch beliebige Texte sein mit beliebigen Zeilenumbrüchen.

                    Eine solche Sequenz wäre dann keine echte CSV mehr, ist aber universell, weil damit verschiedene Datenstrukturen abbildbar sind: Array (jeder Wert steht für sich allein), Assoziatives Array (Schlüssel => Wert), EAV (Schlüssel => SubSchlüssel => Wert) usw. Und ein zusätzliches Feld könnte den Datentyp des Values deklarieren womit wir wieder beim Thema wären 😉

                    Ich hab jahrelang Serializer entwickelt aber das ist hier nicht das Thema. MfG

                    1. Hallo

                      CSV ist nicht auf dedizierte Felder beschränkt. Kommagetrennt könntest Du auch Eintity;Attribute;Value in eine CSV transformieren …

                      Eine solche Sequenz wäre dann keine echte CSV mehr

                      Eben, sag' ich doch. Du müsstest dazu auch interpretierende Software bauen, weil die vorhandenen Programme, die CSV lesen können, mit deinem Datenformat nichts anfangen können, weil das eben ein anderes Format ist. Es mag durchaus von CSV inspiriert oder gar abgeleitet sein.

                      Ich hab jahrelang Serializer entwickelt …

                      Dann weißt du ja, dass es bereits -zig andere, typsichere Datenformate gibt.

                      … aber das ist hier nicht das Thema.

                      Jep.

                      Tschö, Auge

                      --
                      Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
                      Toller Dampf voraus von Terry Pratchett
                2. Tach!

                  Dann ist das kein CSV mehr

                  Aber hallo, ich kann in CSV Felder definieren wie ich das für richtig halte und wie der Empfänger das braucht. Selbstverständlich ist und bleibt das CSV, das ist überhaupt keine Frage.

                  Du kannst auch einfach Fließtext nehmen, in dem zufällig Semikolons oder Kommas sowie Zeilenumbrüche drin vorkommen und das dann CSV nennen.

                  Das zugrundeliegende Format für dein Beispiel ist CSV. Aber dass du den Inhalt in irgendeiner Weise interpretierst, ist davon unabhängig. Wenn ich allein anhand der CSV-Spezifikation deine Daten lese, erschließt sich mir der Sinn des Inhalts nicht. Ich brauche also noch deine zusätzliche Spezifikation. Und damit ist es kein allgemeines, abstraktes CSV mehr sondern ein konkretes.

                  <suburb type="undef"></suburb>
                  <suburb type="string"></suburb>
                  

                  Und auch das ist und bleibt XML.

                  In XML ist es definiert, dass Elemente Attribute haben können. Aber weder die Namen der Elemente noch die der Attribute noch die Werte sind Gegenstand der XML-Spezifikation, sondern sind individuelle Zusätze seitens des Verwenders. Betrachtest du diese Struktur und Inhalte, ist es nicht mehr abstraktes XML sondern ein konkretes Format, das lediglich das allgemeine Vehikel XML in einer zusätzlich definierten Weise nutzt.

                  Aber wie gesagt, dass war nicht die Frage.

                  Der Sinn hinter der Fragestellung ist mir zumindest unklar.

                  dedlfix.

                  1. Der Sinn hinter der Fragestellung ist mir zumindest unklar.

                    Die Frage ist, ob beim Ausdruck einer Anschrift bei Stadtbezirk: Undefiniert stehen sollte. Also ob da jemand ein Beispiel hat für sowas.

                    1. Hallo,

                      ich kann mich daran erinnern, das „früher“ bei großen Unternehmen das Postfach keine Nummer hatte, also

                      Firma
                      12345 Stadt
                      Postfach

                      Eine leeres Postfachfeld kann also bedeuten:

                      • Große Firma, Postfach ohne Nummer
                      • Kein Postfach

                      Diese Fälle müssten irgendwie unterschieden werden, z.B.:

                      • Postfach = ""
                      • Postfach = null

                      Gruß
                      Jürgen

                      1. Nun, bei einer Fallunterscheidung if $postfach (Perl) ist es egal ob undef oder ein Leerstring drinsteht, in beiden Fällen ergibt sich false.

                        Deswegen wird ja meistens ein undef als Leerzeichen transportiert, weil es physikalisch gar nicht anders möglich ist sondern nur durch eine zusätzliche Vereinbarung, den Transport-Layer transparent zu machen. MfG

                        1. Hallo,

                          Nun, bei einer Fallunterscheidung if $postfach (Perl) ist es egal ob undef oder ein Leerstring drinsteht, in beiden Fällen ergibt sich false.

                          undef bedeutet in meinem Beispiel kein Postfach, Leerstring bedeutet Postfach ohne Nummer. Also muss hier zwischen null (oder wie auch immer undef codiert wird) und "" unterschieden werden.

                          Gruß
                          Jürgen

                          1. Oh, ich hab Dein Beispiel erst jetzt verstanden. Das ist echt gut!

                            Danke Dir!!!

                            Und Freundschaft 😉

        2. Tach!

          ;; ← dazwischen ist ein NULL-Wert - oder ein Leerstring. Da man Strings nicht in Anführungszeichen setzen muss, ist NULL und Leerstring nicht unterscheidbar mit CSV transportierbar.

          Das widerlege ich sofort, aber Du kannst ja mal selber darüber nachdenken wie man ein NULL in einer CSV so kennzeichnen könnte damit es sich von einem Leerstring unterscheidet bzw. den Leerstring als NULL deklariert 😉

          Dann wäre es aber kein CSV mehr sondern "CSV plus eigene Interpretation der Daten".

          dedlfix.

    2. Ich denke NULL ist ein Wert, der nicht übertragen wird.

      Doch, übertragen kannst Du null/undef schon, das muss nur entsprechend gekennzeichnet sein. Eine diesbezügliche Diskussion hatte ich vor Jahren hier mal angestoßen 😉

      Meine heutige Frage ist jedoch praktischer Natur, also ob das wirklich gebraucht wird, deswegen meine Bitte um ein Beispiel. MfG

    3. @@Linuchs

      Irgend eine durchgeknallte Punkband heisst bestimmt "NULL" - und nun?

      Hello, I’m Mr. Null. My Name Makes Me Invisible to Computers

      LLAP 🖖

      --
      “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
    4. Hallo Linuchs,

      Warum sollte ich etwa den dritten Vornamen eines Kunden übertragen, wenn ich nicht weiss, ob er überhaupt einen dritten Vornamen hat? Der Wert "" bedeutet: Kein dritter Vorname vorhanden. Das wäre eine Information.

      Eine Information wäre auch der Unterschied zwischen „er hat keinen Vornamen“ (Leerstring) und „kenn ich nicht“ (NULL). Siehe auch anschauliche Erklärung.

      Was bitte sollte NULL bei einer Übertragung bewirken? Die Mitteilung der eigenen Unkennntnis?

      Würde ich sagen, kann eine wichtige Information sein.

      Aber wie willst du den Text "NULL" interpretieren?

      Im CSV-Kontext als Text. Wenn ich NULL übertragen wollen würde, würde ich auf ein Format wie JSON zurückgreifen, anstatt etwas Eigenes zu definieren, bei dem man meist irgendetwas zu berücksichtigen vergisst, was einem dann das ganze Format zerschießt. Außerdem braucht man nicht aufwändig einen CSV-Parser bauen, in PHP (und den meisten anderen Sprachen bzw. Bibliotheken) gibt es dafür schon etwas passendes.

      Irgend eine durchgeknallte Punkband heisst bestimmt "NULL" - und nun?

      In JSON-Notation kein Problem:

      {
        "null":null,
        "null (string)":"null",
        "NULL  (String)":"NULL",
        "Leerstring":""
      }
      

      ... sieht in PHP so aus:

      $arr = [
        'null' => null,
        'null (string)' => 'null',
        'NULL (String)' => 'NULL',
        'Leerstring' => ''
      ];
      

      Gruß
      Julius

      1. Ok, dass man es transportieren kann über spezielle Vereinbarungen, ist klar. Aber jetzt die entscheidende Frage: Hast Du das schon mal gebraucht? MfG

        1. Ich musste auch schon unterscheiden. Den Fall weiß ich nicht mehr, aber es waren ja Beispiele in dieser Diskussion die den Unterschied zwischen NULL und leer zeigen. Siehe Thermometer, 0 und NULL sind verschiedene Dinge.
          Bei einer Zahl kann man den Leerstring als NULL interpretieren, bei Strings geht das leider nicht. Aber auch da gibt es Fälle bei denen man unterscheiden muss zwischen Text ist unbekannt und Text ist bekannt, es gibt gerade keinen.

          Denk an eine Fehlermeldung die du regelmäßig aus einem Gerät ausliest und überträgst. Die kann leer sein, aber dann weißt du dass es keinen Fehler gibt und alles in Ordnung ist. Oder sie ist NULL, das bedeutet dann das Gerät funktioniert nicht mehr richtig und kann seinen Status nicht melden.

        2. Hi,

          Ok, dass man es transportieren kann über spezielle Vereinbarungen, ist klar. Aber jetzt die entscheidende Frage: Hast Du das schon mal gebraucht? MfG

          Ja. Wir hatten schon mal einen Kunden ohne Vornamen.

          cu,
          Andreas a/k/a MudGuard

          1. Hello,

            Behane Behane?

            Liebe Grüße
            Tom S.

            --
            Es gibt nichts Gutes, außer man tut es
            Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
            1. Hi,

              Behane Behane?

              Nein, nicht Berhane Berhane.

              Der hat ja einen Vornamen (dasselbe ;-))

              Der Kunde hatte tatsächlich keinen Vornamen. Konnten wir auch nicht glauben - er hat uns dann ein Photo von seinem Personalausweis geschickt. Bei "Vornamen/Given Names/Prénoms" war nur ein Strich (Minuszeichen - auch wenn Gunnar vermutlich sagen wird, daß es ein n- oder m-dash war) eingetragen.

              cu,
              Andreas a/k/a MudGuard

              1. Bei "Vornamen/Given Names/Prénoms" war nur ein Strich

                Definiert also…

                😉

                1. Hallo

                  Bei "Vornamen/Given Names/Prénoms" war nur ein Strich

                  Definiert also…

                  Das ist keineswegs sicher. Der Strich kann auch das Ergebnis einer Prüfung des Werts gegen NULL sein, die bei der Generierung der Ausgabe geschieht. In den Daten selbst stünde immer noch „nur“ NULL.

                  if ($vorname === NULL) {
                      echo '–';
                  } else {
                      echo $vorname;
                  }
                  

                  Tschö, Auge

                  --
                  Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
                  Toller Dampf voraus von Terry Pratchett
              2. @@MudGuard

                Der Kunde hatte tatsächlich keinen Vornamen. Konnten wir auch nicht glauben - er hat uns dann ein Photo von seinem Personalausweis geschickt. Bei "Vornamen/Given Names/Prénoms" war nur ein Strich (Minuszeichen - auch wenn Gunnar vermutlich sagen wird, daß es ein n- oder m-dash war) eingetragen.

                Ja, '—' Geviertstrich (U+2014 em dash) passt.

                BTW, ein '-' Bindestrich (U+002D) ist kein Minuszeichen. Ein '–' Gedankenstrich (Halbgeviertstrich, U+2013 en dash) auch nicht. Ein '−' Minuszeichen (U+2212) ist ein Minuszeichen ist ein Minuszeichen.

                Für alle, die eine unpassende Schrift (dicktengleiche) eingestellt haben, nochmal als Bild:

                Jetzt stellt sich aber die Frage: Hat der Mensch wirklich keinen Vornamen[1]? Oder hat er einen Vornamen, aber keinen Familiennamen? Und wurde der Name deshalb als Familienname eingetragen, weil für deutsche Bürokraten eine Person ohne Vornamen erträglicher ist als eine ohne Familiennamen?

                Und dann stellt sich die Frage: Braucht man in seiner Anwendung wirklich Vornamen und Familiennamen getrennt? Wenn nein, wäre ein Eingabefeld „Name“ besser. ☞Personennamen aus aller Welt

                LLAP 🖖

                --
                “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory

                1. Der Begriff „Vorname“ meint nicht, dass er vor anderen Namensteilen stehen müsste. Die englische Bezeichnung given name trifft es besser. Es gibt aber keine äquivalante Bezeichnung im Deutschen. ↩︎

                1. Hallo Gunnar Bittersmann,

                  Der Begriff „Vorname“ meint nicht, dass er vor anderen Namensteilen stehen müsste. Die englische Bezeichnung given name trifft es besser. Es gibt aber keine äquivalante Bezeichnung im Deutschen.

                  Rufname trifft es am ehesten. Aber das hatten wir schon.

                  Bis demnächst
                  Matthias

                  --
                  Rosen sind rot.
                2. Hello,

                  Gibt es eine Merkregel, warum welcher Strich in welcher Länge, Gewicht, Positionierung, Zusammenhang wie heißt?

                  Und dann stellt sich die Frage: Braucht man in seiner Anwendung wirklich Vornamen und Familiennamen getrennt? Wenn nein, wäre ein Eingabefeld „Name“ besser. ☞Personennamen aus aller Welt

                  "Rufname"? - Würde es doch wohl am ehesten treffen, oder?

                  Der ist üblicherweise ja auch nicht "vererbt".
                  Aber unsere Bürokratie hat mit dem Namensrecht ja ohnehin ihre Probleme:

                  • Geburtsname
                  • Familienname
                  • Ehename
                  • usw.

                  Liebe Grüße
                  Tom S.

                  --
                  Es gibt nichts Gutes, außer man tut es
                  Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                  1. "Rufname"? - Würde es doch wohl am ehesten treffen, oder?

                    Zu meiner Zeit gabs noch richtige Spitznamen. Und selbstverständlich wurden die auch vererbt, aber sowas von 😉

                    Auch Üblich: Spitzname == Rufname. Vorname überflüssig, der stand nur aufm Lappen. Harznauke, ein ehemaliger Kumpel und Klassenkamerad von mir, wusste nicht einmal wie sein Bruder mit Vornamen hieß. Und Der Löwe hieß so, weil seine Eltern das Gasthaus zum Löwen hatten und nicht etwa weil er schulterlange blonde Locken trug. Namen wie Glatze und Brillo erklärten sich von selbst, nur Bussard wusste nicht wie er zu seinem Namen gekommen ist. Hunnemanner hingegen hatte eine interessante Geschichte zu seiner Legitimation zu erzählen, hatte mit seinem Hund zu tun.

                    Moiner hieß so, weil er immer Moin statt Guten Morgen sagte und Suppe weil es bei dem immer Suppe gab. Klempo hieß so, weil er geklaut hat obwohl sein Alter Bulle war und Uwe hörte auf Nazi weil sein Alter eben einer war.

                    Schönen Sonntag ;)

                  2. Hallo TS,

                    Gibt es eine Merkregel, warum welcher Strich in welcher Länge, Gewicht, Positionierung, Zusammenhang wie heißt?

                    Eine Merkregel/Eselsbrücke wüsste ich nicht. Hilfreich finde ich http://www.ooowiki.de/TextStriche.html.

                    Bis demnächst
                    Matthias

                    --
                    Rosen sind rot.
                  3. Hi,

                    "Rufname"? - Würde es doch wohl am ehesten treffen, oder?

                    Vorname: Hans Georg. Rufname Schorsch. Hm.

                    cu,
                    Andreas a/k/a MudGuard

                    1. Hallo MudGuard,

                      Vorname: Hans Georg. Rufname Schorsch.

                      Schorsch würde ich eher als Spitzname einsortieren[1].

                      Rufname: Die Eltern haben ihn dem Kinde gegeben (given name) und damit festgelegt, wie das Kind zukünftig zu rufen ist. Dass sich u.a. Freunde des Kindes Jahre später drüber hinwegsetzen, ist auch bekannt.

                      Bis demnächst
                      Matthias

                      --
                      Rosen sind rot.

                      1. obwohl ich natürlich weiß, dass Schorsch eine Kurz- oder mundartliche Form von Georg ist. ↩︎

                      1. @@Matthias Apsel

                        Rufname: Die Eltern haben ihn dem Kinde gegeben (given name) und damit festgelegt, wie das Kind zukünftig zu rufen ist.

                        Ist das in Deutschland so? In anderen Kulturen (USA) sucht sich die Person selbst aus, welchen ihrer Vornamen sie gern als Rufnamen hätte.

                        So wie sich der andere Riker dazu entschloss, dass sein zweiter Vorname Thomas sein Rufname sein soll.

                        LLAP 🖖

                        --
                        “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                        1. Hallo Gunnar Bittersmann,

                          Ist das in Deutschland so? In anderen Kulturen (USA) sucht sich die Person selbst aus, welchen ihrer Vornamen sie gern als Rufnamen hätte.

                          Es ist in Deutschland inzwischen auch wie in den USA.

                          Bis demnächst
                          Matthias

                          --
                          Rosen sind rot.
                  4. @@TS

                    Gibt es eine Merkregel, warum welcher Strich in welcher Länge, Gewicht, Positionierung, Zusammenhang wie heißt?

                    Ein Geviertstrich heißt so, weil er ein Geviert breit ist. Ein Halbgeviertstrich heißt so, weil er ein halbes Geviert breit ist.

                    Der Halbgeviertstrich wird im Deutschen mit Leerzeichen davor und danach als Gedankenstrich verwendet; auch als Bis-Strich, dann (auch) ohne Leerzeichen davor und danach.

                    Der Bindestrich heißt so, weil er Wortbestandteile verbindet: SELFHTML-Forum. Ein Depp, wer anstatt des Bindestrichs ein Leerzeichen setzt.

                    Der Trennstrich heißt so, weil er Silben trennt – üblicherweise am Zeilenende. Als Trennstrich wird heutzutage der Bindestrich verwendet (AFAIK war das nicht immer so).

                    Das Minuszeichen heißt so … – das ist wohl selbsterklärend.

                    LLAP 🖖

                    --
                    “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                    1. Hello,

                      Das Minuszeichen heißt so … – das ist wohl selbsterklärend.

                      Klar.

                      Wril die z. B. bei der Braunchweiger Zeitung immer "www braunschweiger minus zeitung de" sagen für Ihre Webseite. ;-P

                      Liebe Grüße
                      Tom S.

                      --
                      Es gibt nichts Gutes, außer man tut es
                      Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                3. Hi,

                  Jetzt stellt sich aber die Frage: Hat der Mensch wirklich keinen Vornamen[^Vorname]?

                  Laut seiner Auskunft hat er keinen Vornamen. Er war afrikanischer Herkunft, ist inzwischen aber eingebürgerter Deutscher.

                  Und dann stellt sich die Frage: Braucht man in seiner Anwendung wirklich Vornamen und Familiennamen getrennt?

                  Wenn man nur ein Feld hat, ist es schwierig, die Anrede "Sehr geehrter Herr Bittersmann" korrekt zu erzeugen z.B. für Bestätigungsmails oder Briefe. Klar, bei nur zweiteiligen Namen wie "Gunnar Bittersmann" geht das noch.

                  Aber programmgesteuert mehrteilige Namen korrekt wieder zu zerlegen? Schwierig.

                  Wo ist die Grenze bei "Hans Georg Heinz"? Sind das ein oder zwei Vornamen? Oder gar drei? Oder keiner? (Bei meinem gleichnamigen Vorfahren aus dem 16. Jahrhundert ist es ein Vorname, die Familie heißt Georg Heinz - merkt man bei den Damen in der Familie, die dann Kunigunda Georg Heinz heißen ...)

                  Bei Namen ehemaliger Adeliger sind dann noch viel mehr Namensteile vorhanden. Mal beginnt der Nachname mit dem "von", mal ist aber schon ein Teil davor Bestandteil des Nachnamens.

                  Und ggf. muß man ja die Namen noch an dritte Stellen weiterreichen, die die Namensteile getrennt haben wollen.

                  cu,
                  Andreas a/k/a MudGuard

                  1. @@MudGuard

                    Und dann stellt sich die Frage: Braucht man in seiner Anwendung wirklich Vornamen und Familiennamen getrennt?

                    Wenn man nur ein Feld hat, ist es schwierig, die Anrede "Sehr geehrter Herr Bittersmann" korrekt zu erzeugen z.B. für Bestätigungsmails oder Briefe. Klar, bei nur zweiteiligen Namen wie "Gunnar Bittersmann" geht das noch.

                    Warum nicht „Sehr geehrter Herr Gunnar Bittersmann“ oder „Sehr geehrter Gunnar Bittersmann“?

                    Die Anrede bei Antwortschreiben ist ein schwacher Grund, Namensbestandteile trennen zu wollen.

                    Aber programmgesteuert mehrteilige Namen korrekt wieder zu zerlegen? Schwierig.

                    Anders gesagt: unmöglich. Einen Algorithmus zu finden, der alle Namen korrekt in ihre Bestandteile zerlegt – good luck!

                    Wenn man tatsächlich die einzelnen Bestandteile braucht, muss man sie getrennt abfragen und getrennt speichern.

                    Man sollte sich aber fragen, ob man tatsächlich die einzelnen Bestandteile braucht.

                    LLAP 🖖

                    --
                    “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                    1. Hello,

                      Man sollte sich aber fragen, ob man tatsächlich die einzelnen Bestandteile braucht.

                      Ich weiß schon ganz gerne, ob ich den Vertrag mit Karl Fritz oder mit Fritz Karl abgeschlossen habe. Ich kenne von beiden einen ;-)

                      Liebe Grüße
                      Tom S.

                      --
                      Es gibt nichts Gutes, außer man tut es
                      Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
                    2. @@Gunnar Bittersmann

                      Und dann stellt sich die Frage: Braucht man in seiner Anwendung wirklich Vornamen und Familiennamen getrennt?

                      Wenn man nur ein Feld hat, ist es schwierig, die Anrede "Sehr geehrter Herr Bittersmann" korrekt zu erzeugen z.B. für Bestätigungsmails oder Briefe. Klar, bei nur zweiteiligen Namen wie "Gunnar Bittersmann" geht das noch.

                      Warum nicht „Sehr geehrter Herr Gunnar Bittersmann“ oder „Sehr geehrter Gunnar Bittersmann“?

                      Zumal „Sehr geehrte Frau Jónsdóttir“ oder „Sehr geehrter Herr Nguyễn“ nicht die korrekte Anrede wären und man damit seine Unkenntnis zur Schau stellt, wie wenig man über isländische bzw. vietnamesische Namen weiß (und wie scheißegal einem das auch ist).

                      LLAP 🖖

                      Nachtrag: Der Eintrag zu Birgitta Jónsdóttir in der englischen Wikipedia trägt dem Rechnung: Eingangs wird ihr voller Name erwähnt, danach wird sie beim Vornamen genannt.

                      --
                      “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                4. Hi,

                  BTW, ein '-' Bindestrich (U+002D) ist kein Minuszeichen.

                  ist das so? Wohl eher nicht (auch wenn Du das gerne so hättest - aber manchmal dreht sich die Welt nicht um Dich …):

                  002D - HYPHEN-MINUS = hyphen or minus sign

                  zitiert aus Unicode Code Chart

                  cu,
                  Andreas a/k/a MudGuard

                  1. @@MudGuard

                    BTW, ein '-' Bindestrich (U+002D) ist kein Minuszeichen.

                    ist das so? Wohl eher nicht

                    Wenn du meinst, dass der Bindestrich doch U+2010 sei (nicht U+002D), kriegst du einen Punkt. Na gut, einen halben.

                    002D - HYPHEN-MINUS = hyphen or minus sign

                    zitiert aus Unicode Code Chart

                    “The use of a single character for both hyphen and minus was a compromise made in the early days of fixed-width typewriters and computer displays.”

                    zitiert aus Wikipedia

                    Man beachte die Vergangenheitsform und early days“.

                    LLAP 🖖

                    --
                    “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
                    1. Hi,

                      “The use of a single character for both hyphen and minus was a compromise made in the early days of fixed-width typewriters and computer displays.”

                      zitiert aus Wikipedia

                      Man beachte die Vergangenheitsform und early days“.

                      muß ja Vergangenheitsform sein, der Kompromiß wurde ja vor langer Zeit gemacht.

                      cu,
                      Andreas a/k/a MudGuard

                      1. @@MudGuard

                        “The use of a single character for both hyphen and minus was a compromise made in the early days of fixed-width typewriters and computer displays.”

                        zitiert aus Wikipedia

                        Man beachte die Vergangenheitsform und early days“.

                        muß ja Vergangenheitsform sein, der Kompromiß wurde ja vor langer Zeit gemacht.

                        Grammatikstunde: Vergangenheit und Vorvergangenheit.

                        Damals war’s ein fauler Kompromiss gewesen.

                        Heutzutage ist’s ein verfaulter Kompromiss.

                        LLAP 🖖

                        --
                        “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
  4. Hello,

    da mich das Rumgeeier hier irgendwie stört, habe ich es kurzerhand mal wieder einfach ausprobiert.

    Aussage: Das SDF/CSV-Format lässt es zu, dass man auch "unschädliche Steuerzeichen" aufnimmt.
    Überprüfung: ich habe ein paar Steuerzeichen ausprobiert, einschließlich NULL.

    • PHP kommt damit zurecht, Excel kommt damit zurecht, usw.
    • Excel kann sogar richtig damit rechnen. NULL * 7 = #WERT!, was soviel bedeutet, dass die Operation nicht zulässig war. Und das stimmt ja irgendwie, oder?
    • Es ist im Weiteren Sache der Applikation (Layer 7), was sie mit den Steuerzeichen Incl. NULL anfängt.

    Ein schlechtes Textprogramm könnte bei NULL ggf. abstürzen, weil früher Strings oft nur auf Zero-Termination geprüft worden. Aber solche Programme gibt es doch heute nicht mehr, oder? ;-)

    Liebe Grüße
    Tom S.

    --
    Es gibt nichts Gutes, außer man tut es
    Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
    1. Tach!

      Aussage: Das SDF/CSV-Format lässt es zu, dass man auch "unschädliche Steuerzeichen" aufnimmt.
      Überprüfung: ich habe ein paar Steuerzeichen ausprobiert, einschließlich NULL.

      NULL ist kein Steuerzeichen sondern ein abstraktes Konzept. Die Frage war auch nicht, wie sich ein NUL-Zeichen von ASCII oder ein 0x00-Byte, das du hier mit NULL gleichsetzt, mit CSV übertragen lässt. Ebenso war CSV nicht Thema der Fragestellung sondern lediglich ein Einwurf von Linuchs in einem Teil-Thread.

      Wir eiern hier nicht um das Thema, wie es sich transportieren lässt, sondern ob es benötigt wird oder nicht. Zuzüglich Abschweifungen.

      dedlfix.

      1. Hello,

        dann beziehe meine Antwort bitte nur auf die Eier.

        Liebe Grüße
        Tom S.

        --
        Es gibt nichts Gutes, außer man tut es
        Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.
    2. Selbstverständlich lässt sich das null-Byte transportieren. Aber es ist eben nicht undef wie dedlfix schon anmerkte. Wenn undef transportiert werden soll, muss es IMMER eine spezielle Festlegung geben für den Ersatzwert. Und Letzterer kann auch auf das null-byte umgelegt sein, praktisch ist das jedoch nicht gerade zweckmäßig, weil das nullbyte mit length==1 in jeder binary vorkommen kann.

      Zweckmäßiger, weil weniger Aufwand und auch ohne Zusatzvereinbarung logisch gleichermaßen handlebar, ist der Leerstring als Ersatzwert. Nur dann, wenn am anderen Ende des Transport-Layers unterschieden werden muss, ob der Leerstring auch undef bedeutet, wäre eine Typedeklaration von Interesse.

      MfG

    3. Hallo Tom,

      Ein schlechtes Textprogramm könnte bei NULL ggf. abstürzen, weil früher Strings oft nur auf Zero-Termination geprüft worden. Aber solche Programme gibt es doch heute nicht mehr, oder? ;-)

      Scribus beschwert sich wahlweise über ein unerwartetes Ende der Datei oder über einen Fehler beim Parsen („Ungültig an der Stelle ''.“), wenn man in dessen XML-basierten Dateiformat ein NULL einbaut. Das Parsen der Datei wird dann abgebrochen.

      Gruß
      Julius

      1. @@Julius

        Scribus beschwert sich wahlweise über ein unerwartetes Ende der Datei oder über einen Fehler beim Parsen („Ungültig an der Stelle ''.“), wenn man in dessen XML-basierten Dateiformat ein NULL einbaut.

        Zurecht. [XML §2.2]

        Das Parsen der Datei wird dann abgebrochen.

        Genau das muss es bei einem fatal error auch tun. [XML §1.2]

        LLAP 🖖

        --
        “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory
    4. Ein schlechtes Textprogramm könnte bei NULL ggf. abstürzen, weil früher Strings oft nur auf Zero-Termination geprüft worden. Aber solche Programme gibt es doch heute nicht mehr, oder? 😉

      Schlimmer: Windows macht Dateien, die nicht ausdrücklich im Binmode geöffnet werden, um ein Byte kürzer wenn das letzte Byte A0 ist. Und das passiert praktisch mit jedem Texteditor 😉

  5. Mahlzeit 😉

    Bis mir hier einer ein gegenteiliges Beispiel bringt behaupte ich mal, dass es nicht notwendig ist, einen Transport-Layer für undef transparent zu machen. Ausnahme: Klonen von Datenbanken.

    Schöne Grüße, Freundschaft siecht.

  6. Manchmal macht es einen Unterschied ob man nichts sagt oder "nichts" sagt ;-)

    1. @@encoder ohne Anmeldung

      Manchmal macht es einen Unterschied ob man nichts sagt oder "nichts" sagt ;-)

      Als hätte ich’s nicht gesagt. ;-)

      LLAP 🖖

      --
      “When UX doesn’t consider all users, shouldn’t it be known as ‘Some User Experience’ or... SUX? #a11y” —Billy Gregory