青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

kenlistian

厚積薄發(fā). 勤為槳,思為帆

   :: 首頁(yè) :: 新隨筆 ::  :: 聚合  :: 管理 ::
  73 隨筆 :: 4 文章 :: 22 評(píng)論 :: 0 Trackbacks

    MFC中CEdit多行情況下,調(diào)用GetLine()時(shí),發(fā)現(xiàn)老是后面跟有亂碼。即使你把str初始化也是如此。

對(duì)于采用GetLine()調(diào)用,其函數(shù)說(shuō)明有2種。

1.int GetLine(
   int nIndex,
   LPTSTR lpszBuffer 
) const;
2.int GetLine(
   int nIndex,
   LPTSTR lpszBuffer,
   int nMaxLength 
) const;

  代碼如下:

   char str[10] = {'\0'};
   int nLineNum;//想要獲取的行號(hào)
   nLineNum=0;
   m_ctlEditTest.GetLine(nLineNum,str);

Remarks : The copied line does not contain a null-termination character.

看了下msdn,一句話說(shuō)得很明白,getline做了copy后是不給你加null結(jié)束符的。因此需要自己在定義的char字符串末尾添加。而一次實(shí)際上會(huì)copy回多少個(gè)字節(jié)。則在該函數(shù)的說(shuō)明中,在msdn中清晰表達(dá)為:

Return Value

  The number of bytes actually copied. The return value is 0 if the line number specified by nIndex is greater than the number of lines in the edit control.

所以,上面的代碼段得用一個(gè)值取得實(shí)際長(zhǎng)度,把多余的截取掉,但我在用getline1時(shí)老是返回0,不知道為何?不過(guò)改成getline2,指定copy9個(gè)字節(jié)時(shí),同時(shí)對(duì)第10個(gè)字節(jié)設(shè)置為null則正常返回,沒(méi)有亂碼的出現(xiàn)。如下

  int iLen =  m_ctlEditTest.GetLine(nLineNum,str, 9);

  str[10] = '\0'; 

即可。

。。。。。。。

在cedit中還有個(gè)linelength函數(shù),

int LineLength(
   int nLine = -1 
) const;

該函數(shù)是應(yīng)該返回指定行的長(zhǎng)度,但是如果不仔細(xì)看msdn的說(shuō)明,很容易誤解nLine是指cedit行中的某一行行數(shù)而代入其中,并得到錯(cuò)誤的結(jié)論。

而在msdn中,nLine的說(shuō)明是:

nLine

Specifies the character index of a character in the line whose length is to be retrieved. If this parameter is –1, the length of the current line (the line that contains the caret) is returned, not including the length of any selected text within the line. When LineLength is called for a single-line edit control, this parameter is ignored.

就是說(shuō)nLine是字符串的字符索引,在多行情況下所以它必須通過(guò)LineIndex函數(shù)來(lái)獲取。在msdn中如下描述,

   Use the LineIndex member function to retrieve a character index for a given line number within a multiple-line edit control.

而LineIndex函數(shù)說(shuō)明如下:

all this function to retrieve the character index of a line within a multiple-line edit control.

int LineIndex(
   int nLine = -1 
) const;

nLine

Contains the index value for the desired line in the text of the edit control, or contains –1. If nLine is –1, it specifies the current line, that is, the line that contains the caret.

該nLine才是真正的CEdit中的某一行列。也就是我們通過(guò)getlinecount()獲取到cedit的行數(shù)后,在到每一行中去找一個(gè)character index,再才能確定一行的長(zhǎng)度。

有時(shí),覺(jué)得mfc是不是有點(diǎn)對(duì)個(gè)簡(jiǎn)單的問(wèn)題把彎子繞得太遠(yuǎn)了點(diǎn)吧。

。。。。

