Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

​Элементарная задачка - XML, добавление

1904  1 2 3 4 5 все
MrSanders коренной житель01.10.21 11:37
NEW 01.10.21 11:37 
в ответ Murr 30.09.21 19:37
А что именно ты собираешься искать? смущ

Я? Ничего. Это ты что-то искать должен. Ты же что-то куда-то вставляешь. А куда именно вставляешь - не знаешь.

Значит что? Значит ты должен найти место куда вставлять. Для поиска этого места в 10-и гиговом XML файле тебе в худшем случае (если это место будет в конце файла) придётся прочитать весь файл.

А теперь начинай юлить "я имела в виду не это, я не это имела в виду".

#41 
MrSanders коренной житель01.10.21 11:40
NEW 01.10.21 11:40 
в ответ Murr 30.09.21 19:32

Хе-хе... аккурат на это - пофиг дважды.

Когда докопаешься до решения - поймешь. смущ

Я ж говорю - садись, два. Правильный ответ был бы "а я exFAT использовать собираюсь".

#42 
Murr патриот01.10.21 15:09
Murr
NEW 01.10.21 15:09 
в ответ MrSanders 01.10.21 11:37

А куда именно вставляешь - не знаешь.

-----

Кто тебе это сказал? смущ

Я назвал время - 0.3мс/вставка - по результату фактического тестирования - оно тебе хоть что-нибудь говорит?

Если поможет - оно не будет сильно менятся с ростом размера файла... какие-нибудь 0.02 мс... система больше задержать может...


придётся прочитать весь файл

-----

Зачем?

Уже сейчас ясно, что успеть поднять 10 гиг с диска за отводимое время не получится - ни документом, ни сахом, ни риадом - канал чтения 6 гб/с мах...

Начинай говорить, что надо решить задачу по второму варианту - т.е, найти ДокументЭлемент, потом позиционироваться примерно в конец и искать начало закрывающего тега... И сразу - второй вариант тоже идет в помойку, хотя и может уложится по времени в 20 мс...


Правильный ответ был бы

-----

Не был бы, а уже дан - пофиг дважды.

Фат берется по единственной причине - избавится от контроля прав доступа.

Я знаю, что под виндой есть возможность заблокировать этот контроль для определенных файлов под НТФС, но, увы, не умею этого делать.

А ограничения на размер могут быть любыми - как ты и говорил - будет ограничение в мегабайт - напишем 10К инклюдов... безум


П.С. "Сними погоны - стань обезьяном" (с) Мурр, сегодня. спок


#43 
MrSanders коренной житель01.10.21 15:35
NEW 01.10.21 15:35 
в ответ Murr 01.10.21 15:09

придётся прочитать весь файл

-----

Зачем?

Уже сейчас ясно, что успеть поднять 10 гиг с диска за отводимое время не получится - ни документом, ни сахом, ни риадом - канал чтения 6 гб/с мах...

Что и подводит к мысли что задачу в том виде, как они сформулирована (вставка в произвольное место xml фала), решить невозможно. Отсюда вывод: очередной "муркин высер".

Учись формулировать задания.

Подсказка из зала: попробуй написать, а как именно ты хочешь задавать место вставки в XML? "Вставь <a>bbb</a> на 8-ю строчку"? Или "Вставь abc как значение элемента /document/chapter[@number=1]" или как?

#44 
alex445 свой человек01.10.21 16:19
NEW 01.10.21 16:19 
в ответ Murr 01.10.21 15:09

На собесах подобные же задачки даёте?

#45 
Murr патриот01.10.21 17:15
Murr
NEW 01.10.21 17:15 
в ответ MrSanders 01.10.21 15:35

а как именно ты хочешь задавать место вставки в XML?

-----

А подумать?

Ты же, блин, инженер. Подойди к задаче с инженерной позиции - что есть, что тормозит, как устранить? - и все решится за пару минут.

#46 
Murr патриот01.10.21 17:25
Murr
NEW 01.10.21 17:25 
в ответ alex445 01.10.21 16:19

На собесах подобные же задачки даёте?

-----

На собесе - нет - бессмысленно, ибо задача не на знание определенных вещей.

Мог бы и не спрашивать - тебе на нее дали 2 часа - на собесе столько времени на тебя тратить никто не будет.

А вот в качестве проверки навыков - да, вполне годится.

Ты, кстати, завалил два момента - общие инженерные навыки и умение работать с документацией.

Думаю, что дав пару тестов на сообразительность получу полную картинку.

И она сильно не в твою пользу будет.

Думай, работай над собой.

#47 
Murr патриот01.10.21 17:30
Murr
NEW 01.10.21 17:30 
в ответ MrSanders 01.10.21 15:35

решить невозможно

-----

0.3 мс/вставка смущ


попробуй написать, а как именно ты хочешь задавать место вставки в ХМЛ?

-----

??? - повторюсь - 0.3 мс/вставка

Это - по факту - с определением всех необходимых моментов - данные в файле, документ валиден... улыб

#48 
MrSanders коренной житель01.10.21 19:15
NEW 01.10.21 19:15 
в ответ Murr 01.10.21 17:15

а как именно ты хочешь задавать место вставки в XML?

-----

А подумать?

Что значит "а подумать"? Мне самому себе придумать задачу и её решить? Откуда я знаю, что тебе надо? Может ты тупо добавляешь всё к концу, переписывая последний закрывающий тег.

#49 
Murr патриот01.10.21 19:19
Murr
NEW 01.10.21 19:19 
в ответ MrSanders 01.10.21 19:15

Может ты тупо добавляешь всё к концу, переписывая последний закрывающий тег.

-----

Это решение номер два. Оно идет в мусорник... смущ

#50 
alex445 свой человек01.10.21 19:44
NEW 01.10.21 19:44 
в ответ Murr 01.10.21 17:25, Последний раз изменено 01.10.21 19:44 (alex445)
На собесах подобные же задачки даёте?
-----
На собесе - нет - бессмысленно, ибо задача не на знание определенных вещей.
Мог бы и не спрашивать - тебе на нее дали 2 часа - на собесе столько времени на тебя тратить никто не будет.
А вот в качестве проверки навыков - да, вполне годится.
Ты, кстати, завалил два момента - общие инженерные навыки и умение работать с документацией.
Думаю, что дав пару тестов на сообразительность получу полную картинку.
И она сильно не в твою пользу будет.
Думай, работай над собой.

Смысл? Все ваши закидоны не помогли вам набрать нормальных, а не "обезьян".

#51 
Murr патриот01.10.21 19:50
Murr
NEW 01.10.21 19:50 
в ответ alex445 01.10.21 19:44

Смысл?

-----

Со временем - поймешь...

#52 
Срыв покровов патриот01.10.21 20:53
01.10.21 20:53 
в ответ alex445 01.10.21 19:44
Смысл? Все ваши закидоны не помогли вам набрать нормальных, а не "обезьян".

мотивация - стать такой же рокзвездой как Мур

Чтобы под старость лет разгребать говны мамонта.

#53 
schizo коренной житель01.10.21 23:28
schizo
NEW 01.10.21 23:28 
в ответ Срыв покровов 01.10.21 20:53

я вот думаю: эксэмэль на 10 Гб - это же ад программиста. за что он туда попал

Храни Вас Г-дь!
#54 
Murr патриот01.10.21 23:48
Murr
NEW 01.10.21 23:48 
в ответ schizo 01.10.21 23:28

за что он туда попал

-----

Господа ХТМЛщики, когда Я их спросил вам как - порезать на единицы обработки или одним куском.

Ты не поверишь - вместо того чтобы ограничится необходимым они пожелали ВСЕ в куче...

10 Гиг там не было, но под 700 мб - имелось...

#55 
alex445 свой человек02.10.21 02:37
NEW 02.10.21 02:37 
в ответ Murr 01.10.21 23:48, Последний раз изменено 02.10.21 02:42 (alex445)
Господа ХТМЛщики, когда Я их спросил вам как - порезать на единицы обработки или одним куском.
Ты не поверишь - вместо того чтобы ограничится необходимым они пожелали ВСЕ в куче...
10 Гиг там не было, но под 700 мб - имелось...

