第一個問題,讀寫文件的亂碼問題要靠自己去解決了,因為別人不知道你的很多情況,
專業(yè)從事網站建設、成都做網站,高端網站制作設計,重慶小程序開發(fā),網站推廣的成都做網站的公司。優(yōu)秀技術團隊竭力真誠服務,采用html5+CSS3前端渲染技術,響應式網站開發(fā),讓網站在手機、平板、PC、微信下都能呈現。建站過程建立專項小組,與您實時在線互動,隨時提供解決方案,暢聊想法和感受。
比如說:txt1 txt2是怎么來的,是自己用寫字板之類的編輯器保存的嗎?用的是什么編碼?GBK/UTF16……有沒有用BOMS?
但不管你用什么編碼保存,都是文本了,txt1文本是“10011”,保存在文件里可是:
31 30 30 31 31 這樣的東西
就不應該用binary方式打開,應該刪除 for binary
第二個問題,用文本方式打開讀到的是"10011",你的本意是二進制數據,而不是1萬零十一,要做一次轉換,把二進制的字符串轉成十進制的整型integer,在VB6里要自己整一個函數來作轉換,VB.NET應該比較簡單點。
先讀取一個字符串,轉換一下,才能放到integer類型的s1/s2中。
第三個問題,s3不應該是integer類型,integer類型是十進制的,就算前面的步驟對了也不會顯示你想要的二進制字符串,s3應該是字符串類型。
兩數相加的和是一個十進制數,要把它表現成二進制字符串,還得作一次轉換,也要自己整一個函數作轉換,要動點腦筋了,VB.NET應該比較簡單點。
從這個問題,可以看出,當要用VB去解決一些問題的時候,就并不像平時教科書上的例子的那么簡潔方便好用了,還不如直接用C來得干脆。
我不用Basic很多年~~~~
Cookies通過HttpResponse 傳給客戶端,通過HttpRequest 傳回服務端,因此你可以
設置Response.Cookies集合的值修改Cookie
Response.Cookies("MyCookie")("Data") = TextBox1.Text
通過讀取Request.Cookies集合的值得到Cookies的值
Label1.Text =Request.Cookies("MyCookie")("Data") "br"
看樣子應該是設置和讀取某個物件的屬性。。而這個屬性就是sslStatus.Text的值。
在這里Get是將sslStatus.Text這個結果讀取出來;而Set(ByVal value As String)是將value這個參數值賦值給sslStatus.Text,也即是讓這個名為sslStatus的文本框顯示value這個值。
不想一點一點寫了,粘貼給你吧
使用 HttpWebRequest 向網站提交數據
HttpWebRequest 是 .net 基類庫中的一個類,在命名空間 System.Net 下面,用來使用戶通過 HTTP 協議和服務器交互。
HttpWebRequest 對 HTTP 協議進行了完整的封裝,對 HTTP 協議中的 Header, Content, Cookie 都做了屬性和方法的支持,很容易就能編寫出一個模擬瀏覽器自動登錄的程序。
程序使用 HTTP 協議和服務器交互主要是進行數據的提交,通常數據的提交是通過 GET 和 POST 兩種方式來完成,下面對這兩種方式進行一下說明:
1. GET 方式。 GET 方式通過在網絡地址附加參數來完成數據的提交,比如在地址 中,前面部分 表示數據提交的網址,后面部分 hl=zh-CN 表示附加的參數,其中 hl 表示一個鍵(key), zh-CN 表示這個鍵對應的值(value)。程序代碼如下:
HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "" );
req.Method = "GET";
using (WebResponse wr = req.GetResponse())
{
//在這里對接收到的頁面內容進行處理
}
2. POST 方式。 POST 方式通過在頁面內容中填寫參數的方法來完成數據的提交,參數的格式和 GET 方式一樣,是類似于 hl=zh-CNnewwindow=1 這樣的結構。程序代碼如下:
string param = "hl=zh-CNnewwindow=1";
byte[] bs = Encoding.ASCII.GetBytes(param);
HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "" );
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = bs.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(bs, 0, bs.Length);
}
using (WebResponse wr = req.GetResponse())
{
//在這里對接收到的頁面內容進行處理
}
在上面的代碼中,我們訪問了 的網址,分別以 GET 和 POST 方式提交了數據,并接收了返回的頁面內容。然而,如果提交的參數中含有中文,那么這樣的處理是不夠的,需要對其進行編碼,讓對方網站能夠識別。
3. 使用 GET 方式提交中文數據。 GET 方式通過在網絡地址中附加參數來完成數據提交,對于中文的編碼,常用的有 gb2312 和 utf8 兩種,用 gb2312 方式編碼訪問的程序代碼如下:
Encoding myEncoding = Encoding.GetEncoding("gb2312");
string address = "?" + HttpUtility.UrlEncode("參數一", myEncoding) + "=" + HttpUtility.UrlEncode("值一", myEncoding);
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(address);
req.Method = "GET";
using (WebResponse wr = req.GetResponse())
{
//在這里對接收到的頁面內容進行處理
}
在上面的程序代碼中,我們以 GET 方式訪問了網址 ,傳遞了參數“參數一=值一”,由于無法告知對方提交數據的編碼類型,所以編碼方式要以對方的網站為標準。常見的網站中, (百度)的編碼方式是 gb2312, (谷歌)的編碼方式是 utf8。
4. 使用 POST 方式提交中文數據。 POST 方式通過在頁面內容中填寫參數的方法來完成數據的提交,由于提交的參數中可以說明使用的編碼方式,所以理論上能獲得更大的兼容性。用 gb2312 方式編碼訪問的程序代碼如下:
Encoding myEncoding = Encoding.GetEncoding("gb2312");
string param = HttpUtility.UrlEncode("參數一", myEncoding) + "=" + HttpUtility.UrlEncode("值一", myEncoding) + "" + HttpUtility.UrlEncode("參數二", myEncoding) + "=" + HttpUtility.UrlEncode("值二", myEncoding);
byte[] postBytes = Encoding.ASCII.GetBytes(param);
HttpWebRequest req = (HttpWebRequest) HttpWebRequest.Create( "" );
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded;charset=gb2312";
req.ContentLength = postBytes.Length;
using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(bs, 0, bs.Length);
}
using (WebResponse wr = req.GetResponse())
{
//在這里對接收到的頁面內容進行處理
}
從上面的代碼可以看出, POST 中文數據的時候,先使用 UrlEncode 方法將中文字符轉換為編碼后的 ASCII 碼,然后提交到服務器,提交的時候可以說明編碼的方式,用來使對方服務器能夠正確的解析。
以上列出了客戶端程序使用 HTTP 協議與服務器交互的情況,常用的是 GET 和 POST 方式?,F在流行的 WebService 也是通過 HTTP 協議來交互的,使用的是 POST 方法。與以上稍有所不同的是, WebService 提交的數據內容和接收到的數據內容都是使用了 XML 方式編碼。所以, HttpWebRequest 也可以使用在調用 WebService 的情況下。