问题描述
我试图在大型数据集上将每行的列宽设置为固定的“511”宽度。如果该行的列宽小于 511,那么我想在该行的末尾添加空格,直到它具有 511 列宽。目前,我遇到了很多列宽不规则的条目。例如,如果列宽是 450,即小于 511,那么我手动添加空间直到它有 511 宽度,如果列宽超过 511 那么我将删除空间直到它是 511。当前数据集有超过 100 万行,所以我想知道是否有更快的方法在每行的末尾添加“空格”。将不胜感激任何帮助。
Sample of irregular column width
解决方法
如果没有很多不规则的行(如果大多数行是 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
,然后从 宏 菜单中的 选择... 中选择此文件。最后,在宏菜单中选择运行 AutoSpace.jsee。