Re[22]: Как в одну строку кода прочитать содержимое файла в
От: Kluev  
Дата: 08.01.24 14:33
Оценка:
Здравствуйте, rg45, Вы писали:

R>Здравствуйте, Kluev, Вы писали:


R>>>У меня язык уже устал повторять, что это НЕ функция общего применения.


K>>А вот и НИНУЖНО подьехало. За этим НИНУЖНО на самом деле скрывается невозможность сделать нормально на существующей никуда ни годной базе.


R>Я не знаю, что там и куда у тебя подъехало, но об этом говорится всю дорогу и делается акцент на преимуществах частного решения перед общим.


ЦПП идет третьим путем. вместо частных решений или общих в нем внедряют кривые.
Re[20]: Как в одну строку кода прочитать содержимое файла в
От: · Великобритания  
Дата: 08.01.24 14:34
Оценка:
Здравствуйте, rg45, Вы писали:

R>·>Зависит от того какой ты код имеешь в виду. { std::istreambuf_iterator<uint8_t>(input), {} } работает вроде нормально, но неэффективно, т.к. реаллокации и копирования.

R>Для очень большого круга задач, этой эффективности — выше крыши. А при необходимости(!) улучшить быстродействие, это делается очень легко. Мы это обсуждали, чего мы опять по кругу бегаем?
Может и легко, но ты не осилил.

R>·>А твои попытки с вычислением размера файлов — багодром, либо фигню возвращает, либо пустоту.


Ты вопрос "не заметил": так что твоя функция вернёт если флешку выдернуть в момент чтения?

R>·>Ну это мы снова возвращаемся к теме конкуретного доступа к файлу? Так вы сначала выясните, как работает в этих условиях ваша ReadAllBytes. А то у меня в печатление, что у вас требования к аналого существенно выше, чем к оригиналу.

R>Ну, считает лишь часть файла, сколько успеет. А кто сказал, что это не желаемое поведение? У меня язык уже устал повторять, что это НЕ функция общего применения. Это иллюстрация того, что функция общего применения нафиг не нужна.
Нежелаемое поведение — возвращать хвост нулей.

R>·>Выполнить работу Комитета? Можно, но я на плюсах уж лет 10 не писал.

R>А, ну понятно. С тем же успехом можно критиковать природу за то, что плохо сделала все живое.
Образец кода, как надо делать — я показал, в jdk. Код в шарпе тоже так себе, кстати. Переписать это на C++ — я могу взяться, если руки дойдут, но это явно не однострочник получится. И какой мне с этого профит?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[12]: Как в одну строку кода прочитать содержимое файла в м
От: Kluev  
Дата: 08.01.24 14:36
Оценка:
Здравствуйте, B0FEE664, Вы писали:

K>> а на новое умишки не хватает.

BFE>Kluev, если вы так же богаты, как автор фразы "640 КБ должно хватить всем", то никаких проблем для вас профинансировать разработку стандарта на проекты. К чему тут все эти ваши стенания?

А что комитет разве собирает деньги? ИМХО он действует как собака на сене. Сам не делает и другим не дает.
Re[20]: Как в одну строку кода прочитать содержимое файла в
От: · Великобритания  
Дата: 08.01.24 14:41
Оценка:
Здравствуйте, rg45, Вы писали:

R>·>Это не я докапывался. Я докапывался лишь к обработке ошибок и нестандартных ситуаций.

R>Ну ОК, приму во внимание. В то же время, я не вижу, чтоб ты где-то выражал ему свое несогласие.
Лень, не хочу раздувать дискуссию.

R>·>Вот поэтому это то, что должен сделать коммитет.

R>Да когда комитет так задолжал-то?
Когда взялся коммитетить. The major original (as well as current) design goals were to allow me to write maximally efficient systems’ code and control complexity, to write elegant and efficient code, to provide direct access to hardware and zero-overhead abstraction.

R>·>Т.к. даже такие специалисты с многолетним опытом стажем С++ как rg45 это не могут осилить.

