Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 6)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171

Открыть новую тему     Написать ответ в эту тему

Maz



Дед Мазай
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
Предыдущие топики:  1 2 3 4 5  
 
Где взять последнюю версию?
На странице загрузки скачайте MSI-инсталлятор стабильной сборки нужной вам разрядности (32 или 64 бита) или дистрибутив в виде 7z-архива и установите/распакуйте в любую папку (FAR портабелен и может работать без установки).
Там же на свой страх и риск можно взять наиболее свежую "ночную" сборку (в ночных сборках устраняются выявленные недоработки, добавляются новые функции, но могут содержаться и серьёзные ошибки).
Архив всех предыдущих ночных сборок FAR
Last release на github - собирается практически сразу (в течение получаса) после каждого коммита.
 
Общие сведения о совместимости FAR и плагинов
 
Можно воспользоваться одной из пользовательских сборок FAR Manager
Вопросы, касающиеся сборок, следует задавать непосредственно их авторам, а не на официальном форуме.
 
Где взять дополнительные плагины, скрипты и макросы?
Плагринг. В настоящее время большинство авторов (возможно, уже и все) выкладывают плагины здесь. Кроме плагинов здесь появляется всё относящиеся к FAR: дополнения, консольные шрифты, скрипты и пр.
Анонсы плагинов на официальном форуме. Даже если автор не выкладывает по каким-либо причинам плагин на плагринге, он может дать анонс в этой теме.
Полезные скрипты и макросы.
Шрифт TTF, аналог Terminal 10x18
 
Инструкции по сборке ФАРа из исходников
Набор для самостоятельной сборки ФАРа
Как собрать FAR самостоятельно (старая инструкция)  
 
Ссылки на устаревшие версии
Выдержка из Far Manager Site and Forum ‹ FAQ :
Отличия FAR 3 от FAR 2
Отличия FAR 2 от FAR 1.7
 
Примечания
 
* 13 декабря 2008 г. произошло переименование веток: ANSI-ветка 1.71 превратилась в 1.75, а Unicode-ветка получила номер версии 2.0 (вместо 1.80). Т.е. версии 1.хх это ANSI ("старый" FAR), а версии 2.хх – Unicode ("новый" FAR). Эти ветки сильно различаются по способу взаимодействия с плагинами и системой!
* При обновлении ANSI-ветки 1.хх более старые версии плагинов могут работать в более новом FAR, но более новые плагины в большинстве случаев требуют обновления FAR (см. документацию).
* Unicode-плагины в ANSI-версии FAR не работают – у них иной способ взаимодействия (API) с Far.exe, поэтому даже не пытайтесь их использовать в FAR версии ниже 1.80.
* При обновлении Unicode-версии FAR 1.80/2.0/3.0 обращайте внимание на номер сборки: следует обязательно обновить все плагины для сборок 677/680/684, иначе они не будут работать. ANSI-плагины (кроме тех, которые работают в редакторе) можно применять в Unicode-версии FAR, в меню плагинов (вызываемом по F11) они будут помечены значком [A] справа от их имени. Unicode-плагины в FAR 1.80/2.x/3.х никаким значком после имени не помечаются.
* Unicode-версия FAR 1.80/2.x/3.х требует как минимум Windows 2000, т.е. она работает только в Windows 2000/XP/2003/Vista/2008/7/8/10.
* Плагины от FAR 2 несовместимы с FAR 3 и не запустятся.
* В FAR 3 выборочно могут работать плагины от FAR 1, однако не стоит брать от FAR 1 плагины для редактора или работающие с дисками: первые портят текст в Юникоде, вторые – файловую систему.
* В любом случае разрядность плагинов должна совпадать с разрядностью FAR, иначе плагин не будет загружен.
* Блондинку на скриншоте зовут Tommie Jo.

 
Принципиальные различия между hard link, symlink и junction
Как устранить взаимное влияние запущенных копий FAR в памяти
Как запустить Lua/MoonScript из FAR
Как правильно добавить в программу нужную DLL (или иную зависимость), чтобы при обновлении ОС или иных программ она не перестала работать
Патч для ansi-плагинов для хранения настроек плагинов в папке профиля, а не в реестре
Как распаковать UUE/XXE файлы патчей и использовать их?
 
ВНИМАНИЕ!
 
Правильное (корректное) завершение Far: всегда завершайте сеанс работы с Far по F10! Подробнее на форуме - Различие выхода из Far по F10 и крестиком
 
Общие правила обращения за помощью
  1. Решаете задачу самостоятельно, при необходимости ищете ответы в теме и других источниках. Предварительное изучение документации обязательно!
  2. Если ваших знаний не хватает, то задаёте вопрос в форуме и строго следуете инструкциям тех людей, которые вам помогают.
  3. Если решить задачу, следуя пунктам 1 и 2, не удалось, то задаёте вопрос разработчикам.

Невыполнение этих правил ведёт к тому, что никто не станет помогать решать вашу задачу.

Всего записей: 37512 | Зарегистр. 26-02-2002 | Отправлено: 17:36 15-01-2020 | Исправлено: Smitis, 17:02 28-10-2021
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
 
Списибо! Я так и думал, а потому ещё раз попрошу автора устранить её.
 
P.S.
 
Создал инц Недостаток в реализации Plugin.Call() плагина - функция не обрабатывает симлинки #25 на багтрекере плагина, посмотрим что получится.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/64 GB REG ECC DDR3-1866/GTX 1660, Xeon E5-2667/c602J/16 Gb REG ECC DDR3-1866/GTX 1060 3Gb

Всего записей: 29526 | Зарегистр. 31-07-2002 | Отправлено: 14:54 29-02-2020 | Исправлено: Victor_VG, 16:30 29-02-2020
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
инц Недостаток в реализации Plugin.Call() плагина - функция не обрабатывает симлинки #25 FIXED, для chex() v2.0 нужны некоторые переделки, делаю.


----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/64 GB REG ECC DDR3-1866/GTX 1660, Xeon E5-2667/c602J/16 Gb REG ECC DDR3-1866/GTX 1060 3Gb

Всего записей: 29526 | Зарегистр. 31-07-2002 | Отправлено: 03:43 01-03-2020
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2Bobo на сообщение на форуме Фара
 
Visual Compare files or folders for panels: Files, Branch, Temporary, Arclite, Netbox, Observer, TorrentView

Всего записей: 2685 | Зарегистр. 16-06-2007 | Отправлено: 11:55 02-03-2020
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пока возился с chex() v2.0 увидил такое явление - win.GetFileInfo() для корня или точки монтирования (симлинка) на вызов типа
Код:
lua:far.Show(win.GetFileInfo("C:\\").FileName,win.GetFileInfo("C:\\").FileSize)

выводит сообщение об ошибке  

Код:
[string "far.Show(win.GetFileInfo("C:\\").FileName,win..."]:1: attempt to index a nil value

покопался по MSDN так как winGetFileInfo() зовёт FindFirstFile() из WinAPI - для FindFirstFile() только формат вызова, сотрудники M$ сковзь зубы говоря что да, у неё есть недокументированные ограничения, а официально "Покупайте Windows 10!".  
 
Но, по идее интересно получить tPluginPanelItem не только для случая "файл в подкаталоге", но и для каталогов и файлов в корне тома или точке монтирования, а если доступ к объекту запрещён по ACL сообщение Фар-а типа Access denied или аналогичный по смыслу код возврата например в mf.fexist() - ведь раз mf.testfolder() умеет об этом сообщать кодом -1, то по идее фар может получить такие данные и для файла, а раз так то стоит это вывести наружу. Так и ошибок меньше будет. Я для этого конечно проверку сделал, но там мягко скажем больше чёрной магии и эвристики, чем абсолютно точной информации получаемой от NTFS. А затевать возню с FFI для проверки прав желания нет ибо ради редкого случая придётся держать кучу громоздкого кода и по частоте его использования получим балласт...

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/64 GB REG ECC DDR3-1866/GTX 1660, Xeon E5-2667/c602J/16 Gb REG ECC DDR3-1866/GTX 1060 3Gb

Всего записей: 29526 | Зарегистр. 31-07-2002 | Отправлено: 21:31 02-03-2020 | Исправлено: Victor_VG, 21:37 02-03-2020
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
 

Цитата:
lpFileName
 
The directory or path, and the file name. The file name can include wildcard characters, for example, an asterisk (*) or a question mark (?).
 
This parameter should not be NULL, an invalid string (for example, an empty string or a string that is missing the terminating null character), or end in a trailing backslash ().

Всего записей: 1553 | Зарегистр. 09-03-2012 | Отправлено: 22:24 02-03-2020
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
 
Понял, моя ошибка в тесте.
 
Добавлено:
Слеши я убирал, но результат тот же:

Код:
lua:far.Show(win.GetFileInfo("C:").FileName,win.GetFileInfo("C:").FileSize)


Код:
[string "far.Show(win.GetFileInfo("C:").FileName,win..."]:1: attempt to index a nil value  

или

Код:
lua:far.Show(win.GetFileInfo("C").FileName,win.GetFileInfo("C").FileSize)


Код:
[string "far.Show(win.GetFileInfo("C").FileName,win..."]:1: attempt to index a nil value  

- видимо я неправильно формирую запрос...

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/64 GB REG ECC DDR3-1866/GTX 1660, Xeon E5-2667/c602J/16 Gb REG ECC DDR3-1866/GTX 1060 3Gb

Всего записей: 29526 | Зарегистр. 31-07-2002 | Отправлено: 00:24 03-03-2020
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
У меня работает. Например:
lua:far.Show(win.GetFileInfo("C:\\Windows").FileName)
 
Но есть одна тонкость: с корневыми папками это не прокатывает, C: воспринимается не как корневая папка, а как текущая. У меня показывает данные папки %FARHOME%.
 

Всего записей: 1553 | Зарегистр. 09-03-2012 | Отправлено: 01:04 03-03-2020
skipik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG

Цитата:
lua:far.Show(win.GetFileInfo("C:").FileName,win.GetFileInfo("C:").FileSize)

В W10 работает, показывает такое окошко:

Всего записей: 4474 | Зарегистр. 07-07-2006 | Отправлено: 01:10 03-03-2020
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
skipik
 
Вот как раз на этой тонкости я и обнаружил это явление когда писал chex() v2.0 при её проверке на UNC пути вида \\SERVER\share (в chex() заключительный слэш отбрасывается). В ходе отладки понадобилось посмотреть атрибуты каталога, набрал:  

Код:
lua:far.Show(win.GetFileInfo("\\\\SERVER\\share").FileAttributes)

а получил сообщение об ошибке:

Код:
[string "far.Show(win.GetFileInfo("\\\\SERVER\\share").Fil..."]:1: attempt to index a nil value

и стал смотреть с чем встретился...
 
Добавлено:
А факт подстановки другого каталога для chex() в принципе не допустим ибо насчитаем хэши не известно для какого дерева файлов. Сейчас тест считает правильно (он у меня в сорцах закоммичен), а вот с управлением пока не выходит Каменный Цветок... Ну, добью. Скинул код на планшет и там пишу, а проверять бум по мере готовности...
 
Добавлено:
shmuz
skipik
 
Из серии "рефакторинг не всегда полезен" - на b5564 IntChecker.Run.lua v2.0 DEV чудил так, что я не мог понять что происходит - то в функции параметры не передаются, то сообщения об ошибках там, где их просто не может быть, да ещё и такие что глаза на лоб лезут....
 
А сейчас как 5566-й билд пришёл, собрал и запустил скрипт дабы поискать ошибки ... а он снова работает как ни в чём не бывало . На b5563 то он работал, а скрипт обновления тест копий видно я когда уходил по делам случайно запустил и получил "удовольствие". И вот так сиё дело в работе выглядит:
 

 

 

 
ошибку с false на readme.txt у коего размер ноль я пришибу, и мне как раз для таких дел и нужна win.GetFileInfo() - тащить из записи ФС размер для одиночного файла, так как каталоги уже отфильтрованы far.RecursiveSearch() и там я всю нужную информацию имею. Сейчас я скорее всего спать, а на свежую голову поколдую в userfunc - там есть у меня одно хитрое место и возможно это его недосрабатывание. Добавить  бы размер в   саму far.RecursiveSearch() типа второго поискового признака маски  наравне с атрибутами. Чтобы задал маску типа "*>>D,0" и в выдачу поиска попадают все файлы не нулевой длины без лишнего фильтра в userfunc. Мечта лентяя.

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/64 GB REG ECC DDR3-1866/GTX 1660, Xeon E5-2667/c602J/16 Gb REG ECC DDR3-1866/GTX 1060 3Gb

