moin, folgende problemstellung: - webanwendung zum filterenwurf - es werden zahlen (grenzfrequenz etc) und enums (tiefpass etc) eingegeben nun will ich dem benutzer die möglichkeit geben, über einen eindeutigen string die eingegebenen daten zu "reproduzieren" (die ja nach schließen der anwendung weg sind). soll heissen: benutzer gibt spezifikationen an (10.54kHz, Tiefpass etc) und die anwendung generiert daraus einen möglichst kurzen string. diesen kann der benutzer eingeben und hat seine vorher eingegebenen daten wieder. an eine datenbank dachte ich auch schon, leider soll die anwendung auch offline laufen (silverlight) daher fällt diese option weg. QR/barcodes sind unpraktikabel da es eine desktopanwendung ist. abspeichern als XML oÄ geht natürlich auch. da der benutzer die filterspezifikation auch ausdrucken kann, will ich dass auf dem ausdruck eben jener string steht. daher ist XML auch nicht passend. tl;dr: wie lassen sich mehrere ints und enums möglichst elegant in einen string verpacken? also so etwas wie: 10.54kHz, Tiefpass, 40dB, Butterworth, Sallen-Key -> zU7iOp natürlich könnte man das irgendwie per hand machen, aber das scheint mir reichlich umständlich. gibt es sowas wie hashcodes die 100% eineindeutig sind?
wenn die Daten alle ein einer Struktur sind müsste man sie doch einfach serialiesieren können. Und dann noch im zweifelsfall als Base64 ausgeben.
das würde gehen ja. ich werde das mal ausprobieren und schauen wie lang der dabei entstandene string ist. wenn das zB 25 zeichen sind, kann der nutzer auch gleich die ursprungsdaten eingeben ^^ pi mal daumen hab ich 6 * uint32 (wobei 16 wohl auch reichen würde) und 3 * enum.
Frank Meier schrieb: > das würde gehen ja. > ich werde das mal ausprobieren und schauen wie lang der dabei > entstandene string ist. wenn das zB 25 zeichen sind, kann der nutzer > auch gleich die ursprungsdaten eingeben ^^ Das kann er auch so. Denn einen 15 Zeichen langen String einzugeben, bei dem man nach jeweils 2 Buchstaben wieder aufs Papier schauen muss, ist ein 'Pain in the ass'. Da hab ich die 3 Optionen und 2 Zahlenwerte schneller so eingegeben.
Du kannst doch auch auf eine Kombination aus localStorage und Datenbank setzen: Wenn Einstellung in localStorage gespeichert lade aus localStorage Wenn nicht, suche in Datenbank. Aber so ein string-Gefrimel ist fern jeglicher Usability.
Aufschreiben und dann wieder abtippen ist natürlich blöd. Spricht was dagegen wenn der Anwender den "String" mit Copy-n-paste auf seinen Desktop sichert und dann später wieder in die Web-Anwendung kopiert? Grüße, Steffen
Oder richtig old-school: Biete einen CSV Import Export an
Karl Heinz Buchegger schrieb: > Denn einen 15 Zeichen langen String einzugeben, bei dem man nach jeweils die gefahr besteht natürlich. ich hab mal ne überschlagsrechnung gemacht: 6*int32 ~= 2.5e10 möglichkeiten (enums kann man vernachlässigen) 6*zeichen ~= 62^6 ~= 5.6e10 möglichkeiten (26 kleinbuchstaben, 26 großbuchstaben, 10 ziffern) d.h. im extremfalls von int32 könnte man mit einen "hash" von 6 buchstaben alle daten abbilden. wenn zusätzlich der wertebereich sinnvoll eingeschränkt wird, zB auf 20bit und somit die zeichenzahl sinkt, find ich das schon ok. ob ich 6*int32 oder int32^6 nehmen muss, weiss ich grad nicht. D. I. schrieb: > Du kannst doch auch auf eine Kombination aus localStorage und Datenbank > setzen auch ne option, aber der programmieroverhead ist (schätze ich mal) ziemlich groß. wie würde man das realisieren? gibts da schon fertige klassen in .NET? Steffen schrieb: > Spricht was dagegen wenn der Anwender den "String" mit Copy-n-paste auf > seinen Desktop sichert und dann später wieder in die Web-Anwendung > kopiert? ja, da der benutzer in der lage sein soll, nur mit dem ausdruck den filter zu reproduzieren. dann kann ich gleich, wie bereits angesprochen, CSV oder XML nehmen.
Frank Meier schrieb: > ja, da der benutzer in der lage sein soll, nur mit dem ausdruck den > filter zu reproduzieren. dann kann ich gleich, wie bereits angesprochen, > CSV oder XML nehmen. Und genau darauf würde ich setzen. Das Konzept der Speicherung in Dateien hat sich seit mindestens 60 Jahren bewährt.
Der Client-seitige teil der Webanwendung ist vermutlich in Javascript geschrieben. Dann drängt sich JSON schon fast förmlich auf und ist kein nennenswerter Mehraufwand.
Karl Heinz Buchegger schrieb: > Und genau darauf würde ich setzen. > Das Konzept der Speicherung in Dateien hat sich seit mindestens 60 > Jahren bewährt. Aber nur als eine mögliche Option anbieten. Wenn das die einzige Möglichkeit ist, würde mich das nerven ohne Ende. Da hab ich die Parameter schneller normal eingestellt. Frank Meier schrieb: > auch ne option, aber der programmieroverhead ist (schätze ich mal) > ziemlich groß. wie würde man das realisieren? gibts da schon fertige > klassen in .NET? localStorage ist überhaupt kein Aufwand, das ist das HTML5-Äquivalent zu Cookies und bei Datenbanken kommts halt drauf an.
ich würde einen key value string nehmen: "Kind=LowPass kHz=10.54 dB=40 ..."
Lukas K. schrieb: > Der Client-seitige teil der Webanwendung ist vermutlich in Javascript > geschrieben. Dann drängt sich JSON schon fast förmlich auf und ist kein > nennenswerter Mehraufwand. Sehe ich auch so. JSON ist schlank und einfach und es gibt auch vorhandene Bibliotheken fuer viele Programmiersprachen. In was programmierst du denn?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.