Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Post your project for free and start receiving proposals from freelancers within minutes after publication!

The Delphi algorithm

Translated22 USD

Client's review of cooperation with Valera Vino

Quality
Professionalism
Cost
Contactability
Deadlines

Everything is fine, the work is done.

Freelancer's review of cooperation with Yevgeny Sergeyevich

Payment
Task setting
Clarity of requirements
Contactability

A good customer, adequate. pleasant to work.
I recommend cooperation.

  1. 147    5  0
    Winning proposal1 day22 USD

    I do it through DLL.
    In the delphi I didn't find the perfect way, so in the sharp I'll get the dll and through it we'll work.

  2. 221    6  1
    1 day22 USD

    The CreateFileA function
    The second parameter is dwDesireAccess - install in
    General_read by
    Third - dwShareMode put in 1
    The main rule is that all other discoveries of this file (other streams or processes) should not contradict the first discoveries in the issues of joint access rights.
    Synchronization of reading if required can also be through the events or through you certain flags/signs in shared memory. There is no problem with one process at all. This is the whole algorithm. More in detail - two packs of chest and coffee. It will be with schemes/blocks.)

  3. 1 proposal concealed
  • Valera Vino
    10 June 2019, 0:02 |

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

  • Profile deleted
    10 June 2019, 0:15 |

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

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

  • Sergey Grebenyuk
    10 June 2019, 4:32 |

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

  • Yevgeny Sergeyevich
    10 June 2019, 0:27 |

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

  • Profile deleted
    10 June 2019, 0:29 |

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

  • Igor Lyalchenko
    10 June 2019, 1:43 |

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

  • Profile deleted
    10 June 2019, 5:42 |

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

    Например:

    заказ №3 13.04.2019 

    заказ №456 13.12.2199 

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

  • Igor Lyalchenko
    10 June 2019, 8:13 |

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

  • Igor Lyalchenko
    10 June 2019, 8:38 |

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

  • Igor Lyalchenko
    10 June 2019, 8:38 |

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

  • Yevgeny C
    10 June 2019, 1:45 |

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

  • Igor Lyalchenko
    10 June 2019, 1:53 |

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

  • Igor Lyalchenko
    10 June 2019, 2:07 |

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

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

  • Yevgeny C
    10 June 2019, 2:50 |

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

  • Igor Lyalchenko
    10 June 2019, 8:09 |

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


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


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


  • Vyacheslav Azarov
    10 June 2019, 6:27 |

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

  • Igor Lyalchenko
    10 June 2019, 8:10 |

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

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

  • Yevgeny C
    10 June 2019, 9:42 |

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

  • Igor Lyalchenko
    10 June 2019, 9:49 |

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

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

Current freelance projects in the category Desktop Apps

Need an Airtable architect to build a relational schema and a new clean Airtable base.

Need help rethinking and building a clean relational schema for an internal operational system on Airtable. The current database is already in use by the team, but it has grown organically: the structure is partially flat, some tables/views are actively used, while others are…

Databases & SQLDesktop Apps ∙ 2 days 18 hours back ∙ 9 proposals

Creation of software for generating cutting files for wooden puzzles

We are looking for a developer to create software that automates the process of building cutting files for wooden jigsaw puzzles. Current Process Currently, each file is created manually by a designer in Adobe Illustrator. The file contains: the outer contour of the puzzle in…

Desktop Apps ∙ 2 days 23 hours back ∙ 14 proposals

Small edit on the website

16 USD

Need to update the offer agreement in the footer to a new one, the company has changed its regulations Task will take 20 minutes

Web ProgrammingDesktop Apps ∙ 4 days back ∙ 110 proposals

Account reconciliation tool with the bank, cards, and accountant

Technical Assignment: Tool for Reconciling Accounts with Bank, Cards, and AccountantGeneral Goal A local tool (script/small application in Python) is needed, which is manually run once every 1-2 months on my computer and performs reconciliation between: Invoices I issued to…

PythonDesktop Apps ∙ 6 days 8 hours back ∙ 44 proposals

Add pauses of 10-30 seconds between sending emails.

Hello! I am looking for an experienced 1C / BAS (BAF) programmer to promptly resolve a technical issue with email distribution.Problem essence: We use the accounting program BAF (Business Automation Framework), version 2.0. Once a month, there is a need to send about 300 emails…

Web ProgrammingDesktop Apps ∙ 11 days 23 hours back ∙ 10 proposals

Client
Yevgeny Sergeyevich
Ukraine Kyiv  1  0
Project published
7 years back
159 views