Contents

# រូបមន្ត​បន្ថែម​សម្រាប់​សរសេរ​កម្មវិធី​ក្នុង LibreOffice Calc

វិធីសាស្ត្រ​នៃ​ការ​ពង្រីក Calc ដោយ​រូបមន្ត​បន្ថែម​ដែល​បាន​ពណ៌នា​ខាង​ក្រោមគឺ​ហួស​សម័យហើយ ។ ចំណុច​ប្រទាក់​នៅ​តែ​អាច​ប្រើ​បាន និង​គាំ​ទ្រ ដើម្បី​ធានា​សមត្ថភាព​រូបមន្ត​បន្ថែម​ដែល​មាន​ស្រាប់ ប៉ុន្តែ​សម្រាប់​ការ​សរសេរ​រូបមន្ត​បន្ថែម​ថ្មី​មួយ អ្នក​គួរ​ប្រើ អនុគមន៍ API ថ្មី ។

LibreOffice Calc can be expanded by Add-Ins, which are external programming modules providing additional functions for working with spreadsheets. These are listed in the Function Wizard in the Add-In category. If you would like to program an Add-In yourself, you can learn here which functions must be exported by the shared library external DLL so that the Add-In can be successfully attached.

LibreOffice searches the Add-in folder defined in the configuration for a suitable shared library DLL. To be recognized by LibreOffice, the shared library DLL must have certain properties, as explained in the following. This information allows you to program your own Add-In for Function Wizard of LibreOffice Calc.

## គំនិត​រូបមន្ត​បន្ថែម

បណ្ណាល័យ​រូបមន្ត​បន្ថែម​នីមួយៗ ផ្តល់​នូវ​អនុគមន៍​ជា​ច្រើន ។ អនុគមន៍​​ខ្លះ​ត្រូវ​បាន​ប្រើ​សម្រាប់​គោល​បំណង​គ្រប់គ្រង ។ អ្នក​អាច​ជ្រើស​ស្ទើរ​តែ​គ្រប់​ឈ្មោះ សម្រាប់​អនុគមន៍​ផ្ទាល់​ខ្លួន​របស់​អ្នក ។ ទោះ​យ៉ាង​ណា ពួក​វា​ក៏​ត្រូវតែ​អនុវត្ត​តាម​ក្បួន​ពិត​ប្រាកដ​ដែរ ដោយ​គោរព​តាម​ការ​ហុច​ប៉ារ៉ាម៉ែត្រ ។ ការ​ដាក់​ឈ្មោះ និង​ការ​ហៅ​សម្មតិកម្ម នឹង​ខុស​គ្នា​សម្រាប់​វេទិកា​ផ្សេង​គ្នា ។

### Functions of Shared Library AddIn DLL

នៅ​កម្រិត​អប្បបរមា ត្រូវ​តែ​មាន​អនុគមន៍​គ្រប់គ្រង GetFunctionCount និង​GetFunctionData ។ ដោយ​ប្រើ​ទាំង​នេះ អនុគមន៍​ព្រម​ទាំង​ប្រភេទ​ប៉ារ៉ាម៉ែត្រ និង​តម្លៃ​ត្រឡប់​អាច​ត្រូវ​បាន​កំណត់ ។ ជា​តម្លៃ​ត្រឡប់ ប្រភេទ​ទ្វេ និង​ខ្សែ​អក្សរ​​ត្រូវ​បាន​គាំទ្រ ។​​ ជា​ប៉ារ៉ាម៉ែត្រ តំបន់​ក្រឡា អារេ​ទ្វេ អារេ​ខ្សែ​អក្សរ និង​អារេ​ក្រឡា ត្រូវ​បាន​គាំទ្រ ។

ប៉ារ៉ាម៉ែត្រ​ត្រូវ​បាន​ហុច​ដោយ​ប្រើ​សេចក្តី​យោង ។ ដូច្នេះ ភាព​ផ្លាស់ប្តូរ​មួយ​នៃ​តម្លៃ​ទាំង​នេះ អាច​ធ្វើ​បាន​ជា​មូលដ្ឋាន ។ ទោះ​យ៉ាង​ណា វា​មិន​ត្រូវ​បាន​គាំទ្រ​ក្នុង LibreOffice Calc ទេ​ព្រោះ​វា​មិន​មាន​ន័យ​ក្នុង​សៀវភៅ​បញ្ជី ។

