【问题标题】:How to convert a multi-line text file into a single line text file如何将多行文本文件转换为单行文本文件
【发布时间】:2019-10-07 18:30:31
【问题描述】:

首先,我查看了this,以及网络上的其他地方,但我真的找不到我要找的东西。

我有一个警报/访问控制系统,它将单个、连续/连续的 xml 行作为配置文件。如果您在记事本等文本编辑器中打开它,就会有数百条“行”。但是 - 实际上都是一行 - 任何地方都没有回车。

现在,我想在列表中添加用户(有超过 200 个用户),并且我在 XML 中找到了需要插入所有详细信息的位置。我有一个包含名称、权限等的 Excel 电子表格,我已将其转换为 CSV。现在我需要从文本中删除每个回车符,然后再将其粘贴到配置文件中。

我没有使用任何服务器类型的软件,C# 或 Javascript 等。我只有 Excel 和记事本。我不介意用程序或工具解析 CSV,但它必须从我的多行 CSV 中为我提供一个连续的单行输出

除了手动浏览文件并在每个回车符上点击删除之外,还有其他方法吗?

编辑

预期输出(从记事本复制的 XML 示例):

<user id="1"><name>Bevan</name><pin>xxxx</pin><tag>xxxxxxxx</tag><type><opt id="kbdortag">Keypad or Tag</opt></type><partns><pn id="1" /><pn id="2" /></partns><access><opt id="awarm" /><opt id="awdis" /><opt id="stdis" /><opt id="egrs" /><opt id="view" /></access><priv><opt id="own" /><opt id="otr" /><opt id="all" /><opt id="phn" /><opt id="clk" /><opt id="dtmf" /><opt id="lrn" /><opt id="cbk" /></priv><misc /><tzs /><kps><kp id="1" /><kp id="2" /><kp id="3" /><kp id="4" /><kp id="5" /><kp id="6" /><kp id="7" /><kp id="8" /><kp id="9" /><kp id="10" /><kp id="11" /><kp id="12" /><kp id="13" /><kp id="14" /><kp id="15" /><kp id="16" /><kp id="17" /><kp id="18" /><kp id="19" /><kp id="20" /><kp id="21" /><kp id="22" /><kp id="23" /><kp id="24" /><kp id="25" /><kp id="26" /><kp id="27" /><kp id="28" /><kp id="29" /><kp id="30" /><kp id="31" /><kp id="32" /></kps><opon><op id="1" /><op id="2" /><op id="3" /><op id="4" /><op id="5" /><op id="6" /><op id="7" /><op id="8" /><op id="9" /><op id="10" /><op id="11" /><op id="12" /><op id="13" /><op id="14" /><op id="15" /><op id="16" /><op id="17" /><op id="18" /><op id="19" /><op id="20" /><op id="21" /><op id="22" /><op id="23" /><op id="24" /><op id="25" /><op id="26" /><op id="27" /><op id="28" /><op id="29" /><op id="30" /><op id="31" /><op id="32" /></opon><opoff><op id="1" /><op id="2" /><op id="3" /><op id="4" /><op id="5" /><op id="6" /><op id="7" /><op id="8" /><op id="9" /><op id="10" /><op id="11" /><op id="12" /><op id="13" /><op id="14" /><op id="15" /><op id="16" /><op id="17" /><op id="18" /><op id="19" /><op id="20" /><op id="21" /><op id="22" /><op id="23" /><op id="24" /><op id="25" /><op id="26" /><op id="27" /><op id="28" /><op id="29" /><op id="30" /><op id="31" /><op id="32" /></opoff><usage>255</usage><startdate /><enddate /><starttime>0:00</starttime><endtime>23:59</endtime><tzd /><ag>1</ag></user><user id="2"><name>Fred Dagg</name><pin></pin><tag>xxxxxxxxx</tag><type><opt id="tag">Prox Tag</opt></type><partns><pn id="1" /><pn id="2" /></partns><access><opt id="awarm" /><opt id="awdis" /><opt id="stdis" /><opt id="egrs" /></access><priv /><misc /><tzs /><kps><kp id="1" /><kp id="2" /><kp id="3" /><kp id="4" /><kp id="5" /><kp id="6" /><kp id="7" /><kp id="8" /><kp id="9" /><kp id="10" /><kp id="11" /><kp id="12" /><kp id="13" /><kp id="14" /><kp id="15" /><kp id="16" /><kp id="17" /><kp id="18" /><kp id="19" /><kp id="20" /><kp id="21" /><kp id="22" /><kp id="23" /><kp id="24" /><kp id="25" /><kp id="26" /><kp id="27" /><kp id="28" /><kp id="29" /><kp id="30" /><kp id="31" /><kp id="32" /></kps><opon><op id="8" /><op id="11" /><op id="13" /><op id="14" /><op id="15" /><op id="16" /></opon><opoff><op id="13" /></opoff><usage>255</usage><startdate /><enddate /><starttime>0:00</starttime><endtime>0:00</endtime><tzd /><ag>0</ag></user>

如果我尝试用 excel 制作这个文件,我当然会用完列!

从 csv 中,我得到:

<user id="1"><name>Bevan</name><pin>xxxx</pin><tag>xxxxxxxx</tag><type><opt id="kbdortag">Keypad or Tag</opt></type><partns><pn id="1" /><pn id="2" /></partns><access><opt id="awarm" /><opt id="awdis" /><opt id="stdis" /><opt id="egrs" /><opt id="view" /></access><priv><opt id="own" /><opt id="otr" /><opt id="all" /><opt id="phn" /><opt id="clk" /><opt id="dtmf" /><opt id="lrn" /><opt id="cbk" /></priv><misc /><tzs /><kps><kp id="1" /><kp id="2" /><kp id="3" /><kp id="4" /><kp id="5" /><kp id="6" /><kp id="7" /><kp id="8" /><kp id="9" /><kp id="10" /><kp id="11" /><kp id="12" /><kp id="13" /><kp id="14" /><kp id="15" /><kp id="16" /><kp id="17" /><kp id="18" /><kp id="19" /><kp id="20" /><kp id="21" /><kp id="22" /><kp id="23" /><kp id="24" /><kp id="25" /><kp id="26" /><kp id="27" /><kp id="28" /><kp id="29" /><kp id="30" /><kp id="31" /><kp id="32" /></kps><opon><op id="1" /><op id="2" /><op id="3" /><op id="4" /><op id="5" /><op id="6" /><op id="7" /><op id="8" /><op id="9" /><op id="10" /><op id="11" /><op id="12" /><op id="13" /><op id="14" /><op id="15" /><op id="16" /><op id="17" /><op id="18" /><op id="19" /><op id="20" /><op id="21" /><op id="22" /><op id="23" /><op id="24" /><op id="25" /><op id="26" /><op id="27" /><op id="28" /><op id="29" /><op id="30" /><op id="31" /><op id="32" /></opon><opoff><op id="1" /><op id="2" /><op id="3" /><op id="4" /><op id="5" /><op id="6" /><op id="7" /><op id="8" /><op id="9" /><op id="10" /><op id="11" /><op id="12" /><op id="13" /><op id="14" /><op id="15" /><op id="16" /><op id="17" /><op id="18" /><op id="19" /><op id="20" /><op id="21" /><op id="22" /><op id="23" /><op id="24" /><op id="25" /><op id="26" /><op id="27" /><op id="28" /><op id="29" /><op id="30" /><op id="31" /><op id="32" /></opoff><usage>255</usage><startdate /><enddate /><starttime>0:00</starttime><endtime>23:59</endtime><tzd /><ag>1</ag></user>
<user id="2"><name>Fred</name><pin></pin><tag>xxxxxxxxx</tag><type><opt id="tag">Prox Tag</opt></type><partns><pn id="1" /><pn id="2" /></partns><access><opt id="awarm" /><opt id="awdis" /><opt id="stdis" /><opt id="egrs" /></access><priv /><misc /><tzs /><kps><kp id="1" /><kp id="2" /><kp id="3" /><kp id="4" /><kp id="5" /><kp id="6" /><kp id="7" /><kp id="8" /><kp id="9" /><kp id="10" /><kp id="11" /><kp id="12" /><kp id="13" /><kp id="14" /><kp id="15" /><kp id="16" /><kp id="17" /><kp id="18" /><kp id="19" /><kp id="20" /><kp id="21" /><kp id="22" /><kp id="23" /><kp id="24" /><kp id="25" /><kp id="26" /><kp id="27" /><kp id="28" /><kp id="29" /><kp id="30" /><kp id="31" /><kp id="32" /></kps><opon><op id="8" /><op id="11" /><op id="13" /><op id="14" /><op id="15" /><op id="16" /></opon><opoff><op id="13" /></opoff><usage>255</usage><startdate /><enddate /><starttime>0:00</starttime><endtime>0:00</endtime><tzd /><ag>0</ag></user>

我需要得到两百行,并将它们合并为一行。呼!

【问题讨论】:

  • 能否请您发布一个数据示例?你得到的输入和预期的输出会很有帮助
  • 为什么不直接使用Find and Replace
  • 首先,您所谓的 csv 文件不是 csv,而是纯文本文件。 Excel 带有一种非常好的宏语言,称为 VBA,它实际上是一个几乎功能齐全的 MS Visual Basic。我目前手头没有 Excel,但使用 Excel 宏读取一个文本文件并写入另一个文本文件应该很容易。
  • @Bevan,您的预期输出为 2846 个字符长,但您的输入,与 user1 相关的字符为 1894,与 user2 相关的字符为 947。1894 + 947 = 2841。两者之间有 5 个字符的差异您的预期输出和输入。应该是一样的吧?还。不能只连接单元格吗?
  • alt-010alt-012 或两者兼有。数字需要在数字键盘上输入。

标签: excel xml csv file-conversion


【解决方案1】:

使用查找和替换。 alt-010 和/或alt-012 将找到换行符和回车符。替换为空或空格。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 2012-06-22
    • 1970-01-01
    • 2011-08-28
    • 1970-01-01
    相关资源
    最近更新 更多