All pastes #676644 Raw Edit

Something

public text v1 · immutable
#676644 ·published 2007-08-31 08:19 UTC
rendered paste body
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Windows.Forms;

namespace PBSS_Viewer
{
    static public class ScreenShotData
	{
        static public void GetSSInfo(string filePath, TextBox guid, TextBox player)
        {

            //Open the file up into a stream
            FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);

            //Now use that stream to create a binaryreader
            BinaryReader br = new BinaryReader(fs);

            //Move to the position of our choice
            br.BaseStream.Position = 0x21;

            //Read the length of the data block
            int size = readBigEndianInt(br);

            //Read the data string
            string data = new string(br.ReadChars(size));

            //Now close the stream which closes the br as well
            fs.Close();

            //Now lets remove up until we get the real data
            int indexOfNull = data.IndexOf('\0') + 1;
            data = data.Substring(indexOfNull, data.Length - indexOfNull);

            //Break up the string into parts
            string[] parts = data.Split('\n');

            //We know that the user will always be at part 3 so lets get that
            string user = parts[2];

            //Now lets split that up beacuse there is a id and there is a name
            string[] userinfo = user.Split(' ');

            if (userinfo.Length == 3)
            {
                player.Text = userinfo[1] + userinfo[2];
            }
            else player.Text = userinfo[1];

            guid.Text = userinfo[0];
        }

        static int readBigEndianInt(BinaryReader br)
        {
            byte[] buffer = br.ReadBytes(4);
            Array.Reverse(buffer);
            return BitConverter.ToInt32(buffer, 0);
        }
	}
}