29/07/08 16:17
Thejuster
Ciao totem quello che sto per chiederti sembrerà abbastanza complicato ma non per te
allora un piccolo esempio,
Nell'editor di livelli che sto ultimando ho deciso di criptare il contenuto di una mappa in ascii.
l'editor e stato strutturato tramide le GDI
e alcune win api.
il problema sta che mi servirebbe riconvertire il valore allo stadio originale
sapresti consigliarmi o magari con un esempio se non chiedo troppo
come ripristinare il contenuto ascii di un file
e riconvertendolo allo stato naturale?
questo e il salvataggio che va a scrivere l'ascii nel file di testo rendendolo illegibile e immodificabile.
qualche consiglio su come recupere o meglio riconvertire il tutto? :/
allora un piccolo esempio,
Nell'editor di livelli che sto ultimando ho deciso di criptare il contenuto di una mappa in ascii.
l'editor e stato strutturato tramide le GDI
e alcune win api.
il problema sta che mi servirebbe riconvertire il valore allo stadio originale
sapresti consigliarmi o magari con un esempio se non chiedo troppo
come ripristinare il contenuto ascii di un file
e riconvertendolo allo stato naturale?
private List<Tileset> m_tilesets; private TileSelect m_tileSelect; private TiledMap m_tileMap; public MapWriter(TileSelect tileSelect, TiledMap tileMap) { m_tileMap = tileMap; m_tileSelect = tileSelect; m_tilesets = new List<Tileset>(); } public void Save(string Path) { //Recupera l'each dai blocchi MemoryStream s_tilesets = WriteTilesets(m_tileSelect.Tilesets); MemoryStream s_tiles = WriteTiles(); FileStream FS = new FileStream(Path, FileMode.Create); //scrittura data byte[] name = System.Text.ASCIIEncoding.ASCII.GetBytes("MapEditorFile"); FS.Write(name, 0, name.Length); string[] s_version = Application.ProductVersion.Split('.'); float f_version = 0; float.TryParse(s_version[0]+"."+s_version[1], out f_version); byte[] version = System.BitConverter.GetBytes(f_version); FS.Write(version, 0, 4); byte[] size = System.BitConverter.GetBytes(s_tilesets.Length); FS.Write(size, 0, 8); s_tilesets.WriteTo(FS); size = System.BitConverter.GetBytes(s_tiles.Length); FS.Write(size, 0, 8); s_tiles.WriteTo(FS); FS.Close(); } private MemoryStream WriteTiles() { MemoryStream s_tiles = new MemoryStream(); Tile[,] allTiles = m_tileMap.Tiles; MemoryStream tempStream = new MemoryStream(); int width = allTiles.GetLength(0); int height = allTiles.GetLength(1); //Scrive la larghezza e la lunghezza byte[] size = System.BitConverter.GetBytes(width); tempStream.Write(size, 0, 4); size = System.BitConverter.GetBytes(height); tempStream.Write(size, 0, 4); //Scrive il data per tile for(int x=0; x<width; x++) { for(int y=0; y<height; y++) { //Posizione X size = System.BitConverter.GetBytes(allTiles[x,y].X); tempStream.Write(size, 0, 4); //Posizione Y size = System.BitConverter.GetBytes(allTiles[x,y].Y); tempStream.Write(size, 0, 4); //Solido size = System.BitConverter.GetBytes(allTiles[x,y].IsSolid); tempStream.Write(size, 0, 1); int index = -1; for(int i=0;i<m_tilesets.Count; i++) { if(allTiles[x,y].Init && m_tilesets[i] == allTiles[x,y].Tileset) { index = i; break; } } //Numero Tileset size = System.BitConverter.GetBytes(index); tempStream.Write(size, 0, 4); } } tempStream.WriteTo(s_tiles); return s_tiles; } private MemoryStream WriteTilesets(List<Tileset> tileset) { MemoryStream s_tilesets = new MemoryStream(); MemoryStream tempStream = new MemoryStream(); foreach(Tileset tSet in tileset) { m_tilesets.Add(tSet); MemoryStream image = new MemoryStream(); //Dimensione tile byte[] size = System.BitConverter.GetBytes(tSet.TileSize); tempStream.Write(size, 0, 4); //nome byte[] name = System.Text.ASCIIEncoding.ASCII.GetBytes(tSet.ToString()); size = System.BitConverter.GetBytes(name.Length); tempStream.Write(size, 0, 4); tempStream.Write(name, 0, name.Length); //Immagine tSet.Image.Save(image, System.Drawing.Imaging.ImageFormat.Bmp); size = System.BitConverter.GetBytes(image.Length); tempStream.Write(size, 0, 8); image.Position = 0; image.WriteTo(tempStream); } tempStream.WriteTo(s_tilesets); return s_tilesets; } }
questo e il salvataggio che va a scrivere l'ascii nel file di testo rendendolo illegibile e immodificabile.
qualche consiglio su come recupere o meglio riconvertire il tutto? :/
mire.forumfree.it/ - Mire Engine
C# UI Designer
C# UI Designer