Jörg: Daten aus Variabeln lokal sicher - grosses Problem!!!!

Hallo Forum!

Ich habe ein riesen Problem. Wir (agentur) müssen ein projekt verwiklichen in dem der User die Möglichkeit hat über den Browser (nur ie) formulare auszufüllen und berechnen zu lassen. Das alles passiert offline, das projekt muss von einer cd laufen. Das problem ist, das sich viele Variabeln ansammeln und diese ausgewertet werden müssen.
Auch müssen diese haltbar sein, d.h. nach schliessen des browsers müssen diese später noch zur verfügung stehen. Es scheint mit cookies zu funktioneren, nur halten diese so viele daten? Ich habe jetzt schon cookies im einsatz aber das system wird sehr langsam. Leider habe ich auch nur die möglichkeit javascript einzusetzten.

Meine frage nun, wie kann ich am besten die variabeln speichern?

vielen Dank!!
Jörg

  1. Moin,

    schon mal über PDF-Formulare nachgedacht ?

    Ab Acrobat 6.0 kann man auch ausgefüllte Formulare speichern.

    Wäre das evtl. eine Hilfe ?

    cu mipu

    1. Vielen Dank!

      leider muss es html sein, da das ganze ding nach einer gewissen zeit von einer offline version auf eine onlineversion umzieht

      Jörg

  2. Meine frage nun, wie kann ich am besten die variabeln speichern?

    Mit Cookies.

    Struppi.

  3. Hallo Jörg,

    um cookies wirst Du nicht herumkommen.

    Auch müssen diese haltbar sein, d.h. nach schliessen des browsers müssen diese später noch zur verfügung stehen. Es scheint mit cookies zu funktioneren, nur halten diese so viele daten?

    wieviele sind's denn? ein Cookie kann 4kb aufnehmen. Ich glaube 20 Cookies speichert ein Brauser, bevor die ältesten wieder gelöscht werden.

    Gruß, Andreas

    --
    SELFFORUM - hier werden Sie geholfen,
    auch in Fragen zu richtiges Deutsch
    1. Hallo,

      genau da liegt das problem. Ich habe ca 40 formulare mit je 8 feldern, also ca. 320 Variablen. Das hält der cookie nicht durch. Wie bekomme ich diese Variablen auf die reihe?? Mehrere cookies a 20 Einträgen für die lokale domain? soweit ich weiss geht das nicht.
      Echt mistig!

      Danke!!
      Jörg

      1. genau da liegt das problem. Ich habe ca 40 formulare mit je 8 feldern, also ca. 320 Variablen.

        aber es kommt doch drauf an, wieviele Zeichen Du am Ende hast. Du mußt doch nicht für jede Variable ein eigenes Cookie setzen. Das ist für Leute, die sich Cookies melden lassen eh eine Zumutung.

        Wie bekomme ich diese Variablen auf die reihe??

        indem Du sie serialisierst. Stichwort 'reihe' war schon gut ;-)

        Gruß, Andreas

        --
        SELFFORUM - hier werden Sie geholfen,
        auch in Fragen zu richtiges Deutsch
        1. Hallo Andreas!

          ich denke ich verstehe seinen ansatz!

          indem Du sie serialisierst. Stichwort 'reihe' war schon gut ;-)

          nur: wie stelle ich das in JS an??

          Danke!!

          1. ich denke ich verstehe seinen ansatz!

            ^^^^^^
            Du meintest "Deinen"?

            indem Du sie serialisierst. Stichwort 'reihe' war schon gut ;-)
            nur: wie stelle ich das in JS an??

            das hat mit der Sprache nichts zu tun. Such Dir ein Trennzeichen, das garantiert nicht in den Variablen vorkommen kann, z.B. '_'

            Die einfachste Form wäre nun cookiename="wert1_wert2_...wertn"; Wenn Du die Reihenfolge der Variablen festlegst, also "var nummer" steht an Stelle 1, "var farbe" steht an Stelle 2 usw. kannst Du beim Wiederauslesen den String an '_' splitten und der Reihe nach zuweisen: var nummer = wert1; var farbe = wert 2...

            Sogar ein mehrdimensionales Array kannst Du so abbilden, wenn Du mehrere verschiedene Trennzeichen benuzt: Rubrik1_unterpunkt1_unterpunkt2|Rubrik2_unterpunkt1_unterpunkt2...

            Du kanns alternativ natürlich auch Name-Wert Paare bilden: nummer.12_farbe.gruen..., aber das verschwendet ja jede Menge Speicherplatz.

            Gruß, Andreas

            --
            SELFFORUM - hier werden Sie geholfen,
            auch in Fragen zu richtiges Deutsch
            1. Hi,

              das hat mit der Sprache nichts zu tun. Such Dir ein Trennzeichen, das garantiert nicht in den Variablen vorkommen kann, z.B. '_'

              Es ginge auch ganz ohne Trennzeichen, wenn man ein eigenes Datenformat kreiert.
              Z.B. könnte man Zahlenwerte hexadezimal kodiert direkt aneinanderhängen.
              Strings könnte man, ebenfalls hexadezimal kodiert, eine Längenangabe voranstellen.
              Mit einem am Anfang angegebenen Index ließen sich so auch Arrays abbilden und leicht wieder zusammensetzen.

              freundliche Grüße
              Ingo

              1. Hallo Ingo,

                Es ginge auch ganz ohne Trennzeichen, wenn man ein eigenes Datenformat kreiert...

                kannste mal ein Beispiel machen?

                Gruß, Andreas

                --
                SELFFORUM - hier werden Sie geholfen,
                auch in Fragen zu richtiges Deutsch
                1. Hi,

                  Es ginge auch ganz ohne Trennzeichen, wenn man ein eigenes Datenformat kreiert...

                  kannste mal ein Beispiel machen?

                  hatte ich das so unklar ausgedrückt?

                  Wenn ich z.B. ein Array mit maximal 256 Elementen habe mit Integerzahlen im Wertebereich von 0 bis 255, dann könnte ich folgenden Inhalt:
                  a[0]=5; a[1]=15; a[2]=240
                  so kodieren:
                  02050ff0
                  wobei mir 02 sagt: Elemente von 0 bis 2, also die nächsten drei Hexwerte nehmen.

                  Der Fantasie sind eine Grenzen gesetzt. Ich könnte z.B. in einem Byte vorher festlegen, wie die folgenden Daten zu interpretieren sind. Z.B. 1 für ein-Byte-Werte, 2 für 2-Byte-Werte, ... 128 für Strings; dann würde ich in diesem Fall 01 voransetzen oder z.B. einen String mit 257 Zeichen so kodieren:
                  820100hier der String mit 257 Zeichen...
                  wobei 82 mir sagt: String, dessen Länge in den zwei folgenden Bytes angegeben ist - mit hex 0100, also die nächsten 257 Zeichen enthalten den String.

                  freundliche Grüße
                  Ingo

                  1. kannste mal ein Beispiel machen?

                    hatte ich das so unklar ausgedrückt?

                    nicht wirklich, mir war nur unklar, was Du mit dem Index meintest. Ich dachte, Du wolltest am Anfang alle Variablen verzeichnen oder so. Außerdem finde ich Beispiele immer am einsichtigsten :-)

                    dankeschön.

                    Gruß, Andreas

                    --
                    SELFFORUM - hier werden Sie geholfen,
                    auch in Fragen zu richtiges Deutsch
                    1. Hi,

                      mir war nur unklar, was Du mit dem Index meintest. Ich dachte, Du wolltest am Anfang alle Variablen verzeichnen oder so.

                      auch das wäre denkbar. Allerdings nicht mit Namen, sondern nur die Art der Variablen und deren Länge oder alternativ deren Startposition im String. Das diesen generierten String dann auswertende Programm müßte dann nur wissen, welche Variablen in welcher Reihenfolge zu lesen sind.
                      Ich hatte früher, wo Speicherplatz noch rar war, unter MS-Dos sehr sparsame Datenformate generiert, die nebenbei noch viel schneller im Zugriff waren als die üblichen Methoden von Datenbanken.

                      freundliche Grüße
                      Ingo

                      1. Ich hatte früher, wo Speicherplatz noch rar war,

                        hehe, ich hatte mal eine Dozentin, die hat gaaanz früher an Großrechnern programmiert: 32kb Speicher ;-)

                        unter MS-Dos sehr sparsame Datenformate generiert, die nebenbei noch viel schneller im Zugriff waren als die üblichen Methoden von Datenbanken.

                        mir ist nur nicht klar, warum das so sparsam ist. Du machst ja in Deinem Beispiel sowas ähnliches wie z.B. utf-8 Kodierung: ein oder mehrere Info-Bytes, dann die eigentliche Information, dann wieder Info-Byte usw.

                        Das Programm muß also alle paar Byte eine Information interpretieren und daraus folgend erst entscheiden, wie es weiterliest. Bei der einfachen Aneinanderreihung (wert1_wert2_wert3...) spart man doch nicht nur Bytes, sondern auch Interpretationsperfomance. Man hat natürlich auch nicht die Infos über Datentyp etc, aber wenn man die auch nicht braucht, bzw. die im Zielprogramm in der festen Reihenfolge bekannt sind...

                        Gruß, Andreas

                        --
                        SELFFORUM - hier werden Sie geholfen,
                        auch in Fragen zu richtiges Deutsch
                        1. Hi,

                          hehe, ich hatte mal eine Dozentin, die hat gaaanz früher an Großrechnern programmiert: 32kb Speicher ;-)

                          jo.. meine ersten Programme schrieb ich auf nem TexasInstrument Taschenrechner, der 32 "Steps" (Anweisungen) speichern konnte..;-)

                          mir ist nur nicht klar, warum das so sparsam ist. Du machst ja in Deinem Beispiel sowas ähnliches wie z.B. utf-8 Kodierung: ein oder mehrere Info-Bytes, dann die eigentliche Information, dann wieder Info-Byte usw.

                          Das war jetzt zugegeben ein nicht optimiertes Beispiel mit der Hex-Kodierung (um halt einen ASCII-Ausstoß für Cookies zu bekommen, was vielleicht ja nicht nötig ist?). Zu Dos-Zeiten (oder noch früher beim 64er) hatte ich noch mit Bits jongliert.

                          Das Programm muß also alle paar Byte eine Information interpretieren und daraus folgend erst entscheiden, wie es weiterliest. Bei der einfachen Aneinanderreihung (wert1_wert2_wert3...) spart man doch nicht nur Bytes, sondern auch Interpretationsperfomance. Man hat natürlich auch nicht die Infos über Datentyp etc, aber wenn man die auch nicht braucht, bzw. die im Zielprogramm in der festen Reihenfolge bekannt sind...

                          Klar. Wenn alle Parameter bekannt sind, also auch der maximale Wertebereich und damit die Anzahl der Bytes für einen Wert, dann kann man noch viel mehr einsparen. Hier jedoch flexibel zu sein, kann massiv Daten einsparen - ein Byte vorangestellt zur Information über den Wertebereich kann die folgenden Daten halbieren (z.B. bei einem tatsächlich genutzen Maximalwert <= 255, wenn von der Eingabe her auch höhere Werte möglich wären).
                          Über Performance mache ich mir heutzutage allerdings nicht mehr viele Gedanken, wenn es wie hier um die Interpretation von max. 4kb Daten geht.

                          Falls es Dich interessiert kannst Du Dir ja mal ein älteres Programm von mir anschauen, bei dem ich zwar Binärwerte für den Index verwendet habe, aber mit dem Speicherplatz aus Performancegründen nicht mehr ganz so geknausert hatte: Psychosoziales Adreßbuch für Krefeld - das lief bzw. würde auch heute noch sehr fix auf einem 286er laufen.

                          freundliche Grüße
                          Ingo

                          1. Psychosoziales Adreßbuch für Krefeld

                            jo, ist fein - und schnell. Da könnte man ja _fast_ wieder Lust auf C kriegen ;-)

                            Gruß, Andreas

                            --
                            SELFFORUM - hier werden Sie geholfen,
                            auch in Fragen zu richtiges Deutsch
                            1. Hi,

                              jo, ist fein - und schnell. Da könnte man ja _fast_ wieder Lust auf C kriegen ;-)

                              wieso C?
                              Wirf mal einen Blick in die Exe: "TURBO BASIC/Copyright (c) 1987 by Borland International" ;-)

                              Die Geschwindigkeit kommt nur vom optimierten Datenformat, das extrem schnelle Zugriffe erlaubt.

                              freundliche Grüße
                              Ingo

                              1. wieso C?

                                weil meine Konsolenprogramme auch immer so aussahen, und die habe ich nunmal in C geschrieben. Sie waren nur nicht so schön bunt :-) Sprache ist wohl auch zweitrangig - es ging mir um die Konsolenprogramme - an der Fensterprogrammierung bin ich in C nämlich kläglich gescheitert, dann lieber PHP und die Fenster macht der Brauser ;-)

                                Gruß, Andreas

                                --
                                SELFFORUM - hier werden Sie geholfen,
                                auch in Fragen zu richtiges Deutsch
                                1. Hi,

                                  es ging mir um die Konsolenprogramme - an der Fensterprogrammierung bin ich in C nämlich kläglich gescheitert

                                  tja das waren noch Zeiten, als man noch Zeichencodes in die Bildschirmadressen schieben konnte und sicher sein konnte, daß die da auch angezeigt wurden. ;-)

                                  freundliche Grüße
                                  Ingo

            2. Danke Dir!

              nur werde ich auch so nicht mit den 4kb des cookies auskommen

              Gruss,
              Jörg