• Какое нужно оборудование для раздачи интернета на даче по кабелю?

    GaneevRR
    @GaneevRR
    Вместо спасибо отмечайте Нравится
    Тебе всенаправленная нужна , участкам/клиентам. Для тебя любая подойдет в зависимости от дальности раздачи антенны, клиентам так же. Замечу, что по кабелю тебе дороже выйдет (учитывай погодные условия), защиту кабеля.
    Ответ написан
    1 комментарий
  • Как лучше хранить картинки?

    @unity_ultra_hardcore
    Лучше папку именовать не как id, а как какая-нибудь простая хеш-функция от этого id. Причем, не класть всё на один уровень, а распределить их на 2-3. Ниже пример для статьи с id=123
    md5(123) = 202cb962ac59075b964b07152d234b70
    берем первый символ хеша - 2, создаем папку "2" в /uploads/images
    берем второй символ хеша - 0, создаем папку "0" в /uploads/images/2
    создаем папку "202cb962ac59075b964b07152d234b70" в /uploads/images/2/0/
    кладём в /uploads/images/2/0/202cb962ac59075b964b07152d234b70 нужные файлы

    Плюсом такого рещения будет то, что из-за хеш-функции папок будет фиксированное количество и файлы по ним будут относительно равномерно размазаны. Если файлов будет очень много, можно добавить ещё один уровень. Путь этот вычислить программно будет не сложно, если метод его вычисления будет находиться в одном месте.
    Ответ написан
    7 комментариев
  • Как разделить .xlsx по строкам?

    honor8
    @honor8
    Принципы быстродействия VBA в описании
    Если файл сохранён на диске, можно так:
    1. Открываете книгу с данными на нужном листе
    2. Заходите в VBA (Alt+F11)
    3. Выбираете в меню Insert -> Module
    4. Вставляете нижеприведённый код
    5. Нажимаете F5 (не сохраняете исходный файл)

    Option Explicit ' Обязательное объявление переменных
    Option Base 1 ' Нижняя граница массива (по умолчанию)
    '123456789012345678901234567890123456h8nor@ya567890123456789012345678toster56789
    
    Sub Border_Limit()
      Dim Limit As Integer, Count As Integer, SaveDir As String, SetTitle As Boolean
      
      Count = 1: Limit = 1000 ' Счётчик файлов; Количество строк
      SetTitle = False ' Если есть заголовок, заменить False на True
      
      SaveDir = ThisWorkbook.Path ' Или вписать полный путь для сохранения "C:\"
      ' Предполагается, что в колонке A нет пустых ячеек
      While Not IsEmpty(Cells(IIf(SetTitle, 2, 1), 1))
        Rows("1:" & Limit).Copy
        Workbooks.Add xlWBATWorksheet ' Создать новую книгу: шаблон с 1 листом
        ActiveSheet.Paste: Cells(1, 1).Select
        ActiveWorkbook.SaveAs Filename:=SaveDir & "\Массив_" & Count & ".xlsx", _
          FileFormat:=xlOpenXMLWorkbook
        ActiveWindow.Close
        Rows(IIf(SetTitle, 2, 1) & ":" & Limit).Delete Shift:=xlUp
        Count = Count + 1
      Wend: MsgBox "Файл разбит на " & Count - 1 & " файл(ов). "
    End Sub

    Никакие C++ запускать не надо.

    Для пытливых умов: Отказ от Слияния в пользу шаблонов https://toster.ru/q/320942
    Ответ написан
    5 комментариев