這裏用到了不少其餘的知識!難度可能比較大,不過我也硬着頭皮啃了一口下來,弄懂了一部分吧!html
感受最主要的部分仍是字符串的處理,接下來的就是文件的裝載與讀取數組
另外還有一個身份證各個地區的文件,點擊這裏,所有複製下來再領存爲idinfo.txt文件吧。再把這個文件直接複製到解決防方案資源管理器裏面服務器
圖片以下:函數
第一個頁面是:index.aspx 控件以下圖:this
代碼以下:spa
第一個頁面的代碼頁:index.aspx.cs 代碼以下:3d
第二個頁面是:idinfo.aspx 是沒有添加任何控件的,代碼以下:htm
第二個頁面的代碼頁:idinfo.aspx.cs 代碼以下:對象
protected void Page_Load(object sender, EventArgs e)
{
string id = Request.QueryString["id"];
//首先獲取第一個頁面上的id
string idinfo = Server.MapPath("idinfo.txt");
//經過Server對象下的mapPath方法獲取指定文件的路徑。Server對象是用戶訪問服務器上的資源的
string[] info = null;
//定義一個空的數組用來裝東西
using (FileStream fs = File.OpenRead(idinfo))
//讀取剛纔那個路徑的文件!這裏要注意的是上面必須有using System.IO;來導入類才能使用這個功能
{
byte[] b = new byte[fs.Length];
//新建一個位的數組,其中新建的長度是idinfo.txt文件的長度
fs.Read(b,0,b.Length);
//其實就是把這個按位的長度所有裝進內存了,這個的大概用法就是
//第一個參數是用b來裝,從0開始裝,裝到b的最大長度
string sidinfo = Encoding.Default.GetString(b);
//注意!使用Encoding須要導入包:using System.Text;
//這個的做用就是將裝進內存的b的全部字符組合成字符串!!
info = sidinfo.Split(new char[] { '\r','\n'});
//這個就強大了,是將上一行,全部組合而成的字符串按照回車換行來進行分割
//split就是用來分割的,按照char裏面定義的 '\r','\n' 來進行分割
}
if (info!=null&&info.Length>0)
//這裏是檢測info裏面有沒數據,若是沒有就直接放棄,若是有,就進行下一步操做
{
string id6 = id.Substring(0,6);
//獲取身份證的前6位號碼,這6位號碼就是肯定究竟是哪一個地區的身份證
string areainfo = info.Where(W => W.IndexOf(id6) > -1).First();
//這個符號=> 是Lambda 表達式,就是一個匿名函數
//上面這個語句的主要做用就是尋找符合id6這個變量的字符串,只要前面符合了,就整個字符串都返回
string area = areainfo.Split(',')[1];
//這個就是把剛纔搜索到符合條件的身份證數字跟地區的字符串分割開來,而且只取逗號後面的文字部分字符串,注意[1]
string birthdayinfo = id.Substring(6,8);
//從id這個字符串的第6位開始,取8位數出來!這8位就是表明了出生年月日了
string sexinfo = id.Substring(16, 1);
//從id這個字符串的第16位置開始,取1位出來,這一位就表明了性別
string sex = "男";
//這裏直接默認設置爲男性,等下再增長判斷條件來切換這個結果
string birthday = birthdayinfo.Substring(0, 4) + "年" + birthdayinfo.Substring(4, 2) + "月" + birthdayinfo.Substring(6, 2) + "日";
//這裏就把出生年月日都弄出來了!
if (int.Parse(sexinfo) % 2 == 0)
{
sex = "女";
}
string idinfostr = "<div>你輸入的身份證號爲:" + id + "該身份證對應的人員信息以下:<div>";
idinfostr += "性別"+sex+"<br>";
idinfostr += "所屬地區" + area + "<br>";
idinfostr += "出生年月日" + birthday + "<br>";
//上面這幾行就是把全部信息鏈接在一塊兒,變成一個字符串
this.idInfo.InnerHtml = idinfostr;
//這裏的idInfo跟aspx頁面下的div是有關聯的,div的id名稱就是idInfo
//而後innerHtml的做用就是獲取跟設置的做用,這裏的等於號,就是設置了,具體就是設置DIV框裏的內容來輸出!
}
}