R>Ну это уже твои домыслы. Я разве где-то кичился своим опытом и стажем? Наоборот, если ты почитаешь обсуждение, ты увидишь, что местами я использую аргументацию типа "это сугубо мой косяк, а не свойство С++".
Я не про это. А про тонкости работы с файлами, конкурентностью и внимание ко всяким corner cases. С одной стороны ты заявляешь "делается очень легко", а все попытки с косяками получаются.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[21]: Как в одну строку кода прочитать содержимое файла в
От: rg45 СССР  
Дата: 08.01.24 14:43
Оценка:
Здравствуйте, ·, Вы писали:

·>Может и легко, но ты не осилил.


В смысле "не осилил"? К этом варианту
Автор: rg45
Дата: 06.01 01:24
какие претензии?

·>Ты вопрос "не заметил": так что твоя функция вернёт если флешку выдернуть в момент чтения?


В смысле "не заметил"? Вот здесь
Автор: rg45
Дата: 08.01 17:17
я ответил. Ты читаешь вообще, или только пишешь?

·>Образец кода, как надо делать — я показал, в jdk.


Кому надо-то? Ты снова показал какое-то ОБЩЕЕ решение, которое, если хорошенько разобраться нифига не общее, а базируется на каких-то частных допущениях.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[24]: Как в одну строку кода прочитать содержимое файла в м
От: Kluev  
Дата: 08.01.24 14:43
Оценка: -1
Здравствуйте, rg45, Вы писали:

R>Здравствуйте, Kluev, Вы писали:



K>>Абсолютно разумный и оправданный подход.


R>Нет, полное говно.


На 32х битах и больших файлах твой говнокод рыгнет с UB. В то время как шарп кинет штатный exception с вменяемым сообщением об ошибке, одинаковый на всех платформах.
Как думаешь что выберет любой нормальный программист, непредсказуемо работающее говно или абслолютно предсказуемый везде работающий код?
Re[19]: Как в одну строку кода прочитать содержимое файла в
От: B0FEE664  
Дата: 08.01.24 14:47
Оценка:
Здравствуйте, ·, Вы писали:

BFE>>·>А "std::time" тоже бесполезный, кстати?

BFE>>Как стандарт — нормально, а вот из-за имплантаций нас скоро будет ждать БадаБум.
·>Не понял мысль.
2038-01-19

BFE>>·>И? По-моему это отвечает на твой вопрос "Каким образом имплементация операционной системы может оказаться в стандарте языка?".

BFE>>И это абстрактная прокладка позволяет адаптировать стандартный код под любую операционную систему. Таким образом сама операционная система гвоздями к стандарту не прибита.
·>Угу. Ты сам на свой вопрос ответил.
Разумеется. Мой ответ я и так знал. Для меня (имплементация != абстракция), поэтому readAllBytes не нужна.

BFE>>Причём тут size? Разве Files.newByteChannel(path) не бросит исключение на такие файлы? Или в Java можно создавать SeekableByteChannel для файлов без произвольного доступа?

·>Да, вроде, можно. По крайней мере этот код /proc/self хорошо читает.
А последовательный порт?

BFE>>·>А кто-то обещал красивый код?

BFE>>Да. При создании авторы Java обещали, что в Java всё будет красиво, не как в C++.
·>В том смысле, что весь кошмар и ужас запрятан внутре авторами Java, а снаружи просто readAllBytes. Так и есть в данном случае.
Нет, обещали архитектурно красивый, безопасный и вездесущий, приемлемо быстрый язык, а не вот такое вот.

BFE>>·>Код должен быть эффективный и надёжный в первую очередь.

BFE>>Код падающий по исключению не надёжный.
·>С чего это?
Потому, что падающий код не надёжный.

BFE>>Нет. Читаемый файл должен влезать в рамки заданные программистом, а не внутренним ограничениям.

·>Ну на некоторых системах size_t — 32 бита и всё очень даже внутренне ограниченно.
Да. И?

