Wie kombination aus Daten am besten in string packen?

#3173639
Lesenswert?

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?
#3173686
Lesenswert?

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.
#3173792
Lesenswert?

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.
Gast #3174054
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren