|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
petrav Копипастится и попадает в БД? Прикольно вы работаете. LOL. В этом нет никакого криминала. Табуляция вполне себе символ, никакой угрозы безопасности не несет. Вставить табуляцию копипастом элементарно благодаря браузерам. Пример: Выделяем табличку и давим Ctrl+C 1234 Вставляем что получилось Ctrl+V, а получился TSV Код: plaintext 1. 2.
Опубликовав это сообщение я сохранил табуляцию в БД сайта sql.ru :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 12:50 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
mayton crutchmaster пропущено... Ровно до тех пор, пока функционал парсера тебя устраивает и пока этот парсер доступен. Почему он станет недоступен? 6 тысяч CSV-парсеров с исходным кодом почти под все языки. Бери-нехочу. https://github.com/search?q=csv parser А хотя-бы и не было. Неужели сам бы не написал? Стандарт описан. Несложный. Вообще спор не стоит выеденного яйца. Нужно просто использовать качественную библиотеку и не париться. Давайте лучше поговорим про строки и Юникод. А лучше вообще разработаем свой класс строки. Ведь С++ это язык программирования созданный что бы писать свои классы строк. Я и название придумал: JaString. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 12:53 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
mayton 6 тысяч CSV-парсеров с исходным кодом почти под все языки. Бери-нехочу. Проблема как раз в продвинутости парсеров, они слишком много нарушений прощают. Пример вышеописанной проблемы с кавычкой. Сохрани текст ниже в файл CSV и открой его экселем Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 13:10 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
Dima T petrav Копипастится и попадает в БД? Прикольно вы работаете. LOL. В этом нет никакого криминала. Табуляция вполне себе символ, никакой угрозы безопасности не несет. Вставить табуляцию копипастом элементарно благодаря браузерам. Пример: Выделяем табличку и давим Ctrl+C 1234 Вставляем что получилось Ctrl+V, а получился TSV Код: plaintext 1. 2.
Опубликовав это сообщение я сохранил табуляцию в БД сайта sql.ru :) Криминала нет? А потом в БД данные не грузятся? Ну не знаю… Тут дело в том что в UI должен быть фильтр, аля белый список, который пропускает только то что можно. Если табы по смыслу поля данных недопустимы, то их там (в БД) быть не должно — хоть копипасть, хоть чё делай. Далее… Нужно использовать качественную библиотеку в которой исключены сбои из-за каких-то нюансов. Всё должно быть экранировано и т.д. Возможно она же (библиотека) проверяет корректность данных: говорим ей непечатных символов, кроме пробелов, быть не должно. И вот ещё что… Если ошибка только в одной строке, то тут возникает нюанс. В зависимости от того как построен парсер может случиться ситуация когда ошибка внешне станет незаметной если ошибка только в одной строке. False negative страшная вещь. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 13:12 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
petrav Криминала нет? А потом в БД данные не грузятся? Ну не знаю… Тут дело в том что в UI должен быть фильтр, аля белый список, который пропускает только то что можно. Если табы по смылу поля данных недопустимы, то их там (в БД) быть не должно — хоть копипасть, хоть чё делай. Если не путаю там учет в 1С идет. Собственно и криминала не было до тех пор как потребовалось выгрузить именно в TSV, в любой другой формат табуляция выгружается без проблем. petrav И вот ещё что… Если ошибка только в одной строке, то тут возникает нюанс. В зависимости от того как построен парсер может случиться ситуация когда ошибка внешне станет незаметной если ошибка только в одной строке. False negative страшная вещь. Ошибка будет незаметна. Лишняя табуляция сдвинула последующие поля в строке ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 13:19 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
petrav Далее… Нужно использовать качественную библиотеку в которой исключены сбои из-за каких-то нюансов. Всё должно быть экранировано и т.д. Возможно она же (библиотека) проверяет корректность данных: говорим ей непечатных символов, кроме пробелов, быть не должно. Теоретически да, а практически если у тебя десятки-сотни разных источников этих выгрузок, то ты просто устанешь долбить всех писателей чтобы писали правильно, плюнешь и будешь парсить лишь бы парсилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 13:25 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
Dima T mayton 6 тысяч CSV-парсеров с исходным кодом почти под все языки. Бери-нехочу. Проблема как раз в продвинутости парсеров, они слишком много нарушений прощают. Пример вышеописанной проблемы с кавычкой. Сохрани текст ниже в файл CSV и открой его экселем Код: plaintext 1. 2.
Это философия. Или старый принцип проектирования гетерогенных систем. Аналогичный текст я читал где-то в сетевых протоколах. https://tools.ietf.org/html/rfc4180 Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Вобщем writer/serializer должен быть максимально строг. А reader/parser/de-serializer - максимально толерантен к исходным данным. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 14:23 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
petrav Давайте лучше поговорим про строки и Юникод. А лучше вообще разработаем свой класс строки. Ведь С++ это язык программирования созданный что бы писать свои классы строк. Я и название придумал: JaString. Зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 14:29 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
смотрю в dbForge для MySql настройки выгрузка-копирование в CSV - хочешь - в кавычках все, хочешь - только текст хочешь - все поля без кавычек разделитель настраивается и все нормально работает надо понять что CSV должен быть настраиваемым, как загрузка так и выгрузка и TSV - частный случай CSV ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 14:41 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
ЕМНИП при импорте произвольных пользовательских данных в Excel - есть мастер импорта который позволяет указать различные границы колонок и сплиттеры. Есть даже вариант испорта fixed-column. Это тесно связано со старыми форматами dbms где records имели одинаковый бинарный размер. Щас такое уже не катит но лет 20 назад можно было взять dbBase/FoxPro датафайл. Отрезать ему голову и спокойно заимпортировать такой файл в Excel. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 14:50 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
mayton ЕМНИП при импорте произвольных пользовательских данных в Excel - есть мастер импорта который позволяет указать различные границы колонок и сплиттеры. Есть даже вариант испорта fixed-column. Это тесно связано со старыми форматами dbms где records имели одинаковый бинарный размер. Щас такое уже не катит но лет 20 назад можно было взять dbBase/FoxPro датафайл. Отрезать ему голову и спокойно заимпортировать такой файл в Excel. Записи в DBF фиксированного размера, а числа с датами хранятся в сериализованном виде. Хотя непонятно зачем это делать если эксель и так их открывает. Но нынче фокус может не пройти, т.к. добавились типы которые хранятся без сериализации (int, datetime) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 14:56 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
Ну или без dbf. Вот такие позиционные форматы. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 19:30 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
mayton, нынче json и строки в utf8 наше всё. Даже MS с этим согласен. Зачем старье ворошить? Его надо хоронить, и чем быстрей, тем лучше. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 20:55 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
Наше всё это православный XML и XML схемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 21:14 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
petrav Наше всё это православный XML и XML схемы. MS уже так не считает, это тоже старье ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 21:20 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
Dima T mayton, нынче json и строки в utf8 наше всё. Даже MS с этим согласен. Зачем старье ворошить? Его надо хоронить, и чем быстрей, тем лучше. (задумчиво) Если рассматривать json как способ экспорта или импорта данных - то скорее нет, чем да. При прочих условиях (есть выбор) я-бы выбирал лаконичный способ отдать данные. JSON (JavaScrip Object notation) создавался для сериализации браузерных объектов и транспорта их в веб-соединениях. И если у вас есть таблица в 8Гб в сыром виде (это близко к размеру в CSV) то ее представление в JSON может удвоить объем файла экспорта. Кто из нас готов согласиться с таким внезапным увеличением накладных расходов? И зачем? Все равно прогрузить в память такой файл (16 Гб) почти нереально. А если не грузить - то как делать запросы через JSonPath, JSonifier. Хотя для REST-сервисов он удобен. Как само-описательный. Все значения посылаемого месседжа - имеют внятные названия и их видно глазами в tcp-dump например. Даже кодер слабой квалификации более-менее сносно решает проблемы если ему показать проблемный request/response в этом формате. Но в Рест-сервисах речь-бы не шла о 8Гб. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 21:33 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
petrav Наше всё это православный XML и XML схемы. XML был смелым экспериментом в 2000х. У меня на эту тему было куплено несколько восторженных книг. Есть такая избитая фраза - "практика показала"... Вобщем показала что некоторые из предметных областей (XHTML, Dbms (Sedna), Oracle(XmlType)) провалились в части активного использования XML. Или не принесли ожидаемого эффекта. Например при выборе опции формата REST ответа - большая часть разработчиков и кастомеров выбирают Json вместо Xml. Это обычный прагматизм и бритва Оккама. Если задача решается вовлечением меньшего числа сущностей - то ее так и надо решать. Xml даже для разработчика сложен. Он имеет много уровней семантики. (Как например С++ имеет уровни макро-процессинга и шаблонизации) и разработчики НЕ готовы их ВСЕ использовать. А не готовы просто потому что эти уровни оказались не нужны. Например XSLT и стандартизация схемы. И если эти все уровни не задейстовать - тогда возникает вопрос - а зачем вам вообще Xml? Ради красивого слова? Или угловых скоб? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 21:45 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
mayton Xml даже для разработчика сложен. Он имеет много уровней семантики. (Как например С++ имеет уровни макро-процессинга и шаблонизации) и разработчики НЕ готовы их ВСЕ использовать. А не готовы просто потому что эти уровни оказались не нужны. Например XSLT и стандартизация схемы. И если эти все уровни не задейстовать - тогда возникает вопрос - а зачем вам вообще Xml? Ради красивого слова? Или угловых скоб? В случае сложных документов лично мне кажется, что XML гораздо более читабелен чем json. При наличии XML-схемы в редакторе гораздо (на порядок) легче писать XML документы благодаря автодополнению кода — Ctrl+Space и появляется меню с возможными элементами или допустимыми значениями атрибутов. Что-то мне подсказывает, что XML (даже без схем) вообще лучше поддаётся автоматической валидации по сравнению с json. Когда я работал в web я знал и XSLT, и Схемы, и XPath (и даже DTD). Проблем не было. XML схемы я вообще в метро выучил полистывая распечатанную документацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2021, 22:01 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
mayton JSON (JavaScrip Object notation) создавался для сериализации браузерных объектов и транспорта их в веб-соединениях. И если у вас есть таблица в 8Гб в сыром виде (это близко к размеру в CSV) то ее представление в JSON может удвоить объем файла экспорта. В запакованном виде они не сильно будут отличаться. Еще один неприятный момент CSV - отсутствие описания структуры данных. Прилетает такая выгрузка из 10-15 колонок и сиди гадай где что. Потом разнородные данные не сохранить в один файл CSV. А как правило надо выгрузить именно такие данные. Например при выгрузке накладной надо куда-то писать шапку. Сталкивался с тем что при небольшой шапке ее суют в тело, т.е. табличка становится такой Номер документа Дата КонтрагентТоварКоличество И хз что теперь меньше на диске займет. mayton Все равно прогрузить в память такой файл (16 Гб) почти нереально. Не надо его грузить целиком, читай последовательно. С большими json дела не имел, а с xml было дело, файлик 0.5 Гб быстро читается с помощью XmlReader Наверно и для json есть подобное. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2021, 07:59 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
mayton Xml даже для разработчика сложен. Он имеет много уровней семантики. (Как например С++ имеет уровни макро-процессинга и шаблонизации) и разработчики НЕ готовы их ВСЕ использовать. А не готовы просто потому что эти уровни оказались не нужны. Например XSLT и стандартизация схемы. И если эти все уровни не задейстовать - тогда возникает вопрос - а зачем вам вообще Xml? Ради красивого слова? Или угловых скоб? Кстати сказать, а наличие JSON Schema тебя не смущает? Странные у тебя рассуждения. PS: Json популярен не потому что XML плох, а потому что JavaScript — единственный язык программирования фронт-энда. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2021, 13:08 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
Может ли json описывать документы? Вот никогда такого не видел. Пример: Код: plaintext 1. 2. 3. 4.
Ну и как тут без XSLT... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2021, 13:21 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
petravJavaScript — единственный язык программирования фронт-энда.это в каком виде спорта?) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2021, 13:25 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
petrav mayton Xml даже для разработчика сложен. Он имеет много уровней семантики. (Как например С++ имеет уровни макро-процессинга и шаблонизации) и разработчики НЕ готовы их ВСЕ использовать. А не готовы просто потому что эти уровни оказались не нужны. Например XSLT и стандартизация схемы. И если эти все уровни не задейстовать - тогда возникает вопрос - а зачем вам вообще Xml? Ради красивого слова? Или угловых скоб? Кстати сказать, а наличие JSON Schema тебя не смущает? Странные у тебя рассуждения. PS: Json популярен не потому что XML плох, а потому что JavaScript — единственный язык программирования фронт-энда. Я пробовал Json-schema. К сожалению мне не удалось сделать проверки достаточно строгими. Тоесть у меня получилось проверять только те сущности которые были декларированы. А новые почему-то успешно проходил валидацию хотя и не должны-быть по идее. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2021, 13:31 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
Dima T Не надо его грузить целиком, читай последовательно. С большими json дела не имел, а с xml было дело, файлик 0.5 Гб быстро читается с помощью XmlReader Наверно и для json есть подобное. json это всё таки в первую очередь объект а уж во вторую - таблица. Поэтому если работать с ним на стандартных ЯП программирования веба (JavaScript/C#/Java/Node) то я готов спорить на виски что для отработки реквеста ... ну не знаю с JPointer нам придется прогрузить весь документ-объект в память. Вариант курсора (аля БД) скорее всего не сработает. Хотя и респонс может выглядеть как итератор например. Словом - это тема отдельного топика. Накладные расходы на JPointer при запросах к толстым документам. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2021, 13:35 |
|
Заменить запись в файл с txt на xlsx
|
|||
---|---|---|---|
#18+
Dima T mayton JSON (JavaScrip Object notation) создавался для сериализации браузерных объектов и транспорта их в веб-соединениях. И если у вас есть таблица в 8Гб в сыром виде (это близко к размеру в CSV) то ее представление в JSON может удвоить объем файла экспорта. В запакованном виде они не сильно будут отличаться. Еще один неприятный момент CSV - отсутствие описания структуры данных. Прилетает такая выгрузка из 10-15 колонок и сиди гадай где что. Да. Это проблема. Но внятные описания колонок можно сгенерировать лишь для небольшого подмножества таблиц с малым числом колонок. Я работал с дата-аналитикой где количество колонок было до 1000. И названия у них были такие типа FXC01.D2.M4 e.t.c. И была какая-то визуальная хронология. Тоесть следующая колонка могла быть инкрементом от предыдущей. И понимал такое имя - только data-analyst который работал с данными и мог сказать что - цена акции такой-то в таких-то единицах. Для таких баз отдельно создавалась мелкая базка которая называлась мета-информация и туда складывались детальные характеристики. Дескрипшен. Единицы. Иногда вместо этой базки мог быть хардкод в софте. Например сет классов или пропертей описывал эти колонки наподобие ORM. Хотя сам ОРМ не использовался но идея была похожа. Тоесть вобщем неинформативные названия реально существуют но XML не решает на 100%. По крайней мере я не видел провайдеров бизнес-информации которые лично решили публиковать сводки в XML только потому что там информативные поля. Скоре они выбирали CSV и полагались на мастерство и опыт тех людей для которых этот CSV был предназначен. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2021, 13:42 |
|
|
start [/forum/topic.php?fid=57&msg=40047593&tid=2017251]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
162ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 239ms |
total: | 508ms |
0 / 0 |