Autor Beitrag
NurEineV3n3
Hält's aus hier
Beiträge: 1



BeitragVerfasst: So 05.04.09 22:17 
HaiHo
Ich bin so ziemlich neu in C#, hab aber schon ein komplettes Buch dazu durchgelesen und auch schon einiges selbst zusammen-gefrimmelt.
Jetzt versuche ich mich schon seit 2 Tagen an Game-Modding, bleibe aber schon beim Entpacken eines Archivs hängen.
Das ganze ist mit LZO Komprimiert und dazu hab ich auch schon was passendes gefunden ( LZO.Net ).

Jetzt öffne ich die Datei und weise den Pfad "OpenPath" zu.
Diese Datei will ich dann nach "SavePath" un-komprimieren.

Hört sich ganz einfach an, ich komme nur nicht dahinter wie ich folgendes Beispiel benutzen kann
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
// Create the compressor object
LZOCompressor lzo = new LZOCompressor();

// Build a quite redundant string
StringBuilder sb = new StringBuilder();
for(int i = 0; i < 10000; i++) 
{
  sb.Append("LZO.NET");
}
string str = sb.ToString();
Console.WriteLine("Original-Length: " + str.Length);

/*
// Now compress the 70000 byte string to something much smaller
byte[] compressed = lzo.Compress(Encoding.Default.GetBytes(str));
Console.WriteLine("Compressed-Length: " + compressed.Length);
*/


// Decompress the string to its original content
string str2 = Encoding.Default.GetString(lzo.Decompress(compressed));
Console.WriteLine("Decompressed-Length: " + str2.Length);
Console.WriteLine("Equality: " + str.Equals(str2));


Dazu noch Start und Ende der Decompress Klasse:
ausblenden C#-Quelltext
1:
2:
3:
public byte[] Decompress(byte[] src)
[...]
return dst;


...
Ich weiss nicht genau was ich machen soll.

mfg
V3n3
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: So 05.04.09 23:47 
:welcome:

Mit zwei Methoden ist die Klasse doch eigentlich noch relativ übersichtlich, oder ;) ? Du brauchst ja sowieso nur die Decompress-Methode, die ein byte-Array verarbeitet. Eine Datei kannst du als ein solches mit der File.ReadAllBytes-Methode einlesen.

_________________
>λ=
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Mo 06.04.09 09:19 
Hallo und ebenfalls :welcome:

Es kommt mir so vor, als wenn du durch "Auskommentieren" das ganze Beispiel kaputt machst. Durch lzo.Compress soll der Inhalt von str komprimiert werden in ein byte-Array compressed (das wurde ausgeblendet) und anschließend durch lzo.Decompress wieder extrahiert werden.

Wenn du aber das machen willst, was du in der Beschreibung sagst, hat Sebastian die wesentlichen Hinweise gegeben: Datei einlesen in ein byte-Array, lzo-Instanz erzeugen, lzo.Decompress aufrufen, Ergebnis mit File.WriteAllText speichern.

Übrigens solltest du auch andere Begriffe erläutern, damit Fragen richtig verstanden werden können. Eigentlich kann niemand wissen (nur erraten), was mit OpenPath und SavePath gemeint ist. Für das Problem spielt es fast keine Rolle und es ist ziemlich klar, aber du solltest mit deinen Fragen immer auch an die potenziellen Helfer denken.

Gruß Jürgen