Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Rooster

Программирование[10]

Перепись  

313 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

(изменено)

Ты меня так же прервал
хотел текст добавить к своему следующему посту:
 

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


но не успел из-за твоего поста :ponimau:


Изменено пользователем Drakonian

Поделиться сообщением


Ссылка на сообщение
(изменено)

:kaifstelish:


Изменено пользователем saegSveta

Поделиться сообщением


Ссылка на сообщение
Kant написал 2 минуты назад:

да вы заебали блять, вечно нажму отправить пост и кто-то блять влезет

L@X

Поделиться сообщением


Ссылка на сообщение
Kant написал 2 минуты назад:

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

Ну мне сказали что вот надо как то по хитрому реализовать 

Но я чёт не очень хитрый хз чё придумать 


Лучший юзер — Rilay

 

Поделиться сообщением


Ссылка на сообщение
Drakonian написал Только что:

Ты меня так же прервал
хотел текст добавить к своему следующему посту:
 

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


но не успел из-за твоего поста :ponimau:

 

и ты l@x

и я l@x

Drakonian понравилось это

Поделиться сообщением


Ссылка на сообщение
Drainbead написал 1 час назад:

Тут шутка "не зря ж ты там 10 лет сидишь". Смейся.

Возвращаем топан к основной теме, М-видео:
image.png.92a15b756ab3dd3842fc6e1401415938.png
:onneponimaet:

пиздец за тыкание кнопок по кейсам такие зп (я про ручное тестирование) да и автотесты чет тоже много

Поделиться сообщением


Ссылка на сообщение
Rilay написал 22 минуты назад:
Kant написал 26 минут назад:

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

Ну мне сказали что вот надо как то по хитрому реализовать 

Но я чёт не очень хитрый хз чё придумать 

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

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

 

в твоем случае это разве что перетирать первую строку пробелами, но ты же в конец новые строки добавляешь, файл будет бесконечно расти.

Rilay понравилось это

Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение
(изменено)
Drainbead написал 5 часов назад:
Grohuf написал 18 часов назад:

А чем вам Яндекс не нравится? оО

Гомофобы на сеньорах. 

huh?

saegSveta написал 2 часа назад:

парни кстати слышал такое мнение, что для программистов жить и работать в украине комфортнее чем в рф?

100%

еще и не так часто на бутылку сажают, в смысле, швабру в жопу засовывают 


Изменено пользователем Just.Doit

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

ну это тоже важный фактор

Поделиться сообщением


Ссылка на сообщение
Rilay написал 44 минуты назад:

Мне сказали это медленно и надо чето придумать такой чтобы и память не занимать и не медленно :hmm:

А я чёт уже который час думаю и ниче придумать не могу, че делать то?:fffuuu:

Насколько я знаю, нельзя удалить в начале файла данные, без смещения всех данных вверх. По нормальному данные не двигаются по файлу. А после удаления сверху остается пустота. В базах данных файл делиться на страницы и пустые страницы заново переиспользуются. Как в твоем случае сделать - не представляю.

Самый тупой способ - бить хранилище на файлы разумного размера. Например, у тебя файлы по 100 кб. Когда при добавлении данных в текущий файл он превысит лимит, создаешь новый файл. Соответственно, у тебя хранилище из цепочки файлов. Когда нужно удалять из начала, то просто помечаешь строчку как удаленную. Когда все строчки в файле помечены как удаленные - удаляешь файл.

Но по условию задачи такое ощущение, что требуется использовать один файл. Так что без понятия, как решать.

Rilay понравилось это

Поделиться сообщением


Ссылка на сообщение
(изменено)
Rilay написал 54 минуты назад:

Привет я в программировании новичок дробовичок помогите плиз :sosew:

В общем мне дали такую задачу сделать fifo очередь которая в файле хранится

Ну то есть грубо говоря две функции enqueue которая помещает строку в конец файла и dequeue, которая берет верхнюю строку в переменную, а из файла удаляет 

Ну я вот все сделал ток с одним действием у меня проблема :sad:

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

Мне сказали так не надо, вдруг файл очень большой, а ты его в память загоняешь весь :_:

Я подумал подумал и короче колхозный алгоритм написал который построчно копирует строки кроме первой в новый файл, удаляет старый, и переименовывается в старый :trollface:

Мне сказали это медленно и надо чето придумать такой чтобы и память не занимать и не медленно :hmm:

А я чёт уже который час думаю и ниче придумать не могу, че делать то?:fffuuu:

Язык go если ето важно

 

ну они от тебя какое-то конкретное решение хотят

возможно надо просто индекс строки хранить и не удалять строчку апросто двигать указатель.

вообще конечно эта игра в угадайку решения - дичь

но по хорошему тебе надо проанализировать с какими ограничениями ты имеешь дело (какая именно скорость нужна, какие ограничения по памяти и по диску, и тд) + каким инструментарием владеешь (надо бы тебе понять что такое файл, как он работает в современной ОС/ФС, может быть прикинуть какие есть варианты кодирования информации в файле и писать не просто строки) 