BFE>>Вот, пожалуйста, полюбуйтесь на практические результаты: здесь (About 313,000 results)

·>Ээээ... И? Не каждый файл можно загрузить в память? А чё в плюсах можно, да?
Если памяти достаточно, то — да.

BFE>>·>Нет. Для огромных файлов есть mmf и byte buffers. Читать их в память всё равно не надо.

BFE>>Я с этого и начал. Читать их в память всё равно не надо.
·>_Большие_ файлы — не надо. Обычного размера файлы — надо. Ты правда будешь mmf-ить какой-нибудь там /proc/self, да?!
(Однажды у меня была задача делать MemoryMappedFile для небольших файлов, чтобы подменить содержимое без изменения самого файла. Экзотика, конечно.)
Отвечая на вопрос повторюсь:
Хотите ReadAllBytes() — это можно, но только если добавить ограничение на размер файла: ReadAllBytes(nMaxFileSize).
И каждый день — без права на ошибку...
Re[21]: Как в одну строку кода прочитать содержимое файла в
От: rg45 СССР  
Дата: 08.01.24 14:48
Оценка:
Здравствуйте, ·, Вы писали:

·>Лень, не хочу раздувать дискуссию.


О как! А так и нескажешь, по тому как ты ведешь дискуссию со мной.

·>Когда взялся коммитетить. The major original (as well as current) design goals were to allow me to write maximally efficient systems’ code and control complexity, to write elegant and efficient code, to provide direct access to hardware and zero-overhead abstraction.


·>Я не про это. А про тонкости работы с файлами, конкурентностью и внимание ко всяким corner cases. С одной стороны ты заявляешь "делается очень легко", а все попытки с косяками получаются.


Когда я это говорил, я не имел ввиду ОБЩИЙ случай. А наоборот, моя мысль как раз и была о том, что каждый частный случай значительно проще реализуется, чем общий, а вдобавок еще и лучше удовлетворяет требованиям.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[22]: Как в одну строку кода прочитать содержимое файла в
От: · Великобритания  
Дата: 08.01.24 14:50
Оценка:
Здравствуйте, rg45, Вы писали:

R>·>Может и легко, но ты не осилил.

R>В смысле "не осилил"? К этом варианту
Автор: rg45
Дата: 06.01 01:24
какие претензии?

Хвост нулей и пустое содержимое для /proc/self.

R>·>Ты вопрос "не заметил": так что твоя функция вернёт если флешку выдернуть в момент чтения?

R>В смысле "не заметил"? Вот здесь
Автор: rg45
Дата: 08.01 17:17
я ответил. Ты читаешь вообще, или только пишешь?

Ого, я даже не понял, что ты это на мой вопрос ответил так! В смысле скачать "сколько успеет"? А в хвосте нули?! Это бред. Нельзя так делать, ты рискуешь тихой потерей данных. Взяли файл, прочитали "успешно", обработали, записали сломанный результат и сообщили об "успехе" пользователю. По нормальному надо репортить ошибку чтения.

R>·>Образец кода, как надо делать — я показал, в jdk.

R>Кому надо-то? Ты снова показал какое-то ОБЩЕЕ решение, которое, если хорошенько разобраться нифига не общее, а базируется на каких-то частных допущениях.
Не базируется.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[25]: Как в одну строку кода прочитать содержимое файла в
От: rg45 СССР  
Дата: 08.01.24 14:50
Оценка:
Здравствуйте, Kluev, Вы писали:

K>На 32х битах и больших файлах твой говнокод рыгнет с UB.


О, дошло наконец. Ну и нах мне твои 32 бита? Тебе еще раз повторить, что я не пишу ОБЩЕЕ решение, как это ваше угробище ReadAllBytes. Если я знаю, что мой проект даже не собирается под 32 бита, то нафиг мне усложнять код, чтоб обработать эту возможность?
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 08.01.2024 14:57 rg45 . Предыдущая версия . Еще …
Отредактировано 08.01.2024 14:55 rg45 . Предыдущая версия .
Re[21]: Как в одну строку кода прочитать содержимое файла в
От: rg45 СССР  
Дата: 08.01.24 14:54
Оценка:
Здравствуйте, ·, Вы писали:

·>Здравствуйте, rg45, Вы писали:


R>>·>Зависит от того какой ты код имеешь в виду. { std::istreambuf_iterator<uint8_t>(input), {} } работает вроде нормально, но неэффективно, т.к. реаллокации и копирования.

R>>Для очень большого круга задач, этой эффективности — выше крыши. А при необходимости(!) улучшить быстродействие, это делается очень легко. Мы это обсуждали, чего мы опять по кругу бегаем?
·>Может и легко, но ты не осилил.

Ты прикалываешься или на ходу забываешь, о чем мы говорим? Ну так я тебе напомню контескт разговора:

- Для очень большого круга задач, этой эффективности — выше крыши. А при необходимости(!) улучшить быстродействие, это делается очень легко. Мы это обсуждали, чего мы опять по кругу бегаем?
— Может и легко, но ты не осилил.


А по поводу "хвоста нулей" я тебя снова перенапралю к реализации File.ReadAllBytes. С какого перепугу ты к аналогу предъявляешь более высокие требования, чем к оригинал?
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[13]: Как в одну строку кода прочитать содержимое файла в м
От: B0FEE664  
Дата: 08.01.24 14:58
Оценка:
Здравствуйте, Kluev, Вы писали:

K>>> а на новое умишки не хватает.

BFE>>Kluev, если вы так же богаты, как автор фразы "640 КБ должно хватить всем", то никаких проблем для вас профинансировать разработку стандарта на проекты. К чему тут все эти ваши стенания?
K>А что комитет разве собирает деньги?
Т.е. вы думаете, что в комитете все за просто так работают?

K>ИМХО он действует как собака на сене. Сам не делает и другим не дает.

Стандарт на проект и стандарт на язык — это два разных стандарта. Хотите свой стандарт — пишите. Разве вам кто-то не даёт написать свой стандарт?
И каждый день — без права на ошибку...
Re[22]: Как в одну строку кода прочитать содержимое файла в
От: Kluev  
Дата: 08.01.24 15:00
Оценка:
Здравствуйте, rg45, Вы писали:

R>Когда я это говорил, я не имел ввиду ОБЩИЙ случай. А наоборот, моя мысль как раз и была о том, что каждый частный случай значительно проще реализуется, чем общий, а вдобавок еще и лучше удовлетворяет требованиям.


Это просто штампы и заблуждения под видом глубоких философских мыслей. В ЦПП и Ц решения не частные и не общие они просто кривые. Во всем. Ну и как следствие на них получается кривой говнокод, потому что из говна конфетку не сделаешь.
Re[4]: Как в одну строку кода прочитать содержимое файла в массив?
От: Alekzander  
Дата: 08.01.24 15:00
Оценка:
Здравствуйте, ·, Вы писали:

·>А чем, простите, занимался комитет все эти 20 лет? Надёжную обработку ошибок так и не сделали.


Никто тут меня не заподозрит в любви к комитету, но какая может быть надёжная обработка ошибок без виртуальной машины и с ручным управлением памятью?

Как по мне, всё наоборот. Комитет именно тогда и занимается хернёй, когда пытается решить нерешаемое. А лучше бы стандартную библиотеку сделал удобной на уровне BCL (но такого не будет никогда).
Re[22]: Как в одну строку кода прочитать содержимое файла в
От: · Великобритания  
Дата: 08.01.24 15:01
Оценка:
Здравствуйте, rg45, Вы писали:

R>>>·>Зависит от того какой ты код имеешь в виду. { std::istreambuf_iterator<uint8_t>(input), {} } работает вроде нормально, но неэффективно, т.к. реаллокации и копирования.

