【請問midstr和copy的差別】 |
答題得分者是:pceyes
|
andyto202
一般會員 發表:10 回覆:29 積分:7 註冊:2006-12-07 發送簡訊給我 |
(所在單元:StrUtils) 功能說明:返回指定範圍內的字串。該函數有三個參數。第一個參數為源字串,第二個參數為起點,第三個參數為結束點。通過第二、第三個參數則可指定要複製字串的範圍。 參考實例: S: String; begin H := MidStr(''電腦報'', 1, 1); // H變數為“電”。如果使用Copy函數,則應是H := Copy(''電腦報, 1, 2),否則返回的將不是“電”字。因此在使用操作含有中文的字串時,最好使用MidStr。 end;以上是網路上看的 不過試驗的結果 copy和midstr結果相同 並沒有和上述所說的 用midstr抓中文字會比較好用 麻煩先進指導一下 謝謝 |
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
我用D7試的結果和你不一樣,之前的Po文是對的,如果要達到MidStr的效果,Copy的字串要改為WideString,才能達到字元和文字視為一個字的效果。(d2009暫時未試,UnicodeString應該就不用管這些了)
[code delphi] procedure TForm1.Button1Click(Sender: TObject); begin Edit1.text := MidStr('China', 1, 3); // Chi Edit2.text := MidStr('1電2腦報', 1, 3); // 1電2 end; procedure TForm1.Button2Click(Sender: TObject); var ws:Widestring; begin Edit3.text := Copy('China', 1, 3); // Chi ws := '1電2腦報'; // 這裏我作弊 // 改為WideString 1和電字都視為一個字 Edit4.text := Copy(ws, 1, 3); // 1電2 end; [/code]
------
努力會更接近成功 |
andyto202
一般會員 發表:10 回覆:29 積分:7 註冊:2006-12-07 發送簡訊給我 |
===================引 用 pceyes 文 章=================== 我用D7試的結果和你不一樣,之前的Po文是對的,如果要達到MidStr的效果,Copy的字串要改為WideString,才能達到字元和文字視為一個字的效果。(d2009暫時未試,UnicodeString應該就不用管這些了) [code delphi] procedure TForm1.Button1Click(Sender: TObject); begin Edit1.text := MidStr('China', 1, 3); // Chi Edit2.text := MidStr('1電2腦報', 1, 3); // 1電2 end; procedure TForm1.Button2Click(Sender: TObject); var ws:Widestring; begin Edit3.text := Copy('China', 1, 3); // Chi ws := '1電2腦報'; // 這裏我作弊 // 改為WideString 1和電字都視為一個字 Edit4.text := Copy(ws, 1, 3); // 1電2 end; [/code] 奇怪 我用的是D5 怎麼和你的不一樣呢 |
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
我去找 strutils.pas (D6)
function MidStr(const AText: string; const AStart, ACount: Integer): string; begin Result := Copy(AText, AStart, ACount); end; 看起來和 COPY 一樣, 可能只是為了用語較 COMPATIBLE 吧 ===================引 用 andyto202 文 章=================== (所在單元:StrUtils) 功能說明:返回指定範圍內的字串。該函數有三個參數。第一個參數為源字串,第二個參數為起點,第三個參數為結束點。通過第二、第三個參數則可指定要複製字串的範圍。 參考實例: S: String; begin H := MidStr(''電腦報'', 1, 1); // H變數為“電”。如果使用Copy函數,則應是H := Copy(''電腦報, 1, 2),否則返回的將不是“電”字。因此在使用操作含有中文的字串時,最好使用MidStr。 end;以上是網路上看的 不過試驗的結果 copy和midstr結果相同 並沒有和上述所說的 用midstr抓中文字會比較好用 麻煩先進指導一下 謝謝
------
IS IT WHAT IT IS 我是 李慕白 請倒著唸. 又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦); 都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲. |
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
我去找 strutils.pas (D7)對字串的處理不同了。
function MidStr(const AText: AnsiString; const AStart, ACount: Integer): WideString(AText), AStart, ACount); end; function MidStr(const AText: WideString; overload; begin Result := Copy(AText, AStart, ACount); end; ===================引 用 st33chen 文 章=================== 我去找 strutils.pas (D6) function MidStr(const AText: string; const AStart, ACount: Integer): string; begin Result := Copy(AText, AStart, ACount); end; 看起來和 COPY 一樣, 可能只是為了用語較 COMPATIBLE 吧 ===================引 用 andyto202 文 章=================== (所在單元:StrUtils) 功能說明:返回指定範圍內的字串。該函數有三個參數。第一個參數為源字串,第二個參數為起點,第三個參數為結束點。通過第二、第三個參數則可指定要複製字串的範圍。 參考實例: S: String; begin H := MidStr(''電腦報'', 1, 1); // H變數為“電”。如果使用Copy函數,則應是H := Copy(''電腦報, 1, 2),否則返回的將不是“電”字。因此在使用操作含有中文的字串時,最好使用MidStr。 end;以上是網路上看的 不過試驗的結果 copy和midstr結果相同 並沒有和上述所說的 用midstr抓中文字會比較好用 麻煩先進指導一下 謝謝
------
努力會更接近成功 |
st33chen
尊榮會員 發表:15 回覆:591 積分:1201 註冊:2005-09-30 發送簡訊給我 |
|
andyto202
一般會員 發表:10 回覆:29 積分:7 註冊:2006-12-07 發送簡訊給我 |
請問把d7的striutils.pas拿到d5來用可以嗎??
===================引 用 pceyes 文 章=================== 我去找 strutils.pas (D7)對字串的處理不同了。 function MidStr(const AText: AnsiString; const AStart, ACount: Integer): WideString(AText), AStart, ACount); end; function MidStr(const AText: WideString; overload; begin Result := Copy(AText, AStart, ACount); end; ===================引 用 st33chen 文 章=================== 我去找 strutils.pas (D6) function MidStr(const AText: string; const AStart, ACount: Integer): string; begin Result := Copy(AText, AStart, ACount); end; 看起來和 COPY 一樣, 可能只是為了用語較 COMPATIBLE 吧 ===================引 用 andyto202 文 章=================== (所在單元:StrUtils) 功能說明:返回指定範圍內的字串。該函數有三個參數。第一個參數為源字串,第二個參數為起點,第三個參數為結束點。通過第二、第三個參數則可指定要複製字串的範圍。 參考實例: S: String; begin H := MidStr(''電腦報'', 1, 1); // H變數為“電”。如果使用Copy函數,則應是H := Copy(''電腦報, 1, 2),否則返回的將不是“電”字。因此在使用操作含有中文的字串時,最好使用MidStr。 end;以上是網路上看的 不過試驗的結果 copy和midstr結果相同 並沒有和上述所說的 用midstr抓中文字會比較好用 麻煩先進指導一下 謝謝 |
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |