我已在此处上传了此附件:https://files.fm/u/uqm4marg 该文件是使用PHP生成的。 \ t用于插入制表符空间。它可以查找整个文件,但是INR0564 D和INR0564 C之间的选项卡空间。此选项卡空间只有一个空格,而其他选项卡空间有4个,如667722553331和INR0564之间。
所以问题是当\ t用于在字符之间给出一个标签空间时,为什么在不同的地方有不同的间距。
答案 0 :(得分:1)
您的编辑器配置为将光标前进到下一个制表位。如果制表符宽度配置为4个字符,则制表位在线偏移0,4,8,a.s.o处。应该可以理解的是,偏移11上的水平标签将前进到偏移12,而不是15(11 + 4)。它不是一个固定的宽度,但必须与固定挡块有关。
答案 1 :(得分:1)
如果您在代码中给出了正确的\ t,那么Tabs Spaces与之无关。它已正确生成。 “行为”选项卡与编辑器类型不同。
对于Instance,如果使用以下代码进行生成
$myfile = fopen(getcwd()."/newfile.txt", "w") or die("Unable to open
file!");
$txt = "BATBALL88026613\n
667722553331\tINR0564D\tSeptember\t2.00Salary\n
051122334432\tINR0564C\tSeptember\t1.00Salary\n
056401112233\tINR0564C\tSeptember\t1.00Salary";
fwrite($myfile, $txt);
fclose($myfile);
你尝试在NOTEPAD和NOTEPAD ++中打开它会有所不同。 NOTEPAD ++中不存在这种不一致。
答案 2 :(得分:0)
tab
character不插入空格。它是由编辑器解释的单个字符。
purpose of the tab character用于帮助以表格格式(即表格格式)写入数据。由于行已由文本行提供,因此tab
字符有助于创建列。
编辑器将tab
字符解释为将光标向右移动而不是一个位置(与space
字符一样),但直到它到达下一个制表符停止。
在计算机软件中,制表器停止通常设置在每个8或4列。这意味着列1
,9
,17
a.s.o.或者1
,5
,9
,13
等。在您的图片中(以及您问题中的说明),似乎"尺寸"你正在使用的标签是4
列(这是现在最常用的值)。
因为tab
字符将光标发送到固定位置,所以它的感知大小"大小"不固定,它取决于tab
字符之前的光标列。
在您的图片中,第一列数据有12个字符(它显示在编辑器中的列1-12
上)。然后,tab
字符将光标发送到列17
上的下一个制表工具。下一个值(INR0564
,7
字符)显示在17-23
列中。下一个tab
字符为"较短",它仅涵盖1
列;它将光标发送到显示25
的列D
。下一个使光标跳转到列29
(3
列),其中不显示任何内容。然后还有另一个tab
跨越4
个字符,直到33
值开始的下一个制表符(在2.0SEp Salary
列中)。
列,制表符和数据如下所示:
1 5 9 13 17 21 21 25 29 33 ...
v v v v v v v v v v ...
056665554531 INR0564 D 2.0Sep Salary
. | .|. | |
+-->| >|+->+-->|
在上图中,点(.
)标记每列数据后光标的位置,管道(|
)标记tab
字符后的位置显示。 "箭头"在最后一行描述了由于tab
个字符而光标跳过多个列的方式,以便到达下一个制表符。