Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / C++ Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6   вперед  Ctrl      все
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
petrav
пропущено...

Кстати сказать, а наличие JSON Schema тебя не смущает? Странные у тебя рассуждения.

PS: Json популярен не потому что XML плох, а потому что JavaScript — единственный язык
программирования фронт-энда.

Я пробовал Json-schema. К сожалению мне не удалось сделать проверки достаточно строгими.
Тоесть у меня получилось проверять только те сущности которые были декларированы. А новые
почему-то успешно проходил валидацию хотя и не должны-быть по идее.

XML схема тоже не сказать что бы больно навороченный язык. Но неизвестные элементы и
атрибуты он не пропускает.
22 фев 21, 13:58    [22284736]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51015
Щас не хватает времени. Но я до пятницы проверю. И если это правда - то создам топик на тему
Xml-Schema vs Json-Schema. Who is stricter?
22 фев 21, 14:25    [22284749]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
Dima T

Не надо его грузить целиком, читай последовательно. С большими json дела не имел, а с xml было дело, файлик 0.5 Гб быстро читается с помощью XmlReader Наверно и для json есть подобное.

json это всё таки в первую очередь объект а уж во вторую - таблица. Поэтому если работать с ним
на стандартных ЯП программирования веба (JavaScript/C#/Java/Node) то я готов спорить на виски
что для отработки реквеста ... ну не знаю с JPointer нам придется прогрузить весь документ-объект
в память. Вариант курсора (аля БД) скорее всего не сработает. Хотя и респонс может выглядеть
как итератор например. Словом - это тема отдельного топика. Накладные расходы на JPointer
при запросах к толстым документам.

Отсутствует json SAX парсер для быстрого чтения огромных документов? Ну вот видите, уже нашли
третий недостаток json по сравнению с XML.
22 фев 21, 20:56    [22284903]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51015
petrav
mayton
пропущено...

json это всё таки в первую очередь объект а уж во вторую - таблица. Поэтому если работать с ним
на стандартных ЯП программирования веба (JavaScript/C#/Java/Node) то я готов спорить на виски
что для отработки реквеста ... ну не знаю с JPointer нам придется прогрузить весь документ-объект
в память. Вариант курсора (аля БД) скорее всего не сработает. Хотя и респонс может выглядеть
как итератор например. Словом - это тема отдельного топика. Накладные расходы на JPointer
при запросах к толстым документам.

Отсутствует json SAX парсер для быстрого чтения огромных документов? Ну вот видите, уже нашли
третий недостаток json по сравнению с XML.

Почему? JSon readers существуют. И я думаю что их много. Просто CSV регламентирует
некую однородность записей а JSon - в общем случае - нет.
22 фев 21, 21:07    [22284907]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
petrav
пропущено...

Отсутствует json SAX парсер для быстрого чтения огромных документов? Ну вот видите, уже нашли
третий недостаток json по сравнению с XML.

Почему? JSon readers существуют. И я думаю что их много. Просто CSV регламентирует
некую однородность записей а JSon - в общем случае - нет.

Ты чуть выше сказал, что придётся грузить сразу объект в 16 Гб. Из этого я сделал такое предположение.
22 фев 21, 21:18    [22284915]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51015
petrav
mayton
пропущено...

Почему? JSon readers существуют. И я думаю что их много. Просто CSV регламентирует
некую однородность записей а JSon - в общем случае - нет.

Ты чуть выше сказал, что придётся грузить сразу объект в 16 Гб. Из этого я сделал такое предположение.

Да. Все верно. Я-же написал - если "делать запросы" к содержимому. Типа SELECT узлы WHERE какое-то свойство
e.t.c.
22 фев 21, 21:28    [22284922]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 7634
petrav,
>
PS: Json популярен не потому что XML плох, а потому что JavaScript — единственный язык
программирования фронт-энда.
==
Стразу 3 ошибки
- xml не плох, он многословен
- на фронте нет json, это формат передачи данных
- сегодня уже он шарпе, java и REST API а не JS.
Не нужно их противопоставить вообще.
23 фев 21, 09:56    [22285031]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51015
JSon в общем случае не является заменой XML, т.к. в последнем заложено больше семантики, больше смыслов.

Любые попытки заменить XML на Json сегодня сродни попыткам например заменить реляционные DBMS на NoSQL
системы. В частных случаях это срабатывает но в общем - мы теряем. Теряем возможности и смыслы которые были
заложены создателями изначально.
23 фев 21, 11:21    [22285056]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Alex_Ustinov
Member

Откуда: Nickel
Сообщений: 3721
вы упорядочьте сначала, зачем создавался формат, как позиционировался и как используется.

начнем (далее все может быть не верно)
xml создавался как формат обмена данными вне зависимости от бд и структуры.
json - для хранения небольших данных
23 фев 21, 11:42    [22285062]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2241
mayton
Ну и зачем ты это написал?

Это пример того, что когда доходит до дела вместо цсв парсера имеем какие-то костыли на коленке, а не полноценный парсер. Если уж костылить, костылили бы лучше тсв.
23 фев 21, 12:54    [22285086]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2241
mayton
Почему он станет недоступен?

У автора этого движка спроси, почему он не поставил пром.парсер. И у авторов екселя заодно, почему там не делали импорт как в либре.
6 тысяч CSV-парсеров

Сколько из них вменяемые, а сколько - лабы и стрёмные велики без колёс?
mayton
А хотя-бы и не было. Неужели сам бы не написал?

Чтобы сделать парсер, надо реализовать посимвольное вычитывание данных, что заметно геморнее, чем делать split, которого нету только у сишников и отсталых.

Сообщение было отредактировано: 23 фев 21, 12:52
23 фев 21, 12:58    [22285088]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51015
Как в данной теме смешались стандартизация и человекочитаемость? Это две разные мои
мысли, которые зачем-то кто-то спутал.

Ради бога. Деайте тсв. Развеж я вас остановлю?
23 фев 21, 12:59    [22285089]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51015
crutchmaster

Чтобы сделать парсер, надо реализовать посимвольное вычитывание данных, что заметно геморнее, чем делать split, которого нету только у сишников и отсталых.

Это ... даже несеръезно. При чем здесь split? И при чем здесь какие-то "осталые" сишники?
23 фев 21, 13:06    [22285093]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2241
mayton
(подозрительная ссылка!) https://github.com/search?q=csv parser

Смотрим.
https://github.com/ben-strasser/fast-cpp-csv-parser/blob/master/csv.h
Оопота на 1к строк. Ну да, мог бы и сам на коленке сделать.

https://github.com/mholt/PapaParse/blob/master/papaparse.js
Тормозная херня на 2к строк, где делают csv += _delimiter;

Ну да, чо бы не написать парсер на коленке. Вместо
str.split("\n").map(row=>row.split("\t"))

И развернуть escape, для случая, когда файл влазит в память.
23 фев 21, 13:09    [22285096]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2241
mayton
И при чем здесь какие-то "осталые" сишники?

Я не говорил, что сишники отсталые.
23 фев 21, 13:10    [22285098]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2241
mayton
(задумчиво)

Если рассматривать json как способ экспорта или импорта данных - то скорее нет, чем да.

Если речь идёт про таблицы, то не "скорее", а решительно нет, не о чём тут думать.
23 фев 21, 13:17    [22285105]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2241
mayton
Ради бога. Деайте тсв. Развеж я вас остановлю?

Ну вдруг у тебя есть весомые аргументы против и я что-то упускаю из вида.
23 фев 21, 13:20    [22285107]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51015
(руки вверх)

Всё ты победил! Делай на сплитах! Мне просто эта тема не интересна.
23 фев 21, 13:23    [22285110]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
mayton
JSon в общем случае не является заменой XML, т.к. в последнем заложено больше семантики, больше смыслов.

Если тезисно: каких смыслов больше в XML по сравнению с JSON?
4 мар 21, 10:42    [22289464]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51015
petrav
mayton
JSon в общем случае не является заменой XML, т.к. в последнем заложено больше семантики, больше смыслов.

Если тезисно: каких смыслов больше в XML по сравнению с JSON?

Архитектурно, на этапе создания стандарта в XML были заложены namespaces.
Это позволяло в 1 документ включать разные расширения таким образом что твой парсер
может обрабатывать только свои (известные теги) а неизвестные просто пропускать.
В Json такое сделать невозможно. Или как-то можно но наверное с потерей смыслов.
Namespaces имеют полезное применение в Java frameworks в части конфигураций.

Трансформация документов. Ты можешь создать XML-содержимое которое обработается
браузером и к нему применится XSLT скрипт который адаптирует контент к HTML со стилями
например. Эта фича редко применялась. В основном на back-end, хотя IE 100% ее поддерживал
в 2000 годах точно. Сам скрипт должен быть доступен по http:// или file:// чтобы двигатель
трансформации его увидел. По аналогии с #include в C++.
Тоесть - никакого JavaScript а просто трансформация языком очень высокого уровня. На
эту тему у нас даже есть подфорум https://www.sql.ru/forum/xml . Я немнжко не в теме
т.к. последний раз работал с этим очень давно и многое поменялось. Но вот что я помню - то рассказал.

Обработка инструкций. Сейчас насколько я помню эта фича отключается из-за безопасности. Но вкратце,
в хедер XML можно включать команды операционки например. И они по идее должны исполнятся в момент
открытия файла. Как это полезно исопльзовать - ХЗ но стандарт есть.

Синтаксические удобства для публикации комментариев и блоков не-структурированного содержания (CDATA).

XML также взят на вооружение в науке. В частности под него разрабатывались различные схемы описания
доменов в химии и астрономии (щас пруфы не могу найти к сожалению но где-то в стандартах XMLSchemas).

Это всё - смыслы.

Тоесть если подытожить - то XML является наиболее строгим описательным способом для данных и знаний.
Для JSon повторить подобное наверное тоже возможно - но придется придумывать НАД-стандарты сверху
над простым и примитивным JSon. В рамках одной рабочей группы или проекта это возможно, но если
топить за интеграцию между проектами и между кастомерами - то лучше наверное XML. Так проще. И меньше
будет технических споров и недо-пониманий на этапе простого согласования формата RPC например.
4 мар 21, 11:18    [22289492]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52913

mayton
твой парсер может обрабатывать только свои (известные теги) а неизвестные просто пропускать.
В Json такое сделать невозможно.

Что мешает пропускать неизвестные значения в JSON?

Posted via ActualForum NNTP Server 1.5

4 мар 21, 13:49    [22289584]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51015
Dimitry Sibiryakov

mayton
твой парсер может обрабатывать только свои (известные теги) а неизвестные просто пропускать.
В Json такое сделать невозможно.

Что мешает пропускать неизвестные значения в JSON?

Давай подумаем, как это будет с точки зрения парсера. Может быть я и не прав. Пускай брейнштормит шторм.

Сообщение было отредактировано: 4 мар 21, 13:52
4 мар 21, 13:59    [22289595]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
petrav
Member

Откуда:
Сообщений: 2861
Dimitry Sibiryakov

mayton
твой парсер может обрабатывать только свои (известные теги) а неизвестные просто пропускать.
В Json такое сделать невозможно.

Что мешает пропускать неизвестные значения в JSON?

Эээ... это в XML как в С++. Две функции readFile() находятся в разных неймспейсах. И ты видишь только свой
неймспейс. Если разные неймсейсы в XML совпадают по названию, то это тоже решается. В заголовке XML
описываются названия NS и их URL, которые и являются их (NS) глобальными идентификаторами. Как тут:

namespace myStd = std;
4 мар 21, 14:00    [22289598]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52913

mayton
как это будет с точки зрения парсера.

Прочитал название значения, не смог распознать название - пропустил всё до конца значения.

Точно так же в XML: прочитал открывающий тэг, не смог его опознать - пропустил всё до
закрывающего тэга.

Где проблема?

Posted via ActualForum NNTP Server 1.5

4 мар 21, 14:07    [22289605]     Ответить | Цитировать Сообщить модератору
 Re: Заменить запись в файл с txt на xlsx  [new]
mayton
Member

Откуда: loopback
Сообщений: 51015
Dimitry Sibiryakov

mayton
как это будет с точки зрения парсера.

Прочитал название значения, не смог распознать название - пропустил всё до конца значения.

Точно так же в XML: прочитал открывающий тэг, не смог его опознать - пропустил всё до
закрывающего тэга.

Где проблема?

Нет декларативности. В случае с явным указанием namespace - читающий (допустим это человек) может
в документе глазами увидеть доменную модель которая доступна для интерпретации.

В случае хардкодом этой логики в тело XML/Json парсера - эта информация для читающего неизветна. И ему надо
будет консультироваться с L3 например чтобы понять почему тег <credit:amount> или "credit_amount" не виден в системе.

Сообщение было отредактировано: 4 мар 21, 14:06
4 мар 21, 14:13    [22289613]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6   вперед  Ctrl      все
Все форумы / C++ Ответить