Frage : Wie man eine Schnur in eine kurze Darstellung in ASP.NET using C# oder VB.NET zusammendrückt?

Wir haben eine Notwendigkeit, eine Schnur in eine Darstellung, die kürzer, als ist die ursprüngliche Schnur zusammenzudrücken dann, um sie zu dekomprimieren.  Ich wollte wissen, wenn es eine Weise gibt, dies in .NET für Schnüre zu tun, die ungefähr 200-500 Buchstaben sind (nicht extrem lang, aber wir müssen sie für Gebrauch in einem URL/querystring zusammendrücken).

Antwort : Wie man eine Schnur in eine kurze Darstellung in ASP.NET using C# oder VB.NET zusammendrückt?

Weil diese Kompressionsmethoden binäre Daten ergeben und Sie Bytes in einem URL nicht führen können, müssen die komprimierten Daten als Schnur Base64 verschlüsselt werden. Während die Kompression die Größe der Schnur verringern konnte, vermute ich, dass die kodierung Base64 wahrscheinlich ist, Ihnen eine Schnur größer zu erhalten, als die Sie versuchten, an erster Stelle zusammenzudrücken - besonders wenn Ihre Schnur groß gelegentlich ist.

Kleine Dateien, z.B. eine 500-Byte-Schnur, neigen, nicht gut und häufig zusammenzudrücken Resultat in einer Zunahme an Größe.

Was enthalten in Ihrer Schnur?

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication1
{
	Kategorie Programm
	{
		Static leeres Haupt (Schnur [] args)
		{
			longString Schnur = GetLongString (500);
			
			Schnur zusammengedrückt = StringCompressor.CompressString (longString);
			Schnur uncompressed = StringCompressor.DecompressString (zusammengedrückt);

			Console.WriteLine („ursprüngliche Schnurlänge: {0} \ r \ nCompressed Schnurlänge: {1}“,
				longString.Length, zusammengedrückt. Länge);
			Console.ReadKey ();
		}

		statische Schnur GetLongString (int len)
		{
			StringBuilder str = neues StringBuilder ();
			Gelegentlicher Rand = neues gelegentliches (DateTime.Now.Millisecond);

			für (int I = 0; streamBytes < len=""> I = neue Liste ();

			wenn (stream.CanSeek)
				Strom. Position = 0;

			int bytesRead = 0;
			tun
			{
				bytesRead = Strom. Gelesen (Puffer, 0, buffer_size);
				wenn (bytesRead > 0)
					streamBytes.AddRange (Puffer. Nehmen (bytesRead));
			} während (bytesRead > 0);

			RückholstreamBytes.ToArray ();
		}
	}
}
Weitere Lösungen  
 
programming4us programming4us