Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.


ID: 26061, MECSUtils ver1.57

by Hideaki Tominaga Email: Anonymous


MECSUtils unit constains several functions and classes to support international characters with AnsiString/UnicodeString/WideString.
Download Details
FTP  download also available
CDN Login Required to Download. (You will be redirected to the login page if you click on the Download Link)
To download this, you must have registered:
A free membership

For Delphi, Version 11.0  to 17.0 3525 downloads
Copyright: Open Source or other


Size: 17,069 bytes
Updated on Wed, 23 Mar 2016 22:06:26 GMT
Originally uploaded on Wed, 17 Sep 2008 09:44:47 GMT
SHA1 Hash: 082182FFCFBADE27D06315CA522FF470BC4DEC8A
MD5 Hash: D3D4A7216C14DF47E6B460155EA00CC9

    Explore the files in this upload

Description
MECSUtils unit constains several functions and classes to support international characters with AnsiString/UnicodeString/WideString.

# Please check source code for detail.

Classes:
---------------------
- PUnicodeChar(*1)
- PUTF8Char
- TEastAsianWidth
- TElementType
- TIndexCount
- TLeadBytes
- TNORM_FORM
- UnicodeChar(*1)
- UTF8Char
- TCombiningType
- TBytes(*3)

Variables:
---------------------
- DefaultAnsiCodePage
- DefaultOEMCodePage
- DefaultLCID

Functions/Procedures:
---------------------

[Codepage/CharSet/Locale]
- CodePageToFontCharset
- FontCharsetToCodePage
- IsFarEastCharSet
- IsFarEastLCID

[TBytes]
- MecsAnsiBytesOf
- MecsAnsiStringOf
- MecsBytesOf
- MecsStringOf
- MecsWideBytesOf
- MecsWideStringOf

[AnsiString]
- MecsGetCodePage
- MecsGetLeadBytes
- MecsShrinkElement
- MecsStretchElement

[UnicodeString/WideString]
- MecsEastAsianWidth
- MecsIsNormalized
- MecsMappingFix_CP932ToUnicode
- MecsMappingFix_JISX0208ToJISX0213
- MecsMappingFix_JISX0208ToUnicode
- MecsMappingFix_JISX0213ToJISX0208
- MecsMappingFix_UnicodeToCP932 <- Mod 1.54
- MecsMappingFix_UnicodeToJISX0208 <- Mod 1.54
- MecsNormalize
- MecsStringWidth <- Add 1.53
- StrLen(*2)
- StrPos(*2) <- Add 1.55

[Common]
- MecsAnsiPos <- Add 1.55
- MecsAnsiPosEx <- Add 1.55
- MecsAnsiStrPos <- Add 1.55
- MecsCharLength
- MecsCharToElementIndex
- MecsCharToElementIndexCount
- MecsCharToElementLen
- MecsCopy
- MecsDelete
- MecsElementToCharIndex
- MecsElementToCharLen
- MecsElementType
- MecsInsert
- MecsIsFullWidth
- MecsIsLeadElement
- MecsIsMECElement
- MecsIsTrailElement
- MecsLeftStr
- MecsLength
- MecsMidStr
- MecsNextCharIndex
- MecsReverseString
- MecsRightStr
- MecsStrCharLength
- MecsStrConv <- Add 1.50
- MecsStrElementType
- MecsStrLen
- MecsStrNextChar

[Combining Character Sequence]
- MecsCCSLength
- MecsCCSToElementIndex
- MecsCCSToElementLen
- MecsCombiningType
- MecsCopyC
- MecsDeleteC
- MecsElementToCCSIndex
- MecsElementToCCSLen
- MecsInsertC
- MecsLeftStrC
- MecsLengthC
- MecsMidStrC
- MecsNextCCSIndex
- MecsReverseStringC
- MecsRightStrC
- MecsStrCCSLength
- MecsStrLenC
- MecsStrNextCCS

[Convert]
- AnsiToUTF32
- AnsiToUTF16
- AnsiToUTF8
- CodePointToUTF16
- CodePointToUTF8
- ConvertMultiByteToUnicode
- ConvertString
- ConvertUnicodeToMultiByte
- TrimNullTerm
- UTF32ToAnsi
- UTF32ToUTF16
- UTF32ToUTF8
- UTF16ToAnsi
- UTF16ToUTF32
- UTF16ToUTF8
- UTF8ToAnsi
- UTF8ToUTF32
- UTF8ToUTF16

[HTML]
- MecsCodePageToCharset <- Add 1.52
- MecsCharsetToCodepage <- Add 1.52
- MecsHTMLDecode <- Add 1.51
- MecsHTMLEncode <- Add 1.51

*1 D2009 or later
*2 D2007 or before
*3 D2006 or before

Example:

var
A: AnsiString;
B: UTF8String;
begin
A := '11?22?33?44';
A := MecsCopy(A, 1, 5); // '11?22'
B := AnsiToUTF8(A);
B := MecsCopy(B, 2, 2, CP_UTF8); // '1?'
ShowMessage(IntToStr(MecsLength(B, CP_UTF8))); // return '2'
end;

# '?' is Multi-byte charcter.

Reference manual available (Japanese).
http://ht-deko.minim.ne.jp/tech021.html

Related:
* QC#58386
* QC#65381
* QC#67468
* QC#67959
* QC#78134
* QC#78903
* QC#83508
* QC#83566
* QC#87435

   Latest Comments  View All Add New

Move mouse over comment to see the full text

Server Response from: ETNACDC03