public override int GetBytes(char[] chars, int charIndex, int charCount, byte[] bytes, int byteIndex) { SjisEncoding e = new SjisEncoding(); byte[] sjis = e.GetBytes(chars, charIndex, charCount); byte[] euc = sjis2eucjp(sjis, 0, sjis.Length); for (int i = 0; i < euc.Length; ++i) bytes[i + byteIndex] = euc[i]; return euc.Length; }
protected override uint CreateHash(string value) { var computed = _crc16.Compute(SjisEncoding.GetBytes(value)); return(BinaryPrimitives.ReadUInt32BigEndian(computed)); }
public static async Task<IIDXStatus> GetDjStatus( string _ID, string _Password ) { var status = new IIDXStatus(); var ENC = new SjisEncoding(); var handler = new HttpClientHandler{ UseCookies = true, AllowAutoRedirect = false }; using ( var httpClient = new HttpClient(handler){ BaseAddress = new Uri( URL_BASE ) } ) { var content = new FormUrlEncodedContent( new Dictionary<string, string> { {"KID", _ID}, {"pass", _Password}, {"OTP", string.Empty}, } ); await httpClient.PostAsync( URL_LOGIN, content ); var response = await httpClient.GetStreamAsync( URL_STATUS ); using (var reader = new StreamReader(response, ENC)) { int num; Match match; var xml = ParseHtml( reader ); var ns = xml.Root.Name.Namespace; var xmlStatusDetails = xml .Descendants(ns + "table") .Where(x => x.Attribute("class").Value == "dj_data_table") .Descendants(ns + "tr") .ToArray(); Func<string, string> GetStatusDetails = setting => { var element = xmlStatusDetails.Where(x => x.Element(ns + "th").Value == setting).FirstOrDefault(); return element != default( XElement ) ? element.Element( ns + "td" ).Value : null; }; status.DjName = GetStatusDetails("DJ NAME"); status.AffiliationState = GetStatusDetails("所属都道府県"); status.IIDXID = GetStatusDetails("IIDX ID"); status.AffiliationStore = GetStatusDetails("所属店舗"); if (int.TryParse (GetStatusDetails ("所持デラー"), out num)) { status.PossessionDeller = num; } match = REG_PLAY_COUNT.Match (GetStatusDetails ("プレー回数")); if (match.Success) { if (int.TryParse(match.Groups ["cnt"].Value, out num )) { status.PlayCount = num; } } var xmlDjStatus = xml .Descendants(ns + "table") .Where(x => x.Attribute("class").Value == "status_type1") .Descendants(ns + "tr") .ToArray(); Func<string, Func<XElement, bool>, int, string[]> GetDjStatus = (setting, selector, skipNum ) => { return xmlDjStatus .Where(x => x.Element(ns + "th").Value == setting) .First() .Elements(ns + "td") .Where(selector) .Skip(skipNum) .Select(x => x.Value) .ToArray(); }; var djPoints = GetDjStatus("DJ POINT", x => x.Attribute("class").Value == "point", 1); status.DjPointSP = djPoints[0]; status.DjPointDP = djPoints[1]; var djRanks = GetDjStatus("段位認定", x => x.Attribute("class").Value == "point", 0); status.DjRankSP = djRanks[0]; status.DjRankDP = djRanks[1]; var djPilgrimages = GetDjStatus("行脚王", x => true, 0); status.Areas = djPilgrimages[0]; status.Stores = djPilgrimages[1]; status.Statnds = djPilgrimages[2]; status.Comment = xml .Descendants(ns + "table") .Where(x => x.Attribute("class").Value == "status_type1 table_style1") .Descendants(ns + "tr") .Descendants(ns + "td") .Where(x => x != null && x.Attribute("class").Value == "comment_Box") .Select(x => x.Value) .First(); var qproPath = xml .Descendants(ns + "table") .Where(x => x.Attribute("class").Value == "dj_qpro_table") .Descendants(ns + "tr") .Descendants(ns + "td") .Descendants(ns + "a") .Select(x => x.Element(ns + "img").Attribute("src").Value) .First(); status.Qpro = await httpClient.GetByteArrayAsync(new Uri(URL_BASE + qproPath)); } } return status; }
public void Setup() { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); var context = CreateBuilderContext(); // Default // Binary var intBinaryBuilder = new BinaryConverterBuilder(); intBinaryConverter = intBinaryBuilder.CreateConverter(context, typeof(int)); intBinaryBuffer = new byte[intBinaryBuilder.CalcSize(typeof(int))]; // Boolean var booleanBuilder = new BooleanConverterBuilder(); booleanConverter = booleanBuilder.CreateConverter(context, typeof(bool)); booleanBuffer = new byte[] { 0x30 }; // bytes var bytes10Builder = new BytesConverterBuilder { Length = 10 }; bytes10Converter = bytes10Builder.CreateConverter(context, typeof(byte[])); bytes10Buffer = new byte[bytes10Builder.CalcSize(typeof(byte[]))]; var bytes20Builder = new BytesConverterBuilder { Length = 20 }; bytes20Converter = bytes20Builder.CreateConverter(context, typeof(byte[])); bytes20Buffer = new byte[bytes20Builder.CalcSize(typeof(byte[]))]; // Text var text20Builder = new TextConverterBuilder { Length = 20 }; text20Converter = text20Builder.CreateConverter(context, typeof(string)); text20Single20Buffer = SjisEncoding.GetFixedBytes(Text20Single10, 20); text20Wide10Buffer = SjisEncoding.GetFixedBytes(Text20Wide5, 20); text20EmptyBuffer = SjisEncoding.GetFixedBytes(Text20Empty, 20); // Number var numberTextShort4Builder = new NumberTextConverterBuilder { Length = 4 }; numberTextShort4Converter = numberTextShort4Builder.CreateConverter(context, typeof(short)); numberTextShort4MaxBuffer = SjisEncoding.GetFixedBytes(Length4Integer.ToString(CultureInfo.InvariantCulture), 4, FixedAlignment.Right); numberTextShort4ZeroBuffer = SjisEncoding.GetFixedBytes(ZeroInteger.ToString(CultureInfo.InvariantCulture), 4, FixedAlignment.Right); var numberTextInt8Builder = new NumberTextConverterBuilder { Length = 8 }; numberTextInt8Converter = numberTextInt8Builder.CreateConverter(context, typeof(int)); numberTextInt8MaxBuffer = SjisEncoding.GetFixedBytes(Length8Integer.ToString(CultureInfo.InvariantCulture), 8, FixedAlignment.Right); numberTextInt8ZeroBuffer = SjisEncoding.GetFixedBytes(ZeroInteger.ToString(CultureInfo.InvariantCulture), 8, FixedAlignment.Right); var numberTextLong18Builder = new NumberTextConverterBuilder { Length = 18 }; numberTextLong18Converter = numberTextLong18Builder.CreateConverter(context, typeof(long)); numberTextLong18MaxBuffer = SjisEncoding.GetFixedBytes(Length18Integer.ToString(CultureInfo.InvariantCulture), 18, FixedAlignment.Right); numberTextLong18ZeroBuffer = SjisEncoding.GetFixedBytes(ZeroInteger.ToString(CultureInfo.InvariantCulture), 18, FixedAlignment.Right); var numberTextDecimal8Builder = new NumberTextConverterBuilder { Length = 8 }; numberTextDecimal8Converter = numberTextDecimal8Builder.CreateConverter(context, typeof(decimal)); numberTextDecimal8MaxBuffer = SjisEncoding.GetFixedBytes(Length8Decimal.ToString(CultureInfo.InvariantCulture), 8, FixedAlignment.Right); numberTextDecimal8ZeroBuffer = SjisEncoding.GetFixedBytes("0.00", 10, FixedAlignment.Right); var numberTextDecimal18Builder = new NumberTextConverterBuilder { Length = 18 }; numberTextDecimal18Converter = numberTextDecimal18Builder.CreateConverter(context, typeof(decimal)); numberTextDecimal18MaxBuffer = SjisEncoding.GetFixedBytes(Length18Decimal.ToString(CultureInfo.InvariantCulture), 19, FixedAlignment.Right); numberTextDecimal18ZeroBuffer = SjisEncoding.GetFixedBytes("0.000", 19, FixedAlignment.Right); var numberTextDecimal28Builder = new NumberTextConverterBuilder { Length = 28 }; numberTextDecimal28Converter = numberTextDecimal28Builder.CreateConverter(context, typeof(decimal)); numberTextDecimal28MaxBuffer = SjisEncoding.GetFixedBytes(Length28Decimal.ToString(CultureInfo.InvariantCulture), 29, FixedAlignment.Right); numberTextDecimal28ZeroBuffer = SjisEncoding.GetFixedBytes("0.0000", 29, FixedAlignment.Right); // DateTime var dateTimeText8Builder = new DateTimeTextConverterBuilder { Length = 8, Format = "yyyyMMdd" }; dateTimeText8Converter = dateTimeText8Builder.CreateConverter(context, typeof(DateTime)); dateTimeText8Buffer = SjisEncoding.GetFixedBytes(DateTime8.ToString("yyyyMMdd"), 8); var dateTimeText14Builder = new DateTimeTextConverterBuilder { Length = 14, Format = "yyyyMMddHHmmss" }; dateTimeText14Converter = dateTimeText14Builder.CreateConverter(context, typeof(DateTime)); dateTimeText14Buffer = SjisEncoding.GetFixedBytes(DateTime14.ToString("yyyyMMddHHmmss"), 14); var dateTimeText17Builder = new DateTimeTextConverterBuilder { Length = 17, Format = "yyyyMMddHHmmssfff" }; dateTimeText17Converter = dateTimeText17Builder.CreateConverter(context, typeof(DateTime)); dateTimeText17Buffer = SjisEncoding.GetFixedBytes(DateTime17.ToString("yyyyMMddHHmmssfff"), 17); // Options // ASCII var text13Builder = new TextConverterBuilder { Length = 13, Encoding = Encoding.ASCII }; text13Converter = text13Builder.CreateConverter(context, typeof(string)); var ascii13Builder = new AsciiConverterBuilder { Length = 13 }; ascii13Converter = ascii13Builder.CreateConverter(context, typeof(string)); ascii13Buffer = new byte[ascii13Builder.CalcSize(typeof(string))]; // Unicode var text30Builder = new TextConverterBuilder { Length = 30, Encoding = Encoding.Unicode }; text30Converter = text30Builder.CreateConverter(context, typeof(string)); var ascii30Builder = new UnicodeConverterBuilder { Length = 30 }; unicode30Converter = ascii30Builder.CreateConverter(context, typeof(string)); unicode30Buffer = new byte[ascii30Builder.CalcSize(typeof(string))]; // Integer var short4Builder = new IntegerConverterBuilder { Length = 4 }; short4Converter = short4Builder.CreateConverter(context, typeof(short)); short4MaxBuffer = SjisEncoding.GetFixedBytes(Length4Integer.ToString(CultureInfo.InvariantCulture), 4, FixedAlignment.Right); short4ZeroBuffer = SjisEncoding.GetFixedBytes(ZeroShort.ToString(CultureInfo.InvariantCulture), 4, FixedAlignment.Right); var int8Builder = new IntegerConverterBuilder { Length = 8 }; int8Converter = int8Builder.CreateConverter(context, typeof(int)); int8MaxBuffer = SjisEncoding.GetFixedBytes(Length8Integer.ToString(CultureInfo.InvariantCulture), 8, FixedAlignment.Right); int8ZeroBuffer = SjisEncoding.GetFixedBytes(ZeroInteger.ToString(CultureInfo.InvariantCulture), 8, FixedAlignment.Right); var long18Builder = new IntegerConverterBuilder { Length = 18 }; long18Converter = long18Builder.CreateConverter(context, typeof(long)); long18MaxBuffer = SjisEncoding.GetFixedBytes(Length18Integer.ToString(CultureInfo.InvariantCulture), 18, FixedAlignment.Right); long18ZeroBuffer = SjisEncoding.GetFixedBytes(ZeroLong.ToString(CultureInfo.InvariantCulture), 18, FixedAlignment.Right); // Decimal var decimal8Builder = new DecimalConverterBuilder { Length = 10, Scale = 2 }; decimal8Converter = decimal8Builder.CreateConverter(context, typeof(decimal)); decimal8MaxBuffer = SjisEncoding.GetFixedBytes(Length8Decimal.ToString(CultureInfo.InvariantCulture), 10, FixedAlignment.Right); decimal8ZeroBuffer = SjisEncoding.GetFixedBytes("0.00", 10, FixedAlignment.Right); var decimal18Builder = new DecimalConverterBuilder { Length = 19, Scale = 3 }; decimal18Converter = decimal18Builder.CreateConverter(context, typeof(decimal)); decimal18MaxBuffer = SjisEncoding.GetFixedBytes(Length18Decimal.ToString(CultureInfo.InvariantCulture), 19, FixedAlignment.Right); decimal18ZeroBuffer = SjisEncoding.GetFixedBytes("0.000", 19, FixedAlignment.Right); var decimal28Builder = new DecimalConverterBuilder { Length = 29, Scale = 4 }; decimal28Converter = decimal28Builder.CreateConverter(context, typeof(decimal)); decimal28MaxBuffer = SjisEncoding.GetFixedBytes(Length28Decimal.ToString(CultureInfo.InvariantCulture), 29, FixedAlignment.Right); decimal28ZeroBuffer = SjisEncoding.GetFixedBytes("0.0000", 29, FixedAlignment.Right); // DateTime var dateTime8Builder = new DateTimeConverterBuilder { Format = "yyyyMMdd" }; dateTime8Converter = dateTime8Builder.CreateConverter(context, typeof(DateTime)); dateTime8Buffer = SjisEncoding.GetFixedBytes(DateTime8.ToString("yyyyMMdd"), 8); var dateTime14Builder = new DateTimeConverterBuilder { Format = "yyyyMMddHHmmss" }; dateTime14Converter = dateTime14Builder.CreateConverter(context, typeof(DateTime)); dateTime14Buffer = SjisEncoding.GetFixedBytes(DateTime14.ToString("yyyyMMddHHmmss"), 14); var dateTime17Builder = new DateTimeConverterBuilder { Format = "yyyyMMddHHmmssfff" }; dateTime17Converter = dateTime17Builder.CreateConverter(context, typeof(DateTime)); dateTime17Buffer = SjisEncoding.GetFixedBytes(DateTime17.ToString("yyyyMMddHHmmssfff"), 17); }
public override int GetChars(byte[] bytes, int byteIndex, int byteCount, char[] chars, int charIndex) { SjisEncoding e = new SjisEncoding(); byte[] sjis = eucjp2sjis(bytes, byteIndex, byteCount); return e.GetChars(sjis, 0, sjis.Length, chars, charIndex); }
public override int GetCharCount(byte[] bytes, int index, int count) { SjisEncoding e = new SjisEncoding(); byte[] sjis = eucjp2sjis(bytes, index, count); return e.GetCharCount(sjis, 0, sjis.Length); }
public override int GetByteCount(char[] chars, int index, int count) { SjisEncoding e = new SjisEncoding(); byte[] sjis = e.GetBytes(chars, index, count); return getCountSjis2Eucjp(sjis, 0, sjis.Length); }