LowerCase 對於中文字 |
答題得分者是:John Wong
|
雪貓
一般會員 發表:7 回覆:18 積分:5 註冊:2006-08-10 發送簡訊給我 |
|
雪貓
一般會員 發表:7 回覆:18 積分:5 註冊:2006-08-10 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
這樣如何!只要不是雙字組都可以置換,不限定只有英文字。
procedure TForm1.Button1Click(Sender: TObject); Var i: Integer; aString:String; TempString:String; begin TempString := ''; aString := '各A位B請C等C一E下'; i := 1; while true do begin if Windows.IsDBCSLeadByte(Byte(aString[i])) then begin TempString := TempString MidBStr(aString,i,2); Inc(i,2); end else begin TempString := TempString LowerCase(MidBStr(aString,i,1)); Inc(i); end; if ( i >= Length(aString) ) then break; end; ShowMessage(TempString); end; |
雪貓
一般會員 發表:7 回覆:18 積分:5 註冊:2006-08-10 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
如果沒記錯,Borland的VCL是不支援Unicode的!除非你改用Borland的DotNet版本。
另外有關英文字母大小寫之前純屬筆誤,哈~請參考! ===================引 用 文 章=================== Stallion您好 您的這個方式.看起來也是逐字檢查若萬一....我有一整篇文章置於 memo裡.那麼似乎會花更多的時間來做檢查轉換 但是...至少比我的方法好太多.先試著用..謝謝 但不知 LowerCase 或UpperCase 是否對中文字(或雙字碼)無法全部支援? LowerCase 或UpperCase 不是應該只針對英文字母作大小寫轉換嬤? 或許可能要問Borland才知道了^^ |
John Wong
初階會員 發表:1 回覆:35 積分:32 註冊:2004-09-18 發送簡訊給我 |
轉用AnsiLowerCase.
Unit SysUtils Category string handling routines function AnsiLowerCase(const S: string): string; Description AnsiLowerCase returns a string that is a copy of the given string converted to lower case. The conversion uses the current locale. This function supports multi-byte character sets (MBCS). |
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
各 => 0xA6 0x55
0xA6 不是英文字 0x55 => U LowerCase('U') => u => 0x75 0xA6 0x75 => 守 如果你確定只有中英文字, 不會有特殊符號 先抓第一個 byte 如果大於 'z' , 表示為中文字, 第二個 byte 忽略不要轉換 如果第一個 byte 小於 'z', 就不是中文字, 轉換 程式大略如此 (小弟沒有實際測試) Skip:=False; for i:=0 to Length(String1)-1 do begin if Skip=False then // 這個沒有忽略, 是要檢查的 if String1[i]>'z' then Skip:=True else String1[i]=LowerCase(String1[i]); else Skip=False; // 這個已經忽略, 下個要檢查 end;
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
雪貓
一般會員 發表:7 回覆:18 積分:5 註冊:2006-08-10 發送簡訊給我 |
|
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |