Исповедь системного администратора (многа букаф, мат)

Discussion in 'Off Topic' started by stalke, Aug 8, 2008.

  1. sharky

    sharky Well-Known Member

    Joined:
    Feb 9, 2000
    Messages:
    2,662
    Location:
    Prague, Czech Republic (Ex Mosсow, Ex Omsk, Russia
    Вань ты чего то уже заговариваться начал. При выгрузке реестра в текст не utf8, а UTF16LE. utf8 более всратая кодировка. В ней нельзя точно сказать сколько байтов займет нужный символ. от 1 до 6. А utf16 и utf32 имеют фиксированную ширину. Для ASCII довольно избыточно иметь 4 байта на символ, как и для языков тех стран в которых уже были компутеры, потому поначалу и сделали wchar_t в 2 байта. Память экономили.
     
    Last edited: Aug 30, 2022
  2. Sea

    Sea Well-Known Member

    Joined:
    Feb 9, 2001
    Messages:
    27,472
    Location:
    Ukraine, Kiev
    alt+1 = ☺

    ps: пожертвуй каким-то символом и замени его на нужный. Я правда, не занимался этим вопросом, хз как сделать. Или с раскладками поиграйся, вплоть до сделать свою.
     
  3. Sea

    Sea Well-Known Member

    Joined:
    Feb 9, 2001
    Messages:
    27,472
    Location:
    Ukraine, Kiev
    Да, я помню как ты от xml пылал аки доменная печь! То да, два лишних символа на поле жутчайший перерасход байтов... Но, я не понимаю, почему оно тебя волнует. У меня один софт прайсы перемалывает, то там тебе и xml, json, xls, xlsx и да, был csv но его выкинули нафиг так как в описании товаров попадаются и кавычки и запятые и еще фиг знает что от чего тот csv и вручную фиг распарсишь.
     
  4. rgreat

    rgreat FH Developer

    Joined:
    Jul 19, 2000
    Messages:
    42,049
    Location:
    Russia
    Правильный CSV, с escape символами надо уметь генерить и парсить.

    Если уметь - остальные форматы (кроме бинарника) по экономности выгрузки таблиц ему и в подметки не годятся.
     
  5. mcgru-

    mcgru- Well-Known Member

    Joined:
    Sep 21, 2000
    Messages:
    61,276
    Location:
    Tomsk, Russia
    ничего не заговариваюсь.
    я и говорю, что из реестра выгружается в чём-то двухбайтном. не уверен - wchar_t там или utf16le.
    просто раньше удивлялся, не особо акцентируясь. а теперь вот понятно стало с этими разъяснениями про то что раньше появилось - utf8 или wchar_t
     
  6. mcgru-

    mcgru- Well-Known Member

    Joined:
    Sep 21, 2000
    Messages:
    61,276
    Location:
    Tomsk, Russia
    Ты забыл от чего я "пылал".
    Там был апловский kext, написатый приблизительно в таком xml:
    <kext><param>PARAM1</param><value>VAL1</value> <param>PARAM2</param><value>VAL2</value> <param>PARAM3</param><value>VAL3</value> </kext>
    и менять местами теги, естественно, нельзя было.
    не удивлюсь, что там и пробелы лишние - тоже низзя.
    Я разорялся на предмет такого уёбищного использования возможностей XML - в стиле обычного текстового конфига, но нахера-то в xml-подобной обёртке.
    но самим аппловцам и программерам (rust'у например) было пофигу - "они просто юзали утилиту/либу - читающую и записывающую в kext".
    "они просто микроскопом забивали гвозди". а чо? вполне удобно же.

    А как ты в cvs будет сохранять поле, где нужно хранить кавычку? куотировать их все? а если там текст-диалог из какого-нить произведения? где сплошь кавычки?
    а вот "разделитель полей" вставлять в текстовое поле - не надо. или в ну очень редких случаях можно было б и закуотировать.
    вооо, об этом и говорю.
    а был бы спец.символ "разделитель полей" - очень много где стало бы жить сииильно проще.
     
  7. rgreat

    rgreat FH Developer

    Joined:
    Jul 19, 2000
    Messages:
    42,049
    Location:
    Russia
    Именно, и эскейпить саму кавычку в значениях.
    В качестве кавычки можно использовать другой символ. Малоиспользуемый.
    Если надо что-то необычное, я обычно использую символ |
     
  8. Sea

    Sea Well-Known Member

    Joined:
    Feb 9, 2001
    Messages:
    27,472
    Location:
    Ukraine, Kiev
    value1☺value2☺bla "bla|" bla☺12345
    value1☺value2☺bla "bla bla☺12345
    value1☺value2"☺bla bla bla☺12345
    нехай потом получатель иппется.
     
  9. rgreat

    rgreat FH Developer

    Joined:
    Jul 19, 2000
    Messages:
    42,049
    Location:
    Russia
    Парсить кастомные форматы руками - это интересное извращение.
    А программе пофигу какие там символы как делиметеры заданы.

    value1,value2,"bla ""bla|"" bla",12345
    value1,value2,"bla ""bla bla",12345
    value1,"value2""",bla bla bla,12345

    Все прекрасно открывается экселем.

    Даже вот такое извращение:
    Code:
    value1,value2,"bla
    ""bla|"", bla",12345
    value1,value2,"bla ""bla bla",12345
    value1,"value2""",bla bla bla,12345
    upload_2022-8-30_14-26-21.png

    А теперь выгрузи это все в xml,json или что еще и сравним размеры.
    Не, CSV по объемам только бинарные форматы могут забороть.
     
    Last edited: Aug 30, 2022
  10. soomnvR

    soomnvR Well-Known Member

    Joined:
    Feb 7, 2010
    Messages:
    9,931
    Location:
    somewhere :)
  11. Sea

    Sea Well-Known Member

    Joined:
    Feb 9, 2001
    Messages:
    27,472
    Location:
    Ukraine, Kiev
    Та кто ж спорит, что хороший формат если правильно записать. Хотя по инету, предпочитают гонять xml или json иногда пожатый gzip'ом.
     
  12. sharky

    sharky Well-Known Member

    Joined:
    Feb 9, 2000
    Messages:
    2,662
    Location:
    Prague, Czech Republic (Ex Mosсow, Ex Omsk, Russia
    utf8 потому и называется utf8 потому что кодируется в один байт. А Utf16 в два. Поэтому ты видишь "пробелы". А в utf8 для кириллицы будешь видеть кракозябры без пробелов. РІРѕС‚ такая РєРѕРґРёСЂРѕРІРєР°
     
    mcgru- likes this.
  13. rgreat

    rgreat FH Developer

    Joined:
    Jul 19, 2000
    Messages:
    42,049
    Location:
    Russia
    UTF16 мне больше нравится тем что его и случайно не выйдет спутать с ASCII.

    Особенно если это UCS-2, где нету извращений с 4 байтовыми символами, в связи с чем размер текста и в символах и в байтах заранее известен.

    Но мечты мечты... (утирает скупую слезу по ламповому Win-1251).
     
    Last edited: Aug 30, 2022
    mcgru- likes this.
  14. mcgru-

    mcgru- Well-Known Member

    Joined:
    Sep 21, 2000
    Messages:
    61,276
    Location:
    Tomsk, Russia
    " | " уже используется как pipe/пайпа.
    в ячейках таблицы можно располагать и шелловские команды

    а вот располагать в ячейках символы, обозначающие "разделитель полей" - вот не надо. по рукам бить. только в заквоченном виде.

    как вот только отображать "разделитель полей" в, например, браузере - не знаю.
    ну хоть бы и палками. только при копирвании - чтобы копировался не пайпа, а именно "разделитель полей/колонок".
     
  15. Sea

    Sea Well-Known Member

    Joined:
    Feb 9, 2001
    Messages:
    27,472
    Location:
    Ukraine, Kiev
    Сделай на джаваскрипте, что бы при клике по таблице на сайте в клипбоард вносился csv.
     
  16. Stardust

    Stardust Well-Known Member

    Joined:
    Jun 12, 2000
    Messages:
    22,995
    Location:
    Novosibirsk, Russia
    У нас с внешними аудиторами соглашение использовать разделителем символ Æ
    Пока нигде ни с чем не пересеклось (за много лет уже).
    До этого разные символы периодически встречались в наименованиях чего-либо и ломали обмен.
     
    Flk and mcgru- like this.
  17. rgreat

    rgreat FH Developer

    Joined:
    Jul 19, 2000
    Messages:
    42,049
    Location:
    Russia
    Неправильный это подход, рассчитывать на то что некий символ прям никогда не попадется. Ненадежный.

    Но дело ваше, да.
     
    sharky likes this.
  18. Stardust

    Stardust Well-Known Member

    Joined:
    Jun 12, 2000
    Messages:
    22,995
    Location:
    Novosibirsk, Russia
    Зато простой :)
    Они ни с чем кроме плоских таблиц не работают, хорошо хоть не в эксель грузят, MS Access используют :D
    Ну а мне проще из сиквела сохранить с настроенным разделителем да и всё.
     
  19. mcgru-

    mcgru- Well-Known Member

    Joined:
    Sep 21, 2000
    Messages:
    61,276
    Location:
    Tomsk, Russia
    я в линухе символ "bell" использую иногда
    который 0x07
    https://ru.wikipedia.org/wiki/Управляющие_символы

    сколько лет оно уже нахрен не нужно? лет 30? 40?
    но, блять, надо сначала UTF-256 придумать и в стандарт внести, а потом уже озаботиться о нужности всякого говна мамонта в ASCII
     
  20. mcgru-

    mcgru- Well-Known Member

    Joined:
    Sep 21, 2000
    Messages:
    61,276
    Location:
    Tomsk, Russia
    мне начальничек сказанул как-то раз в дискуссионном запале - "а вот ты обрабатываешь список файлов по-строчно, а это неправильно! а вдруг мне захочется имя файла записать с символом \n ?"
    захотелось въебать. тому долбоёбу, кто повадится сделать такое :)
    и, сссука, сменить ему имя и фамилию в паспорте на слова, содержащие null, который \0 в ascii. чтоп, пидарасу, жилось краще...
    ну натуральное же вредительство!
     
    Stardust likes this.