下面摘抄另一種解決方案,采用CString方式來(lái)copy一行的長(zhǎng)度,我在自己機(jī)子測(cè)試過(guò),通過(guò)GetLine函數(shù)1沒(méi)有通過(guò),返回的是個(gè)空串,而采用GetLine2指定返回一個(gè)最大長(zhǎng)度時(shí),卻能copy回所要的數(shù)據(jù),不過(guò)當(dāng)采用最大長(zhǎng)度時(shí),由于拷貝回來(lái)的是一個(gè)不帶null終結(jié)符的串,則存在亂碼。由于工作時(shí)間緊張,問(wèn)題只能采用指定大小的char串處理,但是采用CString串如果不指定大小的方法做一個(gè)mark。下列代碼供測(cè)試參考。

CString strTemp;
int nLineNum;
nLineNum=0;
m_ctlEditTest.GetLine(nLineNum,strTemp.GetBufferSetLength(m_ctlEditTest.LineLength(m_ctlEditTest.LineIndex(nLineNum))));
strTemp.ReleaseBuffer();

。。。。。。

總而言之,感覺(jué)vc中mfc太過(guò)于細(xì)節(jié),莫免麻煩。但是感覺(jué)經(jīng)歷過(guò)一次后,就不再是磕腳的石頭,而是心態(tài)的放心。也許,這是心理作用而已。

