Как преобразовать многострочный текстовый файл в однострочный текстовый файл - PullRequest
0 голосов
/ 21 мая 2019

Во-первых, я посмотрел на это и другие места в Интернете, но я не могу найти то, что ищу.

У меня есть система сигнализации / контроля доступа, которая принимает одну непрерывную / непрерывную строку XML в качестве файла конфигурации. Там сотни строк, если вы откроете его в текстовом редакторе, таком как блокнот. НО - на самом деле все в одной строке - нигде нет возврата каретки.

Теперь я хочу добавить пользователей в список (более 200 пользователей), и я нашел место в XML, где мне нужно вставить все детали. У меня есть таблица Excel с именами, разрешениями и т. Д., И я преобразовал ее в CSV. Теперь мне нужно удалить каждый возврат каретки из текста, прежде чем вставить его в файл конфигурации.

Я не использую какое-либо программное обеспечение типа сервера, C # или Javascript или любое другое. Все, что у меня есть, это Excel и Блокнот. Я не против разбора CSV с помощью программы или инструмента, но он должен дать мне один непрерывный вывод строки из моего многострочного CSV

Есть ли другой метод, кроме ручного просмотра файла и нажатия кнопки удаления при каждом возврате каретки?

EDIT

Ожидаемый вывод (образец 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>

Мне нужно получить две сотни строк и объединить их в одну строку. Уф!

1 Ответ

1 голос
/ 21 мая 2019

Используйте найти и заменить. alt-010 и / или alt-012 найдут перевод строки и возврат каретки. Заменить ничем или пробелом.

...