Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Розмістіть свій проєкт безплатно та почніть отримувати пропозиції від фрилансерів-виконавців уже через хвилини після публікації!

Дельфі алгоритм

Translated1000 UAH

Відгук замовника про співпрацю з Valera Vino

Якість
Професіоналізм
Вартість
Контактність
Терміни

Все в порядку, робота виконана.

Відгук фрилансера про співпрацю з Евгениєм Сергеевичем

Оплата
Постановка завдання
Чіткість вимог
Контактність

Хороший замовник, адекватний Приємно працювати.
Рекомендуємо співпрацювати.

  1. 147    5  0
    Переможець1 день1000 UAH

    Я роблю через длл.
    У дельфі не знайшов ідеального способу, тому в шарпі соберу dll і через неї ми будемо працювати.

  2. 221    6  1
    1 день1000 UAH

    Функція CreateFileA
    Другий параметр dwDesireAccess - встановлюється в
    ІНФОРМАЦІЯ / READ
    Третій - dwShareMode вставити в 1
    Головне правило - всі інші відкриття даного файлу (іншими потоками або процесами) не повинні суперечити першому відкриттю в питаннях прав спільного доступу.
    Синхронізація читання, якщо потрібно, можливо і через евенти або через вас певні прапори/значення в shared memory. З одного процесу взагалі не проблема. Це і є весь алгоритм. Більш детально - два пакети честера і кави. Буде з схемами / блоками )

  3. 1 ставку приховано
  • Valera Vino
    10 червня 2019, 0:02 |

    Привет, напиши пожалуйста мне в телеграм t.me/coinbits
    или тут в личку.

  • Профіль видалено
    10 червня 2019, 0:15 |

    По-моему это невозможно. Многопотоково один файл. Или я чего то не знаю )))

    Только стрим ("на лету") качать данные и обрабатывать.

  • Сергей Гребенюк
    10 червня 2019, 4:32 |

    ну сорян канеш, но скорее второе

  • Евгений Сергеевич
    10 червня 2019, 0:27 |

    Мне необходимо многопоточно и синхронно дергать строки поочередно в каждый поток с смещением от начала и до конца файла.

  • Профіль видалено
    10 червня 2019, 0:29 |

    Ну если только сплитить (разделит) файл на мильён файлов и тогда обрабатывать их в многопотоке.

  • Игорь Ляльченко
    10 червня 2019, 1:43 |

    Нет. Совместный доступ я описал в ставке. Собственно полагая что именно он вызвал проблему, т.к в содержимом файла, судя по ТЗ строки одинаковой длины и считать конкретную путем установки указателя на нужную ф-ей SetFilePointer не вызывает сложностей. Совместный доступ на чтение сам по себе прост. Правило которого следует придерживаться - первое открытие файла должно разрешать совместный доступ на чтение, а остальные открытия не противоречить друг другу в вопросах прав доступа. Например если вы открыли файл для чтения и записи, с произвольным доступом на чтение, а второй раз его пытаетесь открыть с разрешением произвольного доступа на чтение то это будет противоречить первому открытию, предусматривающему и запись тоже. Вот и вся тонкость

  • Профіль видалено
    10 червня 2019, 5:42 |

    В том то и дело (как я уже писала), что строки неодинаковой длины.

    Например:

    заказ №3 13.04.2019 

    заказ №456 13.12.2199 

    Поэтому даже сплитить файл - это потеря, как минимум, одной "записи".

  • Игорь Ляльченко
    10 червня 2019, 8:13 |

    Ну а при неодинаковой длинне всегда полезно сперва составить карту строк. Массив смещений от начала. Иначе произвольный доступ к сотне байт, превратится в перечитывание 2гб

  • Игорь Ляльченко
    10 червня 2019, 8:38 |

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

  • Игорь Ляльченко
    10 червня 2019, 8:38 |

    *запроса=зачета

  • Евгений C
    10 червня 2019, 1:45 |

    Такое "многопоточное" чтение бессмысленно, т.к. приведёт не к увеличению скорости чтения, а наоборот -  к деградации, особенно если файл находится на жёстком диске. 

  • Игорь Ляльченко
    10 червня 2019, 1:53 |

    А вот вопрос.  Смотря какие цели. Чем ставить очередь на чтение к примеру не один-два запроса и с непредсказуемым доступом внутри файла, да ещё мелких объемов на чтение.. то скорость многопоточного варианта таки возрастет

  • Игорь Ляльченко
    10 червня 2019, 2:07 |

    Нет, безусловно, блины вращаться быстрее не станут от того что файл открыт 1000 раз. Это понятно ))

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

  • Евгений C
    10 червня 2019, 2:50 |

    Да нет,  вы только проиграете по скорости, потому что скорость последовательного чтения как минимум на 2 порядка выше скорости случайного чтения. А при многопоточном чтении вы как раз и получите вариант случайного чтения данных с диск.

  • Игорь Ляльченко
    10 червня 2019, 8:09 |

    Если нужно последовательное (строго последовательное, напр речь о копировании файла) то да, безусловно правы.


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


    Ну а если речь о необходимости произвольного чтения что в один что в несколько потоков ? Или вариант когда требуется доп обработка перед тем как можно читать дальше и пока мы обрабатываем hdd простаивает? 


  • Вячеслав Азаров
    10 червня 2019, 6:27 |

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

  • Игорь Ляльченко
    10 червня 2019, 8:10 |

    Ну и ещё может не быть алгоритма а может быть задача по какой нибудь лабораторной ))

    В которой сказано - нужно многопоточно ))

  • Евгений C
    10 червня 2019, 9:42 |

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

  • Игорь Ляльченко
    10 червня 2019, 9:49 |

    согласен. почти всегда это возможно реализовать именно таким способом ))

    я лишь говорю что многопоточно это тоже возможно, хоть и под сомнением целесообразность. 

