0

我正在尝试在大型数据集上将每行的列宽设置为固定的“511”宽度。如果该行的列宽小于 511,那么我想在行尾添加空间,直到它具有 511 列宽。目前,我遇到了很多列宽不规则的条目。例如,如果列宽是 450,即小于 511,那么我手动添加空间,直到它具有 511 宽度,如果列宽超过 511,那么我将删除空间,直到它是 511。当前数据集有超过 100 万行,所以我想知道是否有更快的方法在每行末尾添加“空格”。将不胜感激任何帮助。

不规则列宽示例

4

1 回答 1

0

如果不规则行不多(如果大多数行是 511 个字符长),则可以使用此宏。否则,此宏可能需要很长时间才能完成。

COLUMN = 511 + 1;  // add 1 to the width
Redraw = false;
nLines = document.GetLines();
for( y = 1; y <= nLines; ++y ) {
    document.selection.SetActivePoint( eePosLogical, 1, y );
    document.selection.EndOfLine( false, eeLineLogical );
    x = document.selection.GetActivePointX( eePosLogical );
    if( x < COLUMN ) {
        s = "";
        for( i = COLUMN - x ; i > 0; --i ) {
            s += " ";
        }
        document.selection.Text = s;
    }
    else if( x > COLUMN ) {
        document.selection.SetActivePoint( eePosLogical, COLUMN, y, true );
        document.selection.Delete();
    }
}

要运行它,请将此代码另存为,例如,AutoSpace.jsee然后从菜单中的选择...中选择此文件。最后,在Macros菜单中选择Run AutoSpace.jsee 。

于 2021-02-12T00:30:36.760 回答