在固定宽度的文本文件中搜索


Search within a fixed width text file

考虑一个固定的

ID   TYPE      YEAR
1    Book      2000
2    Car       2007
3    Home      2005

是否有在列内搜索的方法?实际上,我们需要在每行的x到y字符中搜索,而跳过其他字符。例如,5 - 15用于搜索TYPE。我更喜欢在php中找到解决方案,但如果只可能在特定的语言中,那就可以了。

依次读取每行,并通过传递$offset参数在其中使用strpos进行搜索,以从您的列开始搜索。然后检查返回值,如果它实际上在另一列中找到了结果,则忽略"成功"搜索(知道目标列的宽度将其减少为整数比较)。

或者,您可以从每行substr目标列并仅在其中搜索,在这种情况下,您确实执行可能不必要的字符串操作,但另一方面,您减少了要搜索的字符串的长度(并且不需要检查结果是否在另一列中找到)。

站在你的立场上,在决定采用哪种方法之前,我会先对它进行一些基准测试。