protected override void SetBoxMetadata(int box) { var bdata = GetBoxOffset(box); // Set box count int count = 0; for (int s = 0; s < BoxSlotCount; s++) { var rel = bdata + (SIZE_STORED * s); if (Data[rel] != 0) // Species present { count++; } } var boxOfs = bdata - ListHeaderSizeBox; if (Data[boxOfs] == 0) { Data[boxOfs] = 1; Data[boxOfs + 1] = (byte)count; Data[boxOfs + 4] = StringConverter12.G1TerminatorCode; StringConverter12.SetString(Data.AsSpan(boxOfs + 0x10, 4), "1234".AsSpan(), 4, Japanese, StringConverterOption.None); } else { Data[boxOfs + 1] = (byte)count; } }
private string GetString(Span <byte> asSpan) { if (Korean) { return(StringConverter2KOR.GetString(asSpan)); } return(StringConverter12.GetString(asSpan, Japanese)); }
public sealed override byte[] SetString(string value, int maxLength, int PadToSize = 0, ushort PadWith = 0) { if (PadToSize == 0) { PadToSize = maxLength + 1; } return(StringConverter12.SetString1(value, maxLength, Japanese, PadToSize, (byte)PadWith)); }
private int SetString(ReadOnlySpan <char> value, Span <byte> destBuffer, int maxLength, StringConverterOption option = StringConverterOption.None) { if (Korean) { return(StringConverter2KOR.SetString(destBuffer, value, maxLength, option)); } return(StringConverter12.SetString(destBuffer, value, maxLength, Japanese, option)); }
private void SetString(Span <byte> asSpan, ReadOnlySpan <char> value, int maxLength) { if (Korean) { StringConverter2KOR.SetString(asSpan, value, maxLength); } else { StringConverter12.SetString(asSpan, value, maxLength, Japanese); } }
public override void SetMessage(string line1, string line2) { if (US) { StringConverter12.SetString1(line2, 0x10, false, 0x10, StringConverter12.G1TerminatorCode).CopyTo(Data, 0x11); bool hasLine2 = Data[0x11] != StringConverter12.G1TerminatorCode; byte padChar = !hasLine2 ? StringConverter12.G1TerminatorCode : (byte)0x7F; // space StringConverter12.SetString1(line1, 0x10, false, 0x10, padChar).CopyTo(Data, 0); Data[0x10] = 0x4E; } }
public sealed override string GetString(byte[] data, int offset, int length) => StringConverter12.GetString1(data, offset, length, Japanese);
public sealed override int SetString(Span <byte> destBuffer, ReadOnlySpan <char> value, int maxLength, StringConverterOption option) { return(StringConverter12.SetString(destBuffer, value, maxLength, Japanese, option)); }
public sealed override string GetString(ReadOnlySpan <byte> data) => StringConverter12.GetString(data, Japanese);
public override string GetMessage(bool isLastLine) => US?StringConverter12.GetString1(Data, isLastLine? 0x11 : 0, 0x10, false) : string.Empty;