R>>>Для очень большого круга задач, этой эффективности — выше крыши. А при необходимости(!) улучшить быстродействие, это делается очень легко. Мы это обсуждали, чего мы опять по кругу бегаем?
R>·>Может и легко, но ты не осилил.
R>Ты прикалываешься или на ходу забываешь, о чем мы говорим? Ну так я тебе напомню контескт разговора:
Не понял возражение. Я имел в виду, что ты не смог написать код с улучшенным быстродействием, который работает правильно, хоть и заявил, что это очень легко.
Как такой код должен быть написан, я показал на примере jdk.

R>А по поводу "хвоста нулей" я тебя снова перенапралю к реализации File.ReadAllBytes. С какого перепугу ты к аналогу предъявляешь более высокие требования, чем к оригинал?

Если ты имеешь в виду шарповую имплементацию, то я её не анализировал. Но не удивлюсь, если там тоже лажа, шарп та ещё индусня.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[23]: Как в одну строку кода прочитать содержимое файла в
От: rg45 СССР  
Дата: 08.01.24 15:03
Оценка:
Здравствуйте, ·, Вы писали:

·>Ого, я даже не понял, что ты это на мой вопрос ответил так! В смысле скачать "сколько успеет"? А в хвосте нули?!



Какие, нафиг нули в хвосте? Просто меньше размер вектора и все. На вот тебе, реальный эксперимент:

size = 75169792, dt = 2047


Размер файла 1570 M, считалось 75 М.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[23]: Как в одну строку кода прочитать содержимое файла в
От: rg45 СССР  
Дата: 08.01.24 15:04
Оценка:
Здравствуйте, Kluev, Вы писали:

K>Ну и как следствие на них получается кривой говнокод, потому что из говна конфетку не сделаешь.


Это ты про вашу чудесную "платформу" с индусскими поделками?
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[22]: Как в одну строку кода прочитать содержимое файла в
От: · Великобритания  
Дата: 08.01.24 15:06
Оценка:
Здравствуйте, rg45, Вы писали:

R>·>Лень, не хочу раздувать дискуссию.

R>О как! А так и нескажешь, по тому как ты ведешь дискуссию со мной.
Ну если я ещё с кем-то заведу беседу, это удвоит мои усилия. Да и вообще говоря, стиль кода и именования мне не очень интересен.

R>·>Я не про это. А про тонкости работы с файлами, конкурентностью и внимание ко всяким corner cases. С одной стороны ты заявляешь "делается очень легко", а все попытки с косяками получаются.

R>Когда я это говорил, я не имел ввиду ОБЩИЙ случай. А наоборот, моя мысль как раз и была о том, что каждый частный случай значительно проще реализуется, чем общий, а вдобавок еще и лучше удовлетворяет требованиям.
Я этого не увидел. Я увидел, что ты меняешь свой код как whack-a-mole, правишь одно, ломаешь другое.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[23]: Как в одну строку кода прочитать содержимое файла в
От: rg45 СССР  
Дата: 08.01.24 15:10
Оценка:
Здравствуйте, ·, Вы писали:

·>Не понял возражение. Я имел в виду, что ты не смог написать код с улучшенным быстродействием, который работает правильно, хоть и заявил, что это очень легко.


Ты не показал, что он работает неправильно. А улучшенное быстродействие — это медицинский факт.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[24]: Как в одну строку кода прочитать содержимое файла в
От: · Великобритания  
Дата: 08.01.24 15:11
Оценка:
Здравствуйте, rg45, Вы писали:

R>·>Ого, я даже не понял, что ты это на мой вопрос ответил так! В смысле скачать "сколько успеет"? А в хвосте нули?!

R>Какие, нафиг нули в хвосте? Просто меньше размер вектора и все. На вот тебе, реальный эксперимент:
R>Размер файла 1570 M, считалось 75 М.
Ок, не нули, а втихушку потерянные данные, это ещё хуже. НЕЛЬЗЯ терять данные. Этому ещё в садике учат. А что, кстати, для несуществующего файла будет? Или если прав на чтение нет?
Или это ты тоже всё "скучными частными случаями" назовёшь??!
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.