Skip to content

Instantly share code, notes, and snippets.

@mjs3339
mjs3339 / BReader.cs
Last active April 7, 2018 01:19
C# Alternate Binary Writer/Reader enhance usability and ease coding complexity.
public class Reader : IDisposable
{
/// <inheritdoc />
/// <summary>
/// Initializes a new instance of the Reader class based on a specified path name, and defaulting to UTF-8 encoding.
/// </summary>
public Reader(string path) : this(path, new UTF8Encoding(false, true))
{
}
/// <summary>
@mjs3339
mjs3339 / BigArray319.cs
Last active November 25, 2018 08:23
C# BigArray Class not limited to 2GB of data.
[Serializable]
public class BigArray<T> : IEnumerable<T>, IDisposable
{
private const int ShiftCount = 19;
private const ulong Granularity = 1 << ShiftCount;
private readonly ulong _capacityHold;
private readonly GetObjectSize _gos = new GetObjectSize();
private T[][] _arrays;
private bool _disposed;
private ulong _itemSize;
@mjs3339
mjs3339 / FNV1a128.cs
Last active April 24, 2018 20:53
C# FNV1a128 Implementation
/// <summary>
/// No collisions with 20M random byte arrays. 32x slower than FNV1a64.
/// https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function
/// </summary>
public class FNV1a128 : HashAlgorithm
{
private readonly BigInteger _K = "309485009821345068724781371".NewBigInteger10();
private BigInteger _hash;
private readonly BigInteger Seed = "144066263297769815596495629667062367629".NewBigInteger10();
public FNV1a128()
@mjs3339
mjs3339 / MurMur3.cs
Last active December 15, 2018 10:31
C# Murmur3 128bit Non Cryptographic Hashing Algorithm
public class Murmur3 : HashAlgorithm
{
private ulong _h1;
private ulong _h2;
private ulong _length;
public Result Res;
public Result Seed;
public Murmur3() : this(new Result {H1 = 0, H2 = 0})
{
}
@mjs3339
mjs3339 / DiskInformation.cs
Created February 25, 2018 14:21
C# Get Detailed Information on Installed Disks
public class DiskInfoStruct
{
public string BytesPerSector;
public string Capabilities;
public string CapabilityDescriptions;
public string Caption;
public string ConfigManagerErrorCode;
public string ConfigManagerUserConfig;
public string Description;
public string DeviceID;
@mjs3339
mjs3339 / DriveInformation.cs
Created February 25, 2018 14:31
C# Get Detailed Information on Installed Drives/Volumes
public class DriveInfoStruct
{
public string Access;
public string Caption;
public string Compressed;
public string Description;
public string DevicePath;
public List<DiskInfoStruct> DiskInformations = new List<DiskInfoStruct>();
public string DiskNumbers;
public string Drive;
@mjs3339
mjs3339 / SmartData.cs
Created February 25, 2018 14:39
C# S.M.A.R.T. (Self Monitoring, Analysis and Reporting Technology) Detection Class
public struct SData
{
public string Attribute;
public int RAWValue;
public string RAWValueS;
public int Value;
}
public static class SmartInformation
{
@mjs3339
mjs3339 / FindFile.cs
Created February 25, 2018 16:27
C# FindFile FindFirstFile FindNextFile IEnumerable
/// <summary>
/// var ff = new FindFile(); ff.Path = @"c:\"; (var _fd in ff) {var filepath = _fd.cFileName;}
/// </summary>
public class FindFile : IEnumerable<WIN32_FIND_DATA>
{
public string Path { get; set; }
IEnumerator IEnumerable.GetEnumerator()
{
return new Enumerator(Path);
@mjs3339
mjs3339 / SetupDi.cs
Created February 28, 2018 19:12
C# SetupDi API Enumerate Device Chain
public class SetupDi
{
/// <summary>
/// Class Names (Incomplete??)
/// </summary>
public string[] ClassNames =
{
"AudioEndpoint",
"CDROM",
"Computer",
@mjs3339
mjs3339 / CircularProgressBar.cs
Created March 14, 2018 22:35
C# Circular Progress Bar with Percentage
/// <summary>
/// Circular Progress bar with percentage
/// </summary>
public class CircularProgressBar : Control
{
public enum graphtypes
{
Standard,
Spin
}