QQ驗證碼識別原始碼(C#/NET1.1)

notsamenum++;}}if(notsamenum<4){char cj=(char)datachar[ii];return cj.ToString();}}return jieguo;}/// <summary>/// 檢查特徵庫中是否已經存在相關記錄/// </summary>bool ischardatain(){bool jieguo=false;for(int

用C#2.0實現網路蜘蛛(WebSpider)

摘要:本文討論了如何使用C#2.0實現抓取網路資源的網路蜘蛛。使用這個程式,可以通過一個入口網址(如 http://www.comprg.com.cn)來掃描整個互連網的網址,並將這些掃描到的網址所指向的網路資源下載到本地。然後可以利用其他的分析 工具對這些網路資源做進一步地分析,如提取關鍵詞、分類索引等。也可以將這些網路資源作為資料來源來實現象Google一樣的搜尋引擎。關鍵 詞:C#2.0,Html,網路蜘蛛, 鍵樹,Regex 一、引言   

C#建立自訂配置節

 在.Net應用程式中,我們經常看到VS為我們產生的項目工程中都會含有App.config或者Web.config這樣的檔案。這個檔案就是我們所說的應用程式設定檔。在這個檔案裡面記述著一些與我們的應用程式相關的資訊,如:資料庫連接,認證模式等。我們在程式中可以利用ConfigurationManager的ConnectionStrings屬性方便的擷取設定檔中的資料庫連接字串資訊。  可是有時候,我們需要對它進行一些擴充,加入一些自訂的元素,而不是僅僅使用預設的配置。例如,我們可能需要在程式啟動

C/C++中關於qsort的使用

C/C++中有一個快速排序的標準庫函數 qsort ,在stdlib.h 中聲明,其原型為:void qsort(void *base, int nelem, unsigned int width, int ( * pfCompare)( const void *, const void *));  使用該函數,可以對任何類型的一維數組排序。該函數參數中,base 是待排序數組的起始地址,nelem 是待排序數組的元素個數,width

涅槃與C#

上天上.Net課我穿著一件T-Shirt正面印有涅槃三個人,中間是Kurt Cobain披頭散髮,面帶微笑。老師看到我說,“喲,你衣服上印的不是寫《C#入門經典》的那幾個人嗎?”(注意:這裡的C#是一門程式設計語言,不是C調升半調....)我大窘~然後說:“這幾個是彈吉它的,估計還C#沒有入門,好像也沒有機會學了,不過他們倒是會按C#和弦。。。” 我衣服上的Nirvana~~ C#入門經典 C#進階編程顯然我們Kurt Cobain要帥很多好吧!!!其實,乍看還是有點像的。。。。

交換a,b值的C#各種寫法

通常swap(a,b),都是用中間變數public static void Swap1(ref int a, ref int b) { int temp = a; a = b; b = temp; }產生的IL如下(去除ref) .maxstack 1 .locals init ( [0] int32 temp) L_0000: ldarg.0 L_0001:

我對C#運算式的理解

今早看到了《你真的瞭解a ^= (b ^= (a ^= b))嗎?》一文,文章中提到了一個有趣的運算式:a ^= (b ^= (a ^= b)); 很簡單的一個程式:  1 int a = 2; 2 int b = 9; 3 a ^= (b ^= (a ^= b)); 4 Console.WriteLine("{0}, {1}", a.ToString(), b.ToString());最後的運算結果不是預期的9,2,而是0,2。同時,還有1個運算式: 