posted on 2008-02-15 21:17 kenlistian 閱讀(5513) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美一区二区三区在线| 亚洲二区在线观看| 亚洲影音先锋| 国产精品一页| 久久综合久久88| 蜜桃视频一区| 亚洲欧美一区二区在线观看| 午夜视频一区| 在线看日韩欧美| 亚洲精一区二区三区| 国产精品亚洲综合天堂夜夜| 久久久女女女女999久久| 久久成人免费电影| 亚洲精选中文字幕| 一区二区三区国产盗摄| 国产日韩综合| 91久久久国产精品| 国产婷婷一区二区| 亚洲精品影视在线观看| 国产精品你懂的在线| 美日韩免费视频| 欧美午夜女人视频在线| 美女福利精品视频| 国产精品大片| 欧美激情视频给我| 国产农村妇女精品| 亚洲国产女人aaa毛片在线| 国产日韩精品久久久| 亚洲日本欧美天堂| 国内成+人亚洲| 99国产精品久久久久久久久久| 国产欧美日本| 99精品国产福利在线观看免费| 黄色小说综合网站| 亚洲午夜一区二区| 亚洲另类春色国产| 久久久久www| 欧美永久精品| 国产精品久久久久久久久免费桃花 | 亚洲午夜高清视频| 久久综合亚洲社区| 久久激情一区| 国产精品国产三级国产普通话三级 | 最新日韩在线| 久久精品午夜| 久久久久国产精品一区三寸| 国产精品福利影院| 99精品视频一区二区三区| 亚洲激情视频在线| 久久中文字幕一区二区三区| 久久久久久久999精品视频| 欧美日韩中国免费专区在线看| 亚洲电影中文字幕| 亚洲第一福利社区| 久久蜜桃精品| 老司机aⅴ在线精品导航| 国产一区二区三区四区在线观看| 亚洲一区在线免费| 欧美在线亚洲综合一区| 国产精品你懂得| 亚洲一区免费网站| 性xx色xx综合久久久xx| 国产精品亚洲成人| 亚洲永久字幕| 久久精品五月| 一区二区三区无毛| 久久久久综合网| 欧美成人免费一级人片100| 在线播放日韩欧美| 免费黄网站欧美| 亚洲精品乱码久久久久久蜜桃91 | 欧美日韩三级| 国产精品99久久久久久久女警| 亚洲欧美日韩在线高清直播| 国产精品一二三| 久久爱www久久做| 欧美插天视频在线播放| 亚洲伦理一区| 国产精品久久国产精品99gif| 亚洲一区在线观看视频| 美国三级日本三级久久99| 亚洲啪啪91| 国产精品白丝av嫩草影院| 亚洲欧美日韩中文视频| 久久噜噜亚洲综合| 亚洲精品中文字幕女同| 国产精品伦子伦免费视频| 欧美在线免费| 亚洲区免费影片| 翔田千里一区二区| 亚洲第一成人在线| 欧美视频一区在线| 久久精品国产一区二区三区| 亚洲国产老妈| 欧美一区二区三区视频| 91久久夜色精品国产网站| 国产精品久久久久久妇女6080 | 欧美日韩高清在线一区| 欧美伊人久久| 亚洲啪啪91| 久久午夜激情| 亚洲欧美日韩精品久久久| 亚洲大片在线观看| 国产精品日日摸夜夜添夜夜av| 狂野欧美激情性xxxx欧美| 亚洲午夜久久久久久久久电影网| 麻豆精品一区二区av白丝在线| 亚洲无线视频| 亚洲七七久久综合桃花剧情介绍| 国产精品亚洲激情| 欧美日韩亚洲不卡| 麻豆国产精品777777在线| 午夜久久资源| 在线亚洲电影| 亚洲免费观看高清在线观看 | 午夜精品久久久久久久99热浪潮| 亚洲激情亚洲| 国语自产在线不卡| 国产精品一区二区你懂的| 欧美日韩日本视频| 欧美福利电影在线观看| 久久先锋影音av| 久久久久网址| 久久国产日韩| 亚洲女同同性videoxma| 一本久久综合| 99精品热视频只有精品10| 亚洲第一在线视频| 欧美99在线视频观看| 久久综合久久综合九色| 久久久久国产精品厨房| 欧美一区二区三区免费大片| 亚洲欧美日韩综合一区| 亚洲一区二区在线免费观看| 一本色道久久综合亚洲精品小说| 亚洲精品一区二区三区av| 亚洲电影在线| 亚洲激情中文1区| 亚洲片在线资源| 亚洲美女区一区| 一区二区三区精密机械公司| 一本色道久久| 中文一区在线| 亚洲免费一区二区| 欧美一级播放| 久久精品久久99精品久久| 久久久久久国产精品mv| 久久久精品网| 男男成人高潮片免费网站| 免费人成精品欧美精品| 欧美激情一区在线观看| 亚洲日本电影在线| 一区二区三区久久精品| 亚洲欧美激情视频| 久久精品一区二区三区不卡| 卡通动漫国产精品| 欧美女人交a| 国产精品美女久久久久久免费| 国产人成一区二区三区影院| 国产一区二区日韩精品欧美精品| 黄色一区二区三区| 亚洲六月丁香色婷婷综合久久| 亚洲视频一区二区| 欧美一区二视频在线免费观看| 久久天堂国产精品| 亚洲国产精品久久久久秋霞影院| 亚洲精品欧美精品| 亚洲欧美日韩国产综合| 久久亚洲私人国产精品va媚药| 欧美精品系列| 国产一区二区三区高清| 日韩午夜激情av| 久久不射网站| 亚洲欧洲精品成人久久奇米网| 一区二区三区精品| 久久综合色8888| 国产精品区一区| 亚洲国产精品国自产拍av秋霞| 亚洲视频在线视频| 老牛影视一区二区三区| 一区二区三区四区国产| 久久久精品五月天| 国产精品成人一区二区三区夜夜夜| 国模私拍一区二区三区| 一区二区三区四区五区视频| 蜜臀91精品一区二区三区| 亚洲视频1区2区| 欧美成人中文字幕| 韩国精品一区二区三区| 亚洲一区二区三区精品视频| 免费观看国产成人| 午夜精品国产更新| 欧美日韩视频不卡| 亚洲国产经典视频| 久久免费精品日本久久中文字幕| av成人老司机| 欧美日韩国产成人| 日韩亚洲精品电影| 欧美高清视频一区| 久久成人免费日本黄色|