បណ្ណាល័យ​អាច​ត្រូវ​បាន​ផ្ទុក​ឡើង​វិញ​អំឡុងពេល​រត់ ហើយ​មាតិកា​របស់​ពួកវា​អាច​ត្រូវ​បាន​វិភាគ​ដោយ​អនុគមន៍​គ្រប់គ្រង ។ សម្រាប់​អនុគមន៍​នីមួយៗ ព័ត៌មាន​មាន​អំពី​ចំនួន និង​ប្រភេទ​ប៉ារ៉ាម៉ែត្រ ឈ្មោះ​អនុគមន៍​ខាង​ក្នុង និង​ខាង​ក្រៅ និង​លេខ​គ្រប់គ្រង ។

អនុគមន៍​ត្រូវ​បាន​ហៅ​ក្នុង​ពេល​ដំណាល​គ្នា និង​ត្រឡប់​លទ្ធផល​របស់​ពួក​វា​ភ្លាម​ៗ ។ អនុគមន៍​ពេល​ពិត (អនុគមន៍​អសមកាល) ក៏​អាច​ប្រើ​បាន​ដែរ ទោះ​យ៉ាង​ណា ពួក​វា​មិន​ត្រូវ​បាន​ពន្យល់​លម្អិត​ទេ ​ដោយ​សារ​តែ​ភាព​ស្មុគ្រស្មាញ​ពួក​វា ។

## ព័ត៌មាន​ទូទៅ​អំពី​ចំណុច​ប្រទាក់

ចំនួន​ប៉ារ៉ាម៉ែត្រ​ច្រើន​បំផុត​​ក្នុង​អនុគមន៍​បន្ថែម ដែល​បាន​ភ្ជាប់​នឹង LibreOffice Calc គឺ 16 ៖ មួយ​សម្រាប់​ត្រឡប់​តម្លៃ និង​ប៉ារ៉ាម៉ែត្រ 15 ទៀត​សម្រាប់​បញ្ចូល​ប៉ារ៉ាម៉ែត្រ ។

ប្រភេទ​ទិន្នន័យ​ត្រូវ​បាន​កំណត់​ដូច​ខាង​ក្រោម ៖

ប្រភេទ​ទិន្នន័យ | ការ​កំណត់​
--- | ---
CALLTYPE | ក្រោម Windows ៖ FAR PASCAL (_far _pascal) ផ្សេង​ទៀត ៖ លំនាំដើម (លំនាំដើម​បញ្ជាក់​លម្អិត​ដោយ​ប្រព័ន្ធ​ប្រតិបត្តិការ)
USHORT | ចំនួន​គត់ 2 បៃ​គ្មាន​សញ្ញា
DOUBLE | ទ្រង់ទ្រាយ​ដែល​អាស្រ័យ​លើ​វេទិកា 8 បៃ
Paramtype | អាស្រ័យ​វេទិកា ដូចជា int PTR_DOUBLE =0 អ្នក​ចង្អុល​ទៅ​ទ្វេ PTR_STRING =1 អ្នក​ចង្អុល​ទៅ​ខ្សែ​អក្សរ​ដែល​បញ្ចប់​ដោយ​សូន្យ ។ PTR_DOUBLE_ARR =2 អ្នក​ចង្អុល​ទៅ​អារេ​ទ្វេ​មួយ PTR_STRING_ARR =3 អ្នក​ចង្អុល​ទៅ​អារេ​ខ្សែ​អក្សរ​មួយ PTR_CELL_ARR =4 អ្នក​ចង្អុល​ទៅ​អារេ​ក្រឡា​មួយ NONE =5

## Shared Library DLL functions

Following you will find a description of those functions, which are called at the Shared Library external DLL.

For all Shared Library DLL functions, the following applies:

void CALLTYPE fn(out, in1, in2, ...)

