ClassLibraryWeiBao/QR二维码/DataEncodation/InputRecognition/ModeEncodeCheck.cs
(开头部分) 5KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
using System;
using System.Text;
namespace Gma.QrCodeNet.Encoding.DataEncodation.InputRecognition
{
public static class ModeEncodeCheck
{
public static bool isModeEncodeValid(Mode mode, string encoding, string content)
{
switch(mode)
{
case Mode.Numeric:
return NumericCheck(content);
case Mode.Alphanumeric:
return AlphaNumCheck(content);
case Mode.EightBitByte:
return EightBitByteCheck(encoding, content);
case Mode.Kanji:
return KanjiCheck(content);
default:
throw new InvalidOperationException(string.Format("System does not contain mode: {0}", mode.ToString()));
}
}
private static bool NumericCheck(string content)
{
int tryEncodePos = TryEncodeAlphaNum(content, 0, content.Length);
return tryEncodePos == -2 ? true : false;
}
private static bool AlphaNumCheck(string content)
{
int tryEncodePos = TryEncodeAlphaNum(content, 0, content.Length);
return tryEncodePos == -1 ? true : false;
}
/// <summary>
/// Check char from startPos for string content.
/// </summary>
/// <param name="content">input string content</param>
/// <param name="startPos">start check position</param>
/// <returns>-2 Numeric encode, -1 AlphaNum encode, Index of failed check pos</returns>
internal static int TryEncodeAlphaNum(string content, int startPos, int contentLength)
{
if(string.IsNullOrEmpty(content))
throw new IndexOutOfRangeException("Input content should not be Null or empty");
//True numeric check, False alphaNum check
bool checkOption = true;
int num = new int();
for(int index = startPos; index < contentLength; index++)
{
if(checkOption)
后面还有 129 行代码,购买后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。