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 算力,解读结果公开显示在下面。

还没有人解读过这个文件。