Output: Resulting value

Input: Any number of types (double&, char*, double*, char**, Cell area), where the Cell area is an array of types double array, string array, or cell array.

### GetFunctionCount()

ត្រឡប់​ចំនួន​អនុគមន៍ ដោយ​គ្មាន​អនុគមន៍​គ្រប់គ្រង​នៃ​ប៉ារ៉ាម៉ែត្រ​សេចក្តី​យោង ។ អនុគមន៍​នីមួយៗ​មាន​តម្លៃ​តែ​មួយ​គត់​ចន្លោះ 0 និង nCount-1 ។ លេខ​នេះ​នឹង​ត្រូវ​បាន​ត្រូវការ​សម្រាប់​អនុគមន៍ GetFunctionData និង​GetParameterDescription នៅ​ពេល​ក្រោយ ។

វាក្យ​សម្ពន្ធ

void CALLTYPE GetFunctionCount(USHORT& nCount)

ប៉ារ៉ាម៉ែត្រ

USHORT &nCount:

Output: Reference to a variable, which is supposed to contain the number of Add-In functions. For example: If the Add-In provides 5 functions for LibreOffice Calc, then nCount=5.

### GetFunctionData()

កំណត់​ព័ត៌មាន​សំខាន់ៗ​ទាំងអស់​អំពី​អនុគមន៍​រូបមន្ត​បន្ថែម ។

វាក្យ​សម្ពន្ធ

void CALLTYPE GetFunctionData(USHORT& nNo, char* pFuncName, USHORT& nParamCount, Paramtype* peType, char* pInternalName)

ប៉ារ៉ាម៉ែត្រ

USHORT& nNo:

Input: Function number between 0 and nCount-1, inclusively.

char* pFuncName:

Output: Function name as seen by the programmer, as it is named in the Shared Library DLL. This name does not determine the name used in the Function Wizard.

USHORT& nParamCount:

Output: Number of parameters in AddIn function. This number must be greater than 0, because there is always a result value; the maximum value is 16.

Paramtype* peType:

Output: Pointer to an array of exactly 16 variables of type Paramtype. The first nParamCount entries are filled with the suitable type of parameter.

char* pInternalName:

Output: Function name as seen by the user, as it appears in the Function Wizard. May contain umlauts.

ប៉ារ៉ាម៉ែត្រ pFuncName និង pInternalName ជា​អារេ​តួ​អក្សរ ដែល​ត្រូវ​បាន​ប្រតិបត្តិ​ជាមួយ​ទំហំ 256 ក្នុង​ LibreOffice Calc ។

### GetParameterDescription()

ផ្តល់​នូវ​សេចក្តី​ពណ៌នា​សង្ខេប​នៃ​អនុគមន៍​រូបមន្ត​បន្ថែម និង​ប៉ារ៉ាម៉ែត្រ​របស់​វា ។​ ជា​ជម្រើស អនុគមន៍​នេះ​អាច​ត្រូវ​បាន​ប្រើ​ដើម្បី​បង្ហាញ​អនុគមន៍​មួយ និង​សេចក្តី​ពណ៌នា​ប៉ារ៉ាម៉ែត្រ​ក្នុង អ្នក​ជំនួយការ​អនុគមន៍ ។

វាក្យ​សម្ពន្ធ

void CALLTYPE GetParameterDescription(USHORT& nNo, USHORT& nParam, char* pName, char* pDesc)

ប៉ារ៉ាម៉ែត្រ

USHORT& nNo:

Input: Number of the function in the library; between 0 and nCount-1.

USHORT& nParam:

Input: Indicates, for which parameter the description is provided; parameters start at 1. If nParam is 0, the description itself is supposed to be provided in pDesc; in this case, pName does not have any meaning.

char* pName:

Output: Takes up the parameter name or type, for example, the word "Number" or "String" or "Date", and so on. Implemented in LibreOffice Calc as char[256].

char* pDesc:

Output: Takes up the description of the parameter, for example, "Value, at which the universe is to be calculated." Implemented in LibreOffice Calc as char[256].