【求職面試】斐波那契數列(C#版)

經典就是經典,不論多少年,經典永遠不會改變。語言,架構總有一天會過時,但是唯獨經典永遠存在。這就是研究這些經典演算法的永恒。當我這樣一個.net程式員去應聘Java, C++,

C語言學習筆記(13)

1. 動態記憶體分配先來介紹三個動態記憶體分配的函數:malloc,calloc和realloc。說來慚愧,以前只知道malloc。現在來看下他們的區別:malloc:最常用的分配記憶體塊,但是不對記憶體進行初始化。calloc:分配記憶體塊,但是對記憶體塊進行清零操作,這就造成此函數的效率要比malloc要低。realloc:調整(增加或者減少)之前分配記憶體塊的大小。由於上面的函數只是開闢了一段記憶體,因此無法知道你要利用這段記憶體來儲存什麼類型的資料,因此只是返回一個void *類型的值,

C語言學習筆記(16)

在C語言中,經常會出現一些複雜的型別宣告。而大多數都是涉及到指標的類型。那麼就在這一節來集中認識一下。首先,我們先來瞭解*,()和[]的組合。在看實際例子前,先來看一個重要的規則:在做選擇時,始終使[]和()的優先順序大於*。舉個簡單的例子:int *arr[10]。由於[]的優先順序大於*。也就代表,首先這是一個含有10個元素數組,那麼數組內的內容是什麼呢?是int *arr。去掉類型名稱,數組內的類型是int *。所以這是一個含有10個整數類型指標的數組。同樣的規則繼續看:float

C語言學習筆記(3)

1. typedef在前文中,我們用宏定義來定義了一個BOOL類型,那麼現在就用更專業的方式來定義類型。typedef int Bool;int main (void){ Bool flag=1;if(flag) { printf("True"); }else{ printf("false"); }}typedef 的作用就是類型定義(Type Definition)。類型定義有以下三個優點:1. 易於閱讀。比如我們可以把定義一個Dollar,

C語言學習筆記(4)

1. 數組大小我相信,在C#/Java中,更多的人願意用List<T>來取代數組,一方面是List提供了較多的方法,另一方面也無需我們去指定數組的大小。那麼在C語言中,我們既然需要必須指定數組的大小,而一般來講,很多數組大小事我們無法確定並且經常會發生變化的,那麼我們最好的方式就是用宏定義來限定數組的大小。#define SIZE 10int main (void){int a[SIZE];} 如果包含多個數組的話,用宏就很難記憶,那麼我們就可以利用sizeof運算子。int

C語言學習筆記(8)

1. 字串入門字串也稱字串字面量,是用一對雙引號括起來的字元序列。我們也許經常會遇到字串特別長的情況,在C#中,我們一般會用@符號來表示。 Console.WriteLine(@"HelloWorld"); 但是在C中,我們會這樣來寫:int main(){ printf("Hello " "world");return 0;}還記得我曾經講的最多的一句話就是,把字串當做字元數組來玩。其實在本質上,C語言就是把字串作為字元數組來處理,當C語言編譯器遇到長度為N的字串時,

.NET,你忘記了嗎?(七)—— 從a?b:c談起

1.  摘要在這篇文章中,我會通過IL去分析一個簡單的語句。如果覺得實在簡單,可以略過。2.  引子事情是這樣的,同事寫了一段類似這樣的代碼:class Program{      static void Main(string[] args)      {            object o = new object();            int i;            Int32.TryParse(Console.ReadLine(), out

C#三種類比自動登入和提交POST資訊的實現方法

網頁自動登入(提交Post內容)的用途很多,如驗證身份、程式升級、網路投票等,以下是用C#實現的方法。       網頁自動登入和提交POST資訊的核心就是分析網頁的原始碼(HTML),在C#中,可以用來提取網頁HTML的組件比較多,常用的用WebBrowser、WebClient、HttpWebRequest這三個。以下就分別用這三種方法來實現:      1、WebBrowser是個"迷你"瀏覽器,其特點是Post時不用關心Cookie、內建JS等問題      

C# 開啟EXCEL 如何儲存

m_objExcel = new Excel.Application();m_objExcel.Visible = true;Excel.Workbook m_objBook = m_objExcel.Application.Workbooks.Add(FileWrite);m_objBook = m_objExcel.Workbooks.Add(Missing.Value);Excel.Worksheet m_objSheet =

c# xml操作類

public class XmlControl {  protected string strXmlFile;  protected XmlDocument objXmlDoc = new XmlDocument();   public XmlControl(string XmlFile)  {   //   // TODO: 在這裡加入建構函式的程式碼   //   try   {    objXmlDoc.Load(XmlFile);   }   catch (System.Exceptio

C#使用Monitor類、Lock和Mutex類進行多線程同步

    在多線程中,為了使資料保持一致性必須要對資料或是訪問資料的函數加鎖,在資料庫中這是很常見的,但是在程式中由於大部分都是單線程的程式,所以沒有加鎖的必要,但是在多線程中,為了保持資料的同步,一定要加鎖,好在Framework中已經為我們提供了三個加鎖的機制,分別是Monitor類、Lock關鍵字和Mutex類。        其中Lock關鍵詞用法比較簡單,Monitor類和Lock的用法差不多。這兩個都是鎖定資料或是鎖定被調用的函數。而Mutex則多用於鎖定多線程間的同步調用。簡單的說,

用C#實現產生PDF文檔的方法

using System;    using System.IO;    using System.Text;    using System.Collections;    namespace PDFGenerator    {         public class PDFGenerator          {              static float pageWidth = 594.0f;              static float pageDepth = 828.0

C#類比Post和Get方式發送資料的技巧

通過應用程式讀取網頁資訊的時候,通常需要抓取網頁的資料,但是有一個問題就是很多網頁需要登入後才能夠獲得頁面資料,那麼就需要儲存當前的cookie,在.NET中可以使用CookieContainer 對象來儲存登入後的Cookie資訊,每次發送資料的時候加上Cookie資訊,就可以解決這個問題了。      #region 同步通過POST方式發送資料        /// <summary>        /// 通過POST方式發送資料        ///

總頁數: 4314 1 .... 1908 1909 1910 1911 1912 .... 4314 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.