有没有人见过退格分隔的平面文件?我的要求是解析这样的文件,但我不能将退格字符放入文件中以检查是否能够检测到它。退格分隔的平面文件
回答
分割不应该比使用任何其他分隔符更难。毕竟,这只是另一个角色。在Python,例如:
>>> x = "apples\bbanana\bcoconut\bthese are delicious!"
>>> x.split('\b')
['apples', 'banana', 'coconut', 'these are delicious!']
大多数语言使用\b
作为退格键,转义字符。如果你没有,你还可以包含退格本身的ASCII控制代码,它是\ x08。
退格怎么样?我相信退格实际上会删除它之前的字符。以下字符串是以退格分隔的字符串的示例: 苹果/ bbananas/bcoconut – Thunderhashy 2009-12-31 00:19:54
Backspace是所谓的控制字符。你是对的,它不是一个可打印的字符;它只是您的文件用于分隔值的一个魔术值。更多关于控制字符的地方:http://en.wikipedia.org/wiki/Control_character – 2009-12-31 00:22:47
我通过链接。看起来“\ b”是一个控制字符,不可打印。但在你的例子“apples \ bbananas \ bcoconut”中,我可以看到“\ b”,我也可以打印它。 – Thunderhashy 2009-12-31 00:34:25
我从来没有见过一个,但一些编辑器允许你通过按下例如一个退格字符。先按Ctrl-V。
您可以编写一个脚本,将退格(\0x008
)的ASCII字符代码附加到文件中。
你能帮助我用这样的脚本吗? – Thunderhashy 2009-12-31 00:17:38
你想写什么语言? – SLaks 2009-12-31 00:18:16
我没有安装任何脚本语言。我可以通过java来完成吗? – Thunderhashy 2009-12-31 00:21:11
这是一个C程序,它将生成一个用于测试的退格分隔文件(用换行符分隔不同的行)。通过在任何一个文件名,或将其写入标准输出(我选C,因为你没有提到的平台;大多数人有一个可用的C编译器):
#include <stdio.h>
int main(int argc, char **argv) {
FILE *outfile;
if (argc < 2)
outfile = stdout;
else
outfile = fopen(argv[1], "w");
fprintf(outfile, "this\bis\nbackspace\bdelimited\n");
fclose(outfile);
return 0;
}
的same string literal syntax在Java中应该工作;我会让你写的程序的其余部分:
"this\bis\nbackspace\bdelimited\n"
Thanks.Is有可能在Java中?我使用java – Thunderhashy 2009-12-31 00:23:26
是的,它可能在Java中。但我现在真的不想用Java编写,而应该可以翻译该程序。相同的字符串文字语法应该在Java中工作:''this \ bis \ nbackspace \ bdelimited \ n“' – 2009-12-31 00:26:19
我能够通过java写入文件。我使用了下面的代码片段: FileOutputStream out = new FileOutputStream(“C:\\ myfile.txt”); PrintStream p = new PrintStream(out); p.println(“This \ bis \ bwritten \ bto \ ba \ bfile”); 现在,当我在记事本打开该文件,我可以看到: Thisiswrittentoafile(这里是我在这里不能键入单词之间盒符号) 但是,如果我这样做,从运行cmd shell类型的myfile.txt我可以看到: Thiiwrittetfile 正如我们所看到的每个单词的最后一个字母已被删除。是不是令人惊讶?一些数据正在丢失? – Thunderhashy 2009-12-31 01:13:45
如果使用的是Windows,你可以通过Ctrl + Backspace键插入一个退格到记事本中。
谢谢,这真的很有帮助。 – Thunderhashy 2009-12-31 00:52:52
我试过了。但是,这看起来不同于在java中写入文件并使用“\ b”作为退格。不同的是,当我打开这样的文件,使用Windows cmd shell类型命令输出来像 Thiiwrittetfile⌂jahs 其中j之前的字符实际上是使用Ctrl + Backspace输入和字母s在“this”被删除,因为后s ,我已经把\ b通过java代码。 – Thunderhashy 2009-12-31 01:22:52
Ctrl + Backspace实际上并不创建退格字符。我无法使用\ b解析这样的字符 – Thunderhashy 2009-12-31 01:51:15
我也建议得到像0xED(Mac)的十六进制编辑器。查看和编辑包含不常用字符的文件非常有用。有了它,您只需键入“08”即可将退格字符插入到文件中。
- 1. 逗号分隔的平面文件源
- 2. EDI文件,以管道分隔的平面文件
- 3. 没有分隔符的固定长度平面文件
- 4. 制表符分隔的平面文件到SQL
- 5. 如何在bash中订购空间分隔的平面文件?
- 6. 平面文件XML分组
- 7. unicode平面文件找不到CRLF行分隔符
- 8. 在平面文件连接中设置多个行分隔符
- 9. bcp和退格(^ H)分隔符
- 10. 将平面文件行分割为多个平面文件SSIS
- 11. 如何格式化不以分隔符分隔的值文件?
- 12. SAS无法读取下面的空格分隔文件
- 13. Awk空格分隔的文件内容
- 14. 计算空格分隔文件的列
- 15. 平面文件的数据分析
- 16. 平面文件拆分中的Biztalk 2010
- 17. 用Python创建空格分隔文件
- 18. 用空格分隔符解析文件
- 19. 插入文字的水平分隔线
- 20. SDN平面中的隔离
- 21. SSIS:如何处理平面文件源中的换页分隔符?
- 22. 将平面制表符分隔的文件转换为Json嵌套结构
- 23. SSIS格式输入从平面文件
- 24. 阅读分层平面文件到SSIS
- 25. 使用Java分割平面文件
- 26. HDFS文件中的分隔符与Hive表格的分隔符值不匹配
- 27. CSV文件分隔
- 28. SQL Server导出到平面文件有意外的行间隔
- 29. 如何在SSIS中使用空格作为分隔符插入平面文件中的数据?
- 30. 阅读标签和换行符分隔(多维)平面文件数据库
你在用什么语言? – Gregory 2009-12-31 00:38:08
我正在使用sqlserver和java。我的要求是解析退格分隔的文件。最初我试图通过使用bcp实用程序解析它,但无法做到这一点。所以现在我试图通过java解析它 – Thunderhashy 2009-12-31 00:55:24