pName និង pDesc ជា​អារេ​តួ​អក្សរ បាន​ប្រតិបត្តិ​ក្នុង LibreOffice Calc ដែល​មាន​ទំហំ 256 ។ សូម​សម្គាល់​ថា ទំហំ​ដែល​មាន​ក្នុង អ្នក​ជំនួយការ​អនុគមន៍ ត្រូវ​បាន​កំណត់ និង​មិន​អាច​ប្រើ​បាន​ទាំង 256 តួអក្សរ​ទេ ។

## តំបន់​ក្រឡា

តារាង​ខាង​ក្រោម​មាន​ព័ត៌មាន ដែល​រចនា​សម្ព័ន្ធ​ទិន្នន័យ​ត្រូវ​តែ​ត្រូវ​បាន​ផ្តល់​ដោយ​ម៉ូឌុល​កម្មវិធី​ខាង​ក្រៅ ដើម្បី​ហុច​តំបន់​ក្រឡា ។ LibreOffice Calc សម្គាល់​អារេ​បី​ខុសៗ​គ្នា អាស្រ័យ​លើ​ប្រភេទ​ទិន្នន័យ ។

### អារេ​ទ្វេ

ជា​ប៉ារ៉ាម៉ែត្រ​មួយ តំបន់​ក្រឡា​មួយ​ដែល​មាន​តម្លៃ​ប្រភេទ​លេខ​/ទ្វេ អាច​ត្រូវ​បាន​ហុច ។ អារេ​ទ្វេ​ក្នុង LibreOffice Calc ត្រូវ​បាន​កំណត់​ដូច​ខាង​ក្រោម ៖

Offset | Name | Description
--- | --- | ---
0 | ជួរ​ឈរ១ | លេខ​ជួរ​ឈរ​នៅ​ជ្រុង​ខាង​លើ​ឆ្វេង​នៃ​តំបន់​ក្រឡា ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
2 | ជួរ​ដេក១ | លេខ​ជួរ​ដេក​​នៅ​ជ្រុង​ខាង​លើ​ឆ្វេង​នៃ​តំបន់​ក្រឡា ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
4 | តារាង១ | លេខ​តារាង​​នៅ​ជ្រុង​ខាង​លើ​ឆ្វេង​នៃ​តំបន់​ក្រឡា ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
6 | ជួរ​ឈរ២ | លេខ​ជួរ​ឈរ​នៅ​ជ្រុង​ខាង​ក្រោម​ស្តាំ​នៃ​តំបន់​ក្រឡា ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
8 | ជួរ​ដេក២ | លេខ​ជួរ​ដេក​នៅ​ជ្រុង​ខាង​ក្រោម​ស្តាំ​នៃ​តំបន់​ក្រឡា លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
10 | តារាង២ | លេខ​តារាង​​នៅ​ជ្រុង​ខាង​ក្រោម​​ស្តាំ​​នៃ​តំបន់​ក្រឡា ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
12 | រាប់ | ចំនួន​ធាតុ​ខាង​ក្រោម ។ ក្រឡា​ទទេ​មិន​ត្រូវ​បាន​រាប់ ឬ​ហុច​ទេ ។
14 | ជួរ​ឈរ | លេខ​ជួរ​ឈរ​នៃ​ធាតុ ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
16 | ជួរ​ដេក | លេខ​ជួរ​ដេក​នៃ​ធាតុ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
18 | ថេប (Tab) | លេខ​តារាង​នៃ​ធាតុ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
20 | កំហុស | លេខ​កំហុស ដែល​តម្លៃ 0 ត្រូវ​បាន​កំណត់​ជា "គ្មាន​កំហុស" ។ បើ​ធាតុ​បាន​មក​ពី​ក្រឡា​រូបមន្ត​មួយ នោះ​តម្លៃ​កំហុស​នឹង​ត្រូវ​បាន​កំណត់​ដោយ​រូបមន្ត ។
22 | តម្លៃ | អថេរ IEEE 8 បៃ​នៃ​ប្រភេទ​ទ្វេ/ពិត
30 | ... | ធាតុ​បន្ទាប់