Изменено пользователем Just.Doit
Rilay понравилось это

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Grohuf написал 2 минуты назад:
Rilay написал 52 минуты назад:

Мне сказали это медленно и надо чето придумать такой чтобы и память не занимать и не медленно :hmm:

А я чёт уже который час думаю и ниче придумать не могу, че делать то?:fffuuu:

Насколько я знаю, нельзя удалить в начале файла данные, без смещения всех данных вверх. По нормальному данные не двигаются по файлу. А после удаления сверху остается пустота. В базах данных файл делиться на страницы и пустые страницы заново переиспользуются. Как в твоем случае сделать - не представляю.

Самый тупой способ - бить хранилище на файлы разумного размера. Например, у тебя файлы по 100 кб. Когда при добавлении данных в текущий файл он превысит лимит, создаешь новый файл. Соответственно, у тебя хранилище из цепочки файлов. Когда нужно удалять из начала, то просто помечаешь строчку как удаленную. Когда все строчки в файле помечены как удаленные - удаляешь файл.

Но по условию задачи такое ощущение, что требуется использовать один файл. Так что без понятия, как решать.

в нескольких файлах можно хранить я спросил
ток я чето не знаю как сделать так чтобы прога запоминала на каком файле и строке остановилась очередь 

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

а когда  у нас несколько файлов, и очередь например на 19 строке файла 8

и как делать вот ето 

>помечаешь строчку как удаленную.

точнее, можно же сделать мол дошел до конца файла -> открыл новый -> удалил старый


Лучший юзер — Rilay

 

Поделиться сообщением


Ссылка на сообщение
Rilay написал 1 минуту назад:

ток я чето не знаю как сделать так чтобы прога запоминала на каком файле и строке остановилась очередь 

Создаешь еще один файл с этой информацией. Записываешь в него текущий файл для записи и строчку в нем для записи, аналогично записываешь текущий файл для чтения и строчку в нем.

Чтобы не хранить имена всех файлов, то проще сделать так, чтобы они генерировались по какому-то алгоритму. Например. aaa->aab->aac и так далее. Соответственно, зная первый и последний файл ты можешь вычислить все промежуточные.

Rilay понравилось это

Поделиться сообщением


Ссылка на сообщение
Rilay написал 2 минуты назад:

ток я чето не знаю как сделать так чтобы прога запоминала на каком файле и строке остановилась очередь 

ну если не требуется что прога продолжает работу с того же места на котором остановилась - то просто в переменной

если нужно - то хранишь это гдето, можешь еще 1 файл создать в котором просто данные по работе программы хранишь

Rilay понравилось это

 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
(изменено)

У такого подхода (много маленьких файлов) есть один недостаток - у операционки может слегка крышу срывать, когда в директории дохулиард файлов. То есть просмотр такой директории на винде может занимать минуты. Поэтому важно выбирать размер файла таким, чтобы количество файлов было разумным (измерялось хотя бы тысячами, лучше меньше).

 

EDIT: Строчки в файле можно никак не удалять/не помечать, если у тебя будет переменная с текущим положением курсора в файле. 


Изменено пользователем Grohuf
Rilay понравилось это

Поделиться сообщением


Ссылка на сообщение

Спасибо, сейчас буду пробовать 


Лучший юзер — Rilay

 

Поделиться сообщением


Ссылка на сообщение
madvlaydin написал 8 часов назад:

да забей объяснять челу, который видать всей прелести работы в айти не понял, ибо в первой своей конторе работает и мотивирует страх ухода отношениями и голой видите ли жопой

 

какая нахер голая жопа, когда тебе сейчас деньги в глотку пихают, лишь бы на работу вышел

:pepehands:


gIrw278.gif

Your desire is your essence.

Поделиться сообщением


Ссылка на сообщение
Grohuf написал 29 минут назад:

У такого подхода (много маленьких файлов) есть один недостаток - у операционки может слегка крышу срывать, когда в директории дохулиард файлов. То есть просмотр такой директории на винде может занимать минуты. Поэтому важно выбирать размер файла таким, чтобы количество файлов было разумным (измерялось хотя бы тысячами, лучше меньше).

 

Обычно можно это обойти добавлением директорий для префикса, например если файлы это 16 рандомных символа, то первые 8 символов можно делить по два и создавать соответствующие директории, например:

a1b2c3d4e5f6aabbcc.txt -> a1/b2/c3/d4/e5f6aabbcc.txt

Или как вариант можно использовать zip без сжатия как контейнер, он позволяет добавлять файлы без обновления всего zip файла

Поделиться сообщением


Ссылка на сообщение
(изменено)

Написал короче, отправил 

Пока ответили что по описанию звучит хорошо, надо потестировать 

:smile:

Ответили вот так 

 

Все правильно, но есть проблема: ты не используешь отображение файла, а значит должен сам позаботится о сбросе буфера на диск.

 

Это типа маппить надо? :hmm:

Не совсем понимаю зачем 

 


Изменено пользователем Rilay

Лучший юзер — Rilay

 

Поделиться сообщением


Ссылка на сообщение

какое нахуй отображение, какой нахер сброс буфера


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...