Editor_Join

按指定键列,用一个与 JOIN 操作类似的方法合并两个 CSV 文档,并创建一个新文档。你可以用该内联函数或直接发送 EE_JOIN 消息。

Editor_Join( HWND hwnd, UINT nFlags, LPCWSTR pszDocument1, LPCWSTR pszColumn1, LPCWSTR pszDocument2, LPCWSTR pszColumn2, LPCWSTR pszSelect, int* piDocument3 );

参数

hwnd

指定 EmEditor 视图或框架的窗口句柄。

nFlags

你能指定下列值的一个组合。

JOIN_FLAG_UNIQUE_KEY_1

在第一个文档中的指定列包含一个唯一键。

JOIN_FLAG_UNIQUE_KEY_2

在第二个文档中的指定列包含一个唯一键。

JOIN_FLAG_INCLUDE_ALL_1

第一个文档中的所有行都会被包括在输出中。输出文档将包含空的单元格如果第一个文档中的行没有匹配的结果。

JOIN_FLAG_INCLUDE_ALL_2

第二个文档中的所有行都会被包括在输出中。输出文档将包含空的单元格如果第二个文档中的行没有匹配的结果。

JOIN_FLAG_MATCH_CASE

匹配大小写。

JOIN_FLAG_SIMPLE_JOIN

合并两个文档而不比较键。如果指定了此标志,则会忽略 pszColumn1pszColumn2 参数。

JOIN_FLAG_IGNORE_HEADINGS_1

忽略第一个文档中的标题,以便将第一个文档中的标题保留在合并的文档中。

JOIN_FLAG_IGNORE_HEADINGS_2

忽略第二个文档中的标题。

JOIN_FLAG_CONTAIN

Key1 包含 Key2。

JOIN_FLAG_START_WITH

Key1 以 Key2 开始。

JOIN_FLAG_END_WITH

Key1 以 Key2 结尾。

JOIN_FLAG_MATCH_SPLIT_BOTH

两个拆分的字符串都匹配。

JOIN_FLAG_MATCH_SPLIT_ONE

Key1 匹配拆分的 Key2。

JOIN_FLAG_FUZZY

使用模糊匹配。 此标志不能与 JOIN_FLAG_END_WITH、JOIN_FLAG_MATCH_SPLIT_BOTH 或 JOIN_FLAG_MATCH_SPLIT_ONE 结合使用。此标志会使过程变慢。

JOIN_FLAG_SWAP

Key1 和 Key2 互换,如果还指定了 JOIN_FLAG_CONTAIN,JOIN_FLAG_START_WITH,或 JOIN_FLAG_END_WITH。

pszDocument1

指定字符串来识别第一个文档。这个值可以是文件名,文件名以及路径,或一个冒号 (:) 后跟当前群组中指定文档的索引号。例如,"filename.csv","C:\data\filename.csv" (如果是 JavaScript,"C:\\data\\filename.csv"),或 ":2"。

pszColumn1

指定字符串来识别第一个文档的键列。这个值可以是列的第一行或一个冒号 (:) 后跟指定列的索引号。例如,"first_name" 或 ":5"。

pszDocument2

指定字符串来识别第二个文档。这个值的格式与 pszDocument1 格式相同。

pszColumn2

指定字符串来识别第二个文档的键列。这个值的格式与 pszColumn1 格式相同。

pszSelect

指定字符串来选择要包括在输出文档中的列。例如,"file1.csv>column1,file2.csv>column2"。

piDocument3

这个字段将充满输出文档的索引,当函数返回时。如果这个值为 NULL,这个字段会被忽略。

返回值

返回值是新文档的行数。返回值为负数如果发生错误的话。如果发生错误,返回值是下列值之一:

E_DOCUMENT_1_NOT_FOUND

无法找到第一个文档。

E_DOCUMENT_2_NOT_FOUND

无法找到第二个文档。

E_COLUMN_1_NOT_FOUND

无法找到第一列。

E_COLUMN_2_NOT_FOUND

无法找到第二列。

E_SELECT_SYNTAX

选择的字符串中有语法错误。

E_SELECT_DOCUMENT_NOT_FOUND

无法在选择的字符串中找到指定的文档。

E_SELECT_COLUMN_NOT_FOUND

无法在选择的字符串中找到指定列。

E_DIFFERENT_CSV_MODE

不同的 CSV 模式。

E_NOT_MDI

必须启用 Tab。

E_WRITE_TEMP_FILE

临时文件写入错误。

E_ABORT

被用户中止。

E_FAIL

未指定的错误。

版本

支持 EmEditor 14.8 或之后的版本。