Актуальні фриланс-проєкти в категорії Десктопні додатки

Потрібен Airtable-архітектор для побудови relational schema та нового clean Airtable base

Потрібно допомогти переосмислити та побудувати чисту relational-схему для внутрішньої операційної системи на Airtable. Поточна база вже використовується командою, але вона виросла органічно: структура частково плоска, частина таблиць/в’юшок використовується активно, частина…

Бази даних та SQLДесктопні додатки ∙ 2 дні 20 годин тому ∙ 9 ставок

Створення ПЗ для генерації файлів різки дерев'яних пазлів

Шукаємо розробника для створення програмного забезпечення, яке автоматизує процес побудови файлів різки для дерев'яних фігурних пазлів. Поточний процес Зараз кожен файл створюється дизайнером вручну в Adobe Illustrator. Файл містить: зовнішній контур пазла довільної форми;…

Десктопні додатки ∙ 3 дні тому ∙ 14 ставок

Невелика правка на сайті

700 UAH

Потрібно перепідв'язати договір оферти в футері на новий, в компанії змінився регламент Завдання на 20 хвилин

Веб-програмуванняДесктопні додатки ∙ 4 дні 2 години тому ∙ 110 ставок

Інструмент звірки рахунків з банком, картами та бухгалтером

Технічне завдання: інструмент звірки рахунків з банком, картами та бухгалтеромЗагальна метаПотрібен локальний інструмент (скрипт/невеликий додаток на Python), який запускається вручну раз на 1-2 місяці на моєму комп'ютері і робить звірку між:Рахунками, які я виставив клієнтам і…

PythonДесктопні додатки ∙ 6 днів 9 годин тому ∙ 44 ставки

Додати паузи 10-30 секунд між відправками листів

Вітаю! Шукаю досвідченого програміста 1С / BAS (BAF) для оперативного вирішення технічної проблеми з поштовою розсилкою.Суть проблеми: Використовуємо бухгалтерську програму BAF (Business Automation Framework), редакция 2.0. Раз на місяць виникає потреба масово відправляти…

Веб-програмуванняДесктопні додатки ∙ 12 днів 1 година тому ∙ 10 ставок

Замовник
Проєкт опублікований
7 років тому
159 переглядів