### អារេ​ខ្សែ​អក្សរ

តំបន់​ក្រឡា​មួយ​ដែល​មាន​តម្លៃ​នៃ​ប្រភេទ​ទិន្នន័យ អត្ថបទ ហើយ​ត្រូវ​បាន​ហុច​ជា​អារេ​ខ្សែ​អក្សរ​មួយ ។ អារេ​ខ្សែ​អក្សរ​មួយ​ក្នុង LibreOffice Calc ត្រូវ​បាន​​កំណត់​ដូច​ខាង​ក្រោម ៖

Offset | Name | Description
--- | --- | ---
0 | ជួរ​ឈរ១ | លេខ​ជួរ​ឈរ​នៅ​ជ្រុង​ខាង​លើ​ឆ្វេង​នៃ​តំបន់​ក្រឡា ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
2 | ជួរ​ដេក១ | លេខ​ជួរ​ដេក​​នៅ​ជ្រុង​ខាង​លើ​ឆ្វេង​នៃ​តំបន់​ក្រឡា ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
4 | តារាង១ | លេខ​តារាង​​នៅ​ជ្រុង​ខាង​លើ​ឆ្វេង​នៃ​តំបន់​ក្រឡា ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
6 | ជួរ​ឈរ២ | លេខ​ជួរ​ឈរ​នៅ​ជ្រុង​ខាង​ក្រោម​ស្តាំ​នៃ​តំបន់​ក្រឡា ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
8 | ជួរ​ដេក២ | លេខ​ជួរ​ដេក​នៅ​ជ្រុង​ខាង​ក្រោម​ស្តាំ​នៃ​តំបន់​ក្រឡា លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
10 | តារាង២ | លេខ​តារាង​​នៅ​ជ្រុង​ខាង​ក្រោម​​ស្តាំ​​នៃ​តំបន់​ក្រឡា ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
12 | រាប់ | ចំនួន​ធាតុ​ខាង​ក្រោម ។ ក្រឡា​ទទេ​មិន​ត្រូវ​បាន​រាប់ ឬ​ហុច​ទេ ។
14 | ជួរ​ឈរ | លេខ​ជួរ​ឈរ​នៃ​ធាតុ ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
16 | ជួរ​ដេក | លេខ​ជួរ​ដេក​នៃ​ធាតុ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
18 | ថេប (Tab) | លេខ​តារាង​នៃ​ធាតុ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
20 | កំហុស | លេខ​កំហុស ដែល​តម្លៃ 0 ត្រូវ​បាន​កំណត់​ជា "គ្មាន​កំហុស" ។ បើ​ធាតុ​បាន​មក​ពី​ក្រឡា​រូបមន្ត​មួយ នោះ​តម្លៃ​កំហុស​នឹង​ត្រូវ​បាន​កំណត់​ដោយ​រូបមន្ត ។
22 | Len | ប្រវែង​នៃ​ខ្សែ​អក្សរ​ខាង​ក្រោម រួម​ទាំង​បៃ​សូន្យ​ដែល​នៅ​ជិត ។ បើ​ប្រវែង​រួម​ទាំង​បៃ​សូន្យ​ដែល​នៅ​ជិត​ស្មើ​នឹង​តម្លៃ​សេស នោះ​បៃ​សូន្យ​ទីពីរ​ត្រូវ​បាន​បន្ថែម​ទៅ​ខ្សែ​អក្សរ ដូច្នេះ​ទទួល​បាន​តម្លៃ​គូ ។ ដូច្នេះ Len ​ត្រូវ​បាន​គណនា​ដោយ​ប្រើ ((StrLen+2)&~1) ។
24 | ខ្សែ​អក្សរ | ខ្សែ​អក្សរ​ដែល​មាន​បៃ​សូន្យ​នៅ​ជិត
24+Len | ... | ធាតុ​បន្ទាប់

### អារេ​ក្រឡា

អារេ​ក្រឡា​ត្រូវ​បាន​ប្រើ​សម្រាប់​ហៅ​តំបន់​ក្រឡា​ដែល​មាន​អត្ថបទ ព្រម​ទាំង​លេខ ។​ អារេ​ក្រឡា​មួយ​ក្នុង LibreOffice Calc ត្រូវ​បាន​កំណត់​ដូច​ខាង​ក្រោម ៖

Offset | Name | Description
--- | --- | ---
0 | ជួរ​ឈរ១ | លេខ​ជួរ​ឈរ​នៅ​ជ្រុង​ខាង​លើ​ឆ្វេង​នៃ​តំបន់​ក្រឡា ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
2 | ជួរ​ដេក១ | លេខ​ជួរ​ដេក​​នៅ​ជ្រុង​ខាង​លើ​ឆ្វេង​នៃ​តំបន់​ក្រឡា ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
4 | តារាង១ | លេខ​តារាង​​នៅ​ជ្រុង​ខាង​លើ​ឆ្វេង​នៃ​តំបន់​ក្រឡា ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
6 | ជួរ​ឈរ២ | លេខ​ជួរ​ឈរ​នៅ​ជ្រុង​ខាង​ក្រោម​ស្តាំ​នៃ​តំបន់​ក្រឡា ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
8 | ជួរ​ដេក២ | លេខ​ជួរ​ដេក​នៅ​ជ្រុង​ខាង​ក្រោម​ស្តាំ​នៃ​តំបន់​ក្រឡា លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
10 | តារាង២ | លេខ​តារាង​​នៅ​ជ្រុង​ខាង​ក្រោម​​ស្តាំ​​នៃ​តំបន់​ក្រឡា ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
12 | រាប់ | ចំនួន​ធាតុ​ខាង​ក្រោម ។ ក្រឡា​ទទេ​មិន​ត្រូវ​បាន​រាប់ ឬ​ហុច​ទេ ។
14 | ជួរ​ឈរ | លេខ​ជួរ​ឈរ​នៃ​ធាតុ ។ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
16 | ជួរ​ដេក | លេខ​ជួរ​ដេក​នៃ​ធាតុ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
18 | ថេប (Tab) | លេខ​តារាង​នៃ​ធាតុ លេខរៀង​ចាប់ផ្តើម​ពី 0 ។
20 | កំហុស | លេខ​កំហុស ដែល​តម្លៃ 0 ត្រូវ​បាន​កំណត់​ជា "គ្មាន​កំហុស" ។ បើ​ធាតុ​បាន​មក​ពី​ក្រឡា​រូបមន្ត​មួយ នោះ​តម្លៃ​កំហុស​នឹង​ត្រូវ​បាន​កំណត់​ដោយ​រូបមន្ត ។
22 | ប្រភេទ | ប្រភេទ​នៃ​មាតិកា​ក្រឡា 0 == ទ្វេ 1 == ខ្សែ​អក្សរ
24 | តម្លៃ ឬ Len | បើ​ប្រភេទ == 0 ៖ អថេរ IEEE 8 បៃ នៃ​ប្រភេទ ទ្វេ/​ពិត បើ​ ប្រភេទ == 1 ៖ ប្រវែង​នៃ​ខ្សែ​អក្សរ​​ខាង​ក្រោម រួម​ទាំង​បៃ​សូន្យ​ដែល​នៅ​ជិត ។ បើ​​ប្រវែង​រួម​មាន​បៃ​សូន្យ​ដែល​នៅ​ជិត​ស្មើ​នឹង​តម្លៃ​សេស​មួយ នោះ​បៃ​សូន្យ​ទីពីរ​ត្រូវ​បាន​បន្ថែម​ទៅ​ខ្សែ​អក្សរ ដូច្នេះ​ទទួល​បាន​តម្លៃ​គូ ។ ដូច្នេះ Len ត្រូវ​បាន​គណនា​ដោយ​ប្រើ ((StrLen+2)&~1) ។
26 បើ​ប្រភេទ==1 | ខ្សែ​អក្សរ | បើ ប្រភេទ == 1 ៖ ខ្សែ​អក្សរ​ដែល​មាន​បៃ​សូន្យ​នៅ​ជិត
32 ឬ 26+Len | ... | ធាតុ​បន្ទាប់