Ну вот видите. Оказывается, у вас не одним файлом ваши 10 ГБ, а вы порезали. И потом в один маленький кусочек свои добавления делаете. И поди заранее знаете, в какой из кусочков добавлять надо.


ХТМЛщики работают с DOM. А кто им нормальный DOM создаст, а не в лучшем случае слепок местного участка разметки, когда всё кусками разбросано? Если файл так уж постоянно нужен, то проще всё в оперативке держать, загружая раз только при старте системы. Ну сколько займёт создание DOM из 700 МБ файла? Гигабайт 16, или даже 32? Цена вопроса даже сейчас, после взлёта цен на оперативку - 70-150 евро.

#56 
alex445 свой человек02.10.21 02:43
NEW 02.10.21 02:43 
в ответ alex445 02.10.21 02:37

А вообще, у вас странные какие-то вводные. XML в десятки ГБ, HTML под 1 ГБ. Хранить данные в БД и постранично выводить?

#57 
Программист коренной житель03.10.21 19:05
NEW 03.10.21 19:05 
в ответ MrSanders 01.10.21 19:15
Что значит "а подумать"? Мне самому себе придумать задачу и её решить? Откуда я знаю, что тебе надо? Может ты тупо добавляешь всё к концу, переписывая последний закрывающий тег.

Мне тут пришла светлая до опупения мысль - надо XML представить в виде файлов и папок :D

<SomeNode>
  <SomeOtherNode someAtt="bla-bla" >bla-bla-bla</SomeOtherNode>
  <SomeCollection>
    <SomeItem>Item 1<SomeItem/>
    <SomeItem>Item 2<SomeItem/>
    <SomeItem>Item 3<SomeItem/>
  </SomeCollection>
</SomeNode>


Все это безобразие можно замэпить на файловую систему:

..\
  SomeNode\
     SomoeOtherNode\
        attributes.txt
        value.txt
     SomeCollection\
        SomeItem.1\
          value.txt      
        SomeItem.2\
          value.txt      
        SomeItem.3\
          value.txt      

Это правда не совсем XML, да и похер :D Зато можно быстро вставить что угодно и куда угодно :D

#58 
alex445 свой человек03.10.21 20:06
NEW 03.10.21 20:06 
в ответ Программист 03.10.21 19:05, Последний раз изменено 03.10.21 20:11 (alex445)

Проще в БД загнать. В современных вроде есть какие штуки для поддержки иерархических данных.


А как вы потом этот XML собирать будете? Вам нужено либо кастомный data provider городить для такой сериализации или десериализации, либо прожку писать, которая будет всё это делать. Ну и для вставок и прочих обработок всё равно нужно где-то держать схему этого XML или файловой структуры, чтобы знать, куда вставлять. Или будете схему каждый раз при вставке воссоздавать из структуры каталогов? А тогда уложитесь в 20 мс?


Вообще, решение, в котором если и можно добиться 20 мс на добавление чего-то куда-то, то всё остальное принесено в жертву.

#59 
MrSanders коренной житель03.10.21 21:33
NEW 03.10.21 21:33 
в ответ Программист 03.10.21 19:05
Мне тут пришла светлая до опупения мысль - надо XML представить в виде файлов и папок :D

Ага. Или ещё какой индекс. Структуру 10-и гигового xml в файлы... NTFS охренеет сразу. Она с кучей мелких файлов прям ну совсем никак. Потом охренеет винда до 10ки. Из-за ограничения длины полного имени файла на 260 символов.10-ка поживёт подольше, она после какого-то билда 32к символов поддерживает.

Ну и опять же - остаётся загадкой куда ж вставлять-то охота. По файловой системе искать файлики тоже времени стоит немало.


В общем сплошные загадки. Не смешно и не интересно уже :)

#60 
1 2 3 4 5 все