Всего записей: 29526 | Зарегистр. 31-07-2002 | Отправлено: 02:40 03-03-2020 | Исправлено: Victor_VG, 03:34 03-03-2020
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Цитата:
с корневыми папками это не прокатывает, C: воспринимается не как корневая папка, а как текущая

Да уж, тяжёлое наследие DOS 1.0

----------
Разум когда-нибудь победит

Всего записей: 2470 | Зарегистр. 09-02-2003 | Отправлено: 10:38 03-03-2020
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
C: - это никак не корневая папка. Это текущая папка диска С. Так и должно быть.
Корневая папка - это C:\

Всего записей: 10135 | Зарегистр. 11-03-2002 | Отправлено: 03:20 04-03-2020
Smitis



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Pasha_ZZZ

Цитата:
C: - это никак не корневая папка. Это текущая папка диска С. Так и должно быть.
Корневая папка - это C:\

Про то и речь.

----------
Разум когда-нибудь победит

Всего записей: 2470 | Зарегистр. 09-02-2003 | Отправлено: 10:36 04-03-2020
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis
 
Там как выяснилось всё проще - ядро использует адресацию BUS-CONTROLLER-UNIT-PARTITION-DIR-OBJECT, а в WinAPI эмулируется DOS схема DISK-CATALOG-FILE, но эмуляция DISK действительно, по словам разработчиков ядра винды сделана с рядом допущенй - иначе у них не получалось, а потому они сказали "Будьте осторожны, некоторые файловые функции WinAPI некорректно работают в корневом каталоге тома или шары и хотя эта алгоритмическсая проблема тянется с Windows 3.0 мы пока не придумали способа её устранить...". По моему достаточно, чтобы начать самому искать способ решить задачу. С чем сейчас и вожусь - IntChecker.Run.lua v2.0 DEV в целом работает, но! если его натравить на объект к которому по ACL нет доступа, например на /System Volum Information, то увидим пустой вывод хэша. На корневом каталоге тома возникает своя задача - ни far.RecursiveSearch(), ни win.GetFileInfo() не могут для него прочитать tPluginPanelItem так в функции приходит nil index вызывая ошибку. Вот с сей парой я сейчас и вожусь. Пока занят написанием алгоритма для функции IsRoot() которая могла бы работать с произвольным UNC путём, в том числе лежащим вне текущей панели чтобы исключить для неё chwd и сопровождающее её мелькание...

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/64 GB REG ECC DDR3-1866/GTX 1660, Xeon E5-2667/c602J/16 Gb REG ECC DDR3-1866/GTX 1060 3Gb

Всего записей: 29526 | Зарегистр. 31-07-2002 | Отправлено: 19:06 05-03-2020
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG

Цитата:
На корневом каталоге тома возникает своя задача - ни far.RecursiveSearch(), ни win.GetFileInfo() не могут для него прочитать tPluginPanelItem так в функции приходит nil index вызывая ошибку.

1. Зачем вообще нужен PluginPanelItem для корневого каталога? Мне, к примеру, никогда этого не требовалось.
2. Насчёт "вызывая ошибку" - это только из-за вашего стиля программирования. Вы применяете "цепочечные" операции, не проверяя промежуточные результаты (результат вычисления звена цепочки) - отсюда и ошибки. Я так не делаю, и ошибок нет.

Всего записей: 1553 | Зарегистр. 09-03-2012 | Отправлено: 20:13 05-03-2020 | Исправлено: shmuz, 20:14 05-03-2020
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
shmuz
 
Я уже нашёл решение - win.GetFileAttr() возвращает там строку атрибутов, что и позволяет выбрать правильную ветку алгоритма.  
 
А проверки я делаю, просто часто использую конвейреные операции, это да, есть такое дело. Тут у меня проблема была из серии "не тот молоток взял!", сейчас сижу на бумаге граф-схемы алгоритма рисую - так легче думать (правда корзина наполняется).
 

Цитата:
Зачем вообще нужен PluginPanelItem для корневого каталога?

По большому счёту мне нужен не он, а строка файловых атрибутов, так как необходимая логика обработки в случае каталога и отдельного файла различна, и наличие атрибута d позволяет построить простое ветвление
 
if win.GetFileAttr(obj):find("d") then <работаем с каталогом> else <работаем с одиночным файлом> end
 
а иначе эту же задачу придётся решать более сложным способом, и там наверняка будут свои проблемы и ошибки.
 
Я просто забыл про win.GetFileAttr(), а она если её позвать, например так:
 
lua:far.Show(win.GetFileAttr("\\\\SERVER\\share"))
 
или
 
lua:far.Show(win.GetFileAttr("//SERVER/share"))
 
или
 
lua:far.Show(win.GetFileAttr("c:"))
 
или
 
lua:far.Show(win.GetFileAttr("c:\\"))
 
или
 
lua:far.Show(win.GetFileAttr("c:/"))
 
вернёт нам строку атрибутов типа "d" | "dhs", и нет нужды дёргать панели, а уж её просмотреть элементарно. Это и есть то решение которое всё ускользало от меня. Спасибо электрикам - сутки на подстанции сгоревший трасформатор меняли и я на планшете просматривал доки и свои записи в поисках подходящих по возврату функций - и как я на неё ранее внимания не обратил?

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")
Xeon E5 2697v2/C602/64 GB REG ECC DDR3-1866/GTX 1660, Xeon E5-2667/c602J/16 Gb REG ECC DDR3-1866/GTX 1060 3Gb

Всего записей: 29526 | Зарегистр. 31-07-2002 | Отправлено: 20:19 05-03-2020 | Исправлено: Victor_VG, 20:44 05-03-2020
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
JD, телеграм говорит, что пользователя FarManager не существует. Отбой тревоги, палец ошибся при наборе ссылки
 
 
5568. Дистриб распакован в новую папку на RAM диске, профиль в его же папке, чистый, колорер отключен, открываю в редакторе 34МБ txt файл, максимальная длина строки 2462 символа - загружается в течение ~0.9 сек, виден диалог загрузки. Но субъективно кажется, что несмотря на разбивку на строки и др. обработку, могло бы быть и быстрее, вьювер открывает мгновенно.
 
 
Shmuel, LFSearch, замена, функмод.

Код:
Поиск: ^.*$
Замена: if #T[0]>str_max then str_num,str_max = M,#T[0] end
Initial code: str_num,str_max = 0,0
Final code: far.Show(str_num,str_max)

 
Вопросы:
1. Длина найденной самой длинной строки #T[0] не соответствует визуально наблюдаемой при переходе на неё - строка в T[0] хранится в Utf8 (сам текст в ansi)? - Посмотрел, Utf8.
2. Есть ли "застолблённая" переменная, хранящая номер строки в которой найден паттерн?
3. Глобальные переменные, функции объявленные в _macroinit.lua в funcmode недоступны никак?

Всего записей: 2685 | Зарегистр. 16-06-2007 | Отправлено: 12:27 09-03-2020 | Исправлено: Alexyz21, 15:06 09-03-2020
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alexyz21

Цитата:
1. Длина найденной самой длинной строки #T[0] не соответствует визуально наблюдаемой при переходе на неё - строка в T[0] хранится в Utf8 (сам текст в ansi)?
2. Есть ли "застолблённая" переменная, хранящая номер строки в которой найден паттерн?  

1. Компьютер тупой - он выдаёт то, что попросили, а не то, что имели в виду. Вместо # используйте :len()
2. Нет, но наверное стоит добавить.

Всего записей: 1553 | Зарегистр. 09-03-2012 | Отправлено: 15:03 09-03-2020
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
#1 - английский юмор? оценил )))
 
3. Глобальные переменные, функции объявленные в _macroinit.lua в funcmode недоступны никак?

Всего записей: 2685 | Зарегистр. 16-06-2007 | Отправлено: 15:13 09-03-2020
shmuz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
3. Глобальные переменные, функции объявленные в _macroinit.lua в funcmode недоступны никак?

Нет, поскольку _macroinit.lua относится к другому плагину.
Но есть другие возможности, например:
- использовать для этого plugins\lfsearch\_usermenu.lua
или
- в поле "Initial Code" диалога указать dofile(<path-to-file>)

Всего записей: 1553 | Зарегистр. 09-03-2012 | Отправлено: 15:25 09-03-2020
Alexyz21



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
возможные пути ясны, спасибо.

Всего записей: 2685 | Зарегистр. 16-06-2007 | Отправлено: 15:53 09-03-2020
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171

Компьютерный форум Ru.Board » Компьютеры » Программы » FAR Manager (часть 6)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru