Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Название плагина: NeoBookFM/FTP Автор: NeoSoft Corp. - www.neosoftware.com Описание: v1.3a - Плагин NeoBook для отображения файлов и папок в стиле проводника Windows и управления локальными файлами и файлами на удаленном FTP сервере.
Подключение fmConnectLocal=Создать подключение с локальной файловой системой. Для визуального отображения в стиле проводника Windows используйте команду fmShowFileBrowser. fmConnectRemote=Создать подключение с удаленным FTP-сервером. Для визуального отображения в стиле проводника Windows используйте команду fmShowFileBrowser. fmDisconnect=Закрыть ранее установленное подключение с FTP сервером или локальной файловой системой. Любое подключение будет прервано когда приложение закрыто.
Навигация fmChangeDir=Изменить текущий путь подключения к папке. Текущий путь можно получить в переменной [ClientID.CurrentDir]. fmSetFileMask=Определить маску/фильтр для подключения. Строка маски задает тип файла или файлов которые будут видны в обозревателе. Маска может включать в себя несколько типов файлов, включая подстановочные знаки. fmSetSortMethod=Сортировать содержимое подключения по имени, типу, дате или размеру. Отсортированные папки всегда находятся в верхней части списка, а файлы в нижней. fmGetSortMethod=Получить текущий вид и направление сортировки подключения. fmRefresh=Обновить папку/папки подключения. В большинстве случаев когда обнаружены изменения папки будут обновляться автоматически fmSetRootDir=Установить корневую папку подключения. Корневой папкой является первая или самая верхняя папка в иерархии файловой системы. Это отправная точка всего содержимого.
Обозреватель файлов fmShowFileBrowser=Отобразить содержимое локального или удаленного подключения в стиле проводника Windows. Вы можете настроить внешний вид обозревателя используя команду fmSetFileBrowserProperties. fmHideFileBrowser=Скрыть обозреватель файлов ранее отображенный командой fmShowFileBrowser. Не обязательно вызывать команду fmHideFileBrowser при закрытии проекта. fmSetFileBrowserProperties=Настроить внешний вид и поведение обозревателя файлов. fmGetFileBrowserProperties=Получить сведения об обозревателе файлов. Получаемые параметры имеют такой же вид как и в команде fmSetFileBrowserProperties. Чтобы сразу получить все свойства, укажите ключевое слово "ALL". fmSetHeaderColumnWidths=Установить ширину каждого столбца в заголовке обозревателя файлов. Эту команду можно объединить с командой fmGetHeaderColumnWidths для сохранения и восстановления изменений которые делают пользователи. fmGetHeaderColumnWidths=Получить ширину каждого заголовка столбца обозревателя файлов. Заголовок можно скрыть или показать командой fmSetFileBrowserProperties. fmFocus=Сфокусировать клавиатуру на указанном обозревателе файлов. Обозреватель файлов должен быть сделан предварительно видимым командой fmShowFileBrowser. fmEnable=Активировать обозреватель файлов. Активный обозреватель может реагировать на события мыши и клавиатуры. Используется в сочетании с командой fmDisable. fmDisable=Дективировать обозреватель файлов. Дективированный обозреватель не может реагировать на события мыши и клавиатуры. Используется в сочетании с командой fmEnable.
Обработка файлов fmSelectAll=Выбрать все файлы и/или папки в текущей папке. fmSelectSome=Выбрать определенные файлы и/или папки в текущей папке по имени или маске. Список может содержать фактические имена файлов или маску файлов с подстановочными символами (? и *). fmSelectOne=Выбрать один файл в текущей папке соответствующий определенному имени или маске. Эта команда аналогична fmSelectSome, за исключением того, что только один файл из всех будет выбран. fmInvertSelection=Инвертировать текущее выделение. Не выбранные элементы станут выбранными и наоборот, с выбранных будет снято выделение. fmUnselectAll=Очистить текущее выделение. fmCopySelected=Скопировать выбранные элементы из одного подключения в другое. Элементы (файлы и папки) можно выбрать программно командой fmSelectAll или fmSelectSome, или вручную если был создан видимый обозреватель файлов. fmMoveSelected=Переместить выбранные элементы из одного подключения в другое. Элементы (файлы и папки) можно выбрать программно командой fmSelectAll или fmSelectSome, или вручную если был создан видимый обозреватель файлов. fmDeleteSelected=Удалить минуя корзину выбранные элементы из подключения. Элементы (файлы и папки) можно выбрать программно командой fmSelectAll или fmSelectSome, или вручную если был создан видимый обозреватель файлов. fmRecycleSelected=Удалить в корзину выбранные элементы подключения. Элементы (файлы и папки) можно выбрать программно командой fmSelectAll или fmSelectSome, или вручную если был создан видимый обозреватель файлов. fmRenameSelected=Переименовать выбранные элементы подключения. Вы можете использовать как часть имени подстановочные символы (* и ?). fmCreateFolder=Создать новую папку. Если имя папки не содержит путь, то папка будет создана в текущей папке подключения. fmGetSelectedInfo=Получить размер, тип, дату, время, атрибуты или разрешение для всех выбранных элементов. fmSetSelectedInfo=Установить дату, время, атрибуты или разрешение для всех выбранных элементов. fmFileListToVar=Скопировать список содержащий имена выбранных элементов в переменную.
Расширенная обработка файлов fmCopyTo=Копировать или загрузить список элементов. Элементы будут скопированы в текущую папку подключения. Эту команду можно использовать программно, без участия пользователя. fmMoveTo=Переместить список элементов. Элементы будут перемещены в текущую папку подключения. Эту команду можно использовать программно, без участия пользователя. fmCopyFrom=Копировать или загрузить список элементов подключения в указанную локальную папку. Имя каждого элемента должно включать в себя полный путь. fmMoveFrom=Переместить список элементов подключения в указанную локальную папку. Имя каждого элемента должно включать в себя полный путь. fmCopyEmbedded=Копировать список вложенных файлов скомпилированного приложения в текущую папку подключения. Файлы предназначенные для извлечения должны быть включены в встроенный список файлов вашего проекта. fmDelete=Удалить минуя корзину список элементов подключения. Имя каждого элемента должно включать в себя полный путь. fmRecycle=Удалить в корзину список элементов подключения. Имя каждого элемента должно включать в себя полный путь. fmRename=Переименовать список элементов подключения. Имя каждого элемента должно включать в себя полный путь. fmFileExists=Определить существование определенного элемента на локальном или удаленном подключении. Имя файла или папки должно включать в себя полный путь. fmGetItemInfo=Получить размер, тип, дату, время, атрибуты или разрешение для определенной папки или файла. Для получения информации сразу о нескольких элементах, используйте команду fmGetSelectedInfo. fmSetItemInfo=Установить дату, время, атрибуты или разрешение для определенной папки или файла. Для получения информации сразу о нескольких элементах, используйте команду fmSetSelectedInfo. fmShowFilePropertiesDlg=Отобразить стандартное диалоговое окно "Свойства" локального файла или папки. (Эта команда не может использоваться для файлов и папок расположенных на FTP-сервере). fmGetItemThumbnail=Получить эскиз изображения для определенного файла или папки и сохранить изображение в файл в формате PNG или BMP. (Эта команда не может использоваться для файлов или папок, расположенных на FTP-сервере).
Расширенный FTP fmSendFTPCommand=Отправить команду FTP непосредственно на сервер. Эта команда предназначена для выполнения FTP запроса напрямую и не поддерживается плагином. fmSetDefaultTransferMode=Установить режим передачи данных по умолчанию через удаленное FTP - подключение при загрузке или отправке файлов. fmAddASCIIFileTypes=Добавить одно или несколько расширений в список классификации файлов ASCII. Это используется для определения правильного режима передачи, когда в fmSetDefaultTransferMode установлено значение "Auto". fmRemoveASCIIFileTypes=Удалить одно или несколько расширений из списка классификации файлов ASCII. fmGetASCIIFileTypes=Получить все существующие расширения в списке классификации файлов ASCII и сохранить в переменной.
Разное fmShowErrors=Включить или отключить сообщения об ошибках. Установите значение "Yes" для отображения сообщений об ошибках, или "No" чтобы их отключить. Последняя ошибка хранится в глобальной переменной [FMFTP.Error]. fmTranslateStrings=Перевести строки используемые обозревателем файлов, диалоговыми окнами, прогресс барами и другими функциями NeoBookFM/FTP. Эти параметры влияют на все подключения. fmSetDragDropOptions=Настроить глобальные параметры для всех операций перетаскивания по умолчанию. fmSetDelimiter=Установить глобальный разделитель для всех действий NeoBookFM/FTP. Разделитель используется для разделения нескольких элементов в переменных. По умолчанию символ разделитель точка с запятой (;). fmCHMODNumToPermStr=Преобразовать числовое разрешение (CHMOD) в строку. Например "755" будет преобразовано в "rwxr-xr-x". Это нужно при получении или установке разрешений для файлов и папок расположенных на FTP-сервере. fmPermStrToCHMODNum=Преобразовать строку в числовое разрешение (CHMOD). Например строка "rwxr-xr-x" будет преобразована в "755". Это нужно при получении или установке разрешений для файлов и папок расположенных на / FTP-сервере. fmNumToSizeStr=Преобразовать размер файла в форматированную строку. Размер будет отформатирован включая разделитель тысяч (если это необходимо) и округлен до ближайшего гигабайта, мегабайта, килобайта или байта.
Перевод полностью обновлен. Просьба протестировать и постараться выявить ошибки. Тоже самое касается и справки. Если найдете неточности или ошибки, сообщайте о таковых. По мере возможности буду исправлять.
mishem, а с русского на английский перевести справку сможешь?
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Жаль, конечно. Просто, зная твою неудержимую увлеченность переводами, понадеялся что... Просто ту хренотень, о которой вчера говорили, я уже перевел на буржуйский, но вот справка... Застрелиться проще...
Мне на русском-то ее делать в лом, а на буржуинском... Ладно... значит - не судьба...
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Я перевожу то что мне интересно. По этому много переводов не закончено. Когда понимаю что программа или плагин не заслуживают моего внимания, бросаю.
Кстати к этому плагину справка не закончена, а просто бегло переведена, на автомате. По мере изучения плагина, буду вносить корректировки, и после выложу исправленный вариант. А на данный момент, если кому будет интересно, с такой справкой уже что то можно понять и разобраться. Плагин сильный, как я раньше в него не лазил, ума не дам.
С ним можно практически любые древовидные структуры создавать. Это то что мне надо на сегодняшний день, а уж если поглубже копнуть... Блин, было бы время и желание. Короче аналогов нет точно. Не хочешь читать хелп?
Когда понимаю что программа или плагин не заслуживают моего внимания, бросаю.
А не логичнее сначала определиться с "вниманием", а потом уже заниматься переводом? Ведь массу времени и сил бы сэкономил.
Цитатаmishem ()
Плагин сильный,
Ясный пень, это же не тот чувачелло, который как на конвейере халтуру за бабки гонит, плагин делал, а серьезные мальчиши из неософт.
Цитатаmishem ()
Короче аналогов нет точно
И согласись - он стОит своих денег. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
А не логичнее сначала определиться с "вниманием", а потом уже заниматься переводом?
Мы уже обсуждали это не раз. Не логичней. Пока делается перевод, определяются скрытые моменты и наоборот, порой понимаешь что то на что ты надеялся, этого нет.
Сделав перевод плагина и справки, я хоть в общих чертах понимаю на что он способен. А так, он у меня уже лет пять лежит, заглядывал в него не раз, а применения так и не нашел. Сейчас же, мысли крутятся куда и как ЛУЧШЕ приспособить. И это может, и это может, ... Не хочешь читать хелп?
Было дело - обсуждали, но я все никак не могу это понять, видно у нас с тобой "логики" разные. Обычно я сначала определяю задачу, а потом ищу способы и инструменты ее реализации, а не наоборот типа "куда бы это приткнуть?".
Вот потому-то я и на хрюше сижу до сих пор, т.к. она полностью меня устраивает, а не придумываю причины для перехода на новые оси с их мифическими "удобствами" и "преимуществами", между прочим.
Я этот плагин ковырнул слегка, когда он появился, примерно понял о чем он, и "отложил". Будет день, будет пища... Когда потребуется, тогда и будем разбираться...
Хотя, я не утверждаю что прав. У каждого свой путь.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Думаю кто решит пользоваться этим плагином, рано или поздно столкнется с вопросом "Как назначить для папок или файлов свои изображения".
В связи с тем что здесь можно указать любую корневую директорию, этим плагином можно создавать свою иерархию пунктов.
Например вот так:
Правда когда делал снимок, обнаружил что в окне списка файлов, эти папки отображаются обычными папками. Но для иерархии, обычно все равно придется (я так думаю) скрывать окно списка файлов.
Итак, для того чтобы изменить внешний вид папки придется использовать плагин zmFunctions, так как для папки нужно будет установить атрибут системная, или только для чтения, иначе значок не меняется. С чем это связано, пока не разобрался. Да и думаю особо и не буду разбираться.
Если у нас папка с каким то значком уже существует, то ее лучше сначала удалить, или хотя бы снять атрибут системная (или только для чтения, или оба...) иначе значок меняется не сразу. У меня во всяком случае. И создаем...
Код
zmFileSetAtrribute "Путь к папке" "System" "False" zmFileSetAtrribute "Путь к папке" "Hidden" "False" zmFileSetAtrribute "Путь к папке" "ReadOnly" "False" zmFileSetAtrribute "Путь к папке" "Archive" "False"
Где [FileName] путь к значку, или можно положить значок в папку и написать здесь только имя файла значка. Более подробно что и зачем нужно писать можно посмотреть здесь...
И напоследок устанавливаем для файла и папки атрибуты.
С файлами все проще, или наоборот может быть посложнее.
Проще, это мы значки кидаем в папки, и они отображаются тем видом какой нам нужен.
Сложнее... это для просмотра формата ico может быть выбрана в системе какая нибудь программа для иконок, и тогда все значки будут отображаться в виде значка той программы.
Чтобы этого избежать, можно придумать свои какие нибудь расширения, зарегистрировать их в реестре, и уже файлам присваивать нужное расширение для отображения.
Добавлено (26 Февраля 2015, 21:49) --------------------------------------------- Полезная информация.
Запрещенные символы Если при создании нового файла или папки (при работе в операционной системе Windows XP) вы попытаетесь в имени файла/папки применить символы / : * ? " < > | , то появится системное сообщение: "Имя файла не должно содержать следующих знаков: / : * ? " < > | ".
При работе в операционной системе Windows Vista в аналогичных случаях появляется диалоговое окно Переименование с сообщением "Указано неверное имя устройства".
Запрещенные имена Если вы попытаетесь создать файлы или папки со следующими именами: con, nul, prn, AUX, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, LPT9 (регистр букв – прописные буквы или строчные – значения не имеет), – система в таких случаях вместо введенного вами «запрещенного» имени выведет имя по умолчанию, например, Новая папка, или Текстовый документ, или Документ Microsoft Word. При этом Windows Vista выведет окно Переименование с сообщением "Указано неверное имя устройства".
Дело в том, что по «Соглашению об именованиях» эти символы и имена зарезервированы файловой системой для «внутренних» системных нужд, применять их пользователю запрещено.
Примечание. Применять для файлов и папок имена COM, COM10, COM11…, LPT, LPT10, LPT11… системой не возбраняется.
Имена файлов в FAT В файловой системе FAT использован традиционный формат имен 8.3, имена файлов должны состоять из символов ASCII. Имя файла или каталога должно состоять не более чем из 8 символов, затем следует разделитель «.» (точка) и расширение длиной до 3 символов. Первым символом имени должна быть буква или цифра. При определении имени можно использовать все символы за исключением перечисленных ниже: . " / [ ] : ; | = ,
Использование этих символов может привести к получению неожиданных результатов. Имя не должно содержать пробелов.
Соглашения именования в NTFS Имена файлов могут состоять не более чем из 255 символов, включая любое расширение. В именах сохраняется регистр введенных символов, но сами имена не зависят от регистра. NTFS не различает имена в зависимости от регистра. В именах могут быть использованы любые символы за исключением указанных ниже: ? " / < > * | : В настоящее время из командной строки можно задать имя файла длиной не более 253 символов.
Можно ли обойти запреты файловой системы Можно создать папки с зарезервированными именами с помощью Интерпретатора команд Windows, например: – нажмите Пуск –> Выполнить… –> Запуск программы –> cmd –> OK; – в открывшемся окне Интерпретатора команд после приглашения системы введите mkdir .com1 (Enter).
Будет создан каталог с именем com1. Удалить его обычным путем вы не сможете: появится окно Ошибка при удалении файла или папки с сообщением "Не удается удалить com1. Нет доступа. Диск может быть переполнен или защищен от записи, либо файл занят другим приложением" или "Не удается удалить com1. Не удается найти файл. Проверьте правильность указания пути и имени файла". Для удаления каталога com1 нужно ввести команду rmdir .com1 (Enter).
Системные папки Также Windows не позволит переименовать или переместить системные папки, такие как «Documents and Settings» (в Vista – «Пользователи»), «Windows», «System32», «Program Files». Они необходимы для нормальной работы Windows (если каким-либо образом – не в среде Windows – их переименовать/переместить, то вы не сможете загрузить операционную систему)
Некоторые Примеры Использования Системой данных символов символы «», «/», , «|», «<», «>» и «:» имеют специальное значение в Windows, в частности из командной строки, «*» и «?» эти символы используются для задания масок поэтому не могут быть использованы в имени отдельного файла. Это ограничение, по-видимому, обойти невозможно, т.к. при обращении к системным функциям для работы с файлами, Windows стопроцентно выделяет их среди других символов и интерпретирует по-своему.
Здесь нужно обратить внимание на специфическое использование символов точки «.», двоеточия «:» и пробела. Символ пробела может встречаться в имени файла или каталога. Точка используется как разделитель имени файла от расширения. Двоеточие – это разделитель между буквой диска и остальной частью пути.
Использование двоеточия не допускается нигде, кроме как после буквы диска. Исключением является файловая система NTFS, где двоеточие используется еще и в качестве разделителя между нормальным именем файла и прикрепленными к нему файловыми потоками. Точка и пробел могут стоять в любом месте имени файла, но не могут быть завершающими символами.
Это странное, на первый взгляд, ограничение существует, как объясняет Microsoft, ради совместимости новых файловых систем со старыми, такими как HPFS, используемой в OS/2 и FAT16 это ограничение частично связано с двумя существующими виртуальными файловыми объектами (так называемые «точки»). При работе с файловыми менеджерами типа TotalCMD, для перехода в предыдущую папку надо щелкать по каталогу с названием «..».
В файловых системах так обозначается родительский каталог относительно текущего пути, а текущая папка обозначается как «.». Строго говоря, эти объекты не являются настоящими файлами или каталогами. Это просто абстрактные объекты, используемые по традиции для навигации между папками. В Windows Explorer они вообще не показываются. Так как пользователь может создавать файлы, имена которых начинаются с точки (но не в Windows Explorer), то Microsoft заблокировала возможность ставить точки в конце названия, чтобы было невозможно создать файл «..». А вот чем конкретно мелкомягких не устраивают пробелы в конце названия, непонятно.
Написал функцию для проверки зарезервированных файловой системой символов и слов. Требуется установленный плагин hpwControl.
Вернет результат: Point_or_Space = Если имя состоит только из пробелов и / или точек Character = Если в имени содержаться запрещенные символы \ / : * ? " < > | Word = Если имя состоит из зарезервированного слова. или 0 если ничего запрещенного не найдено.
Поиск происходит в таком же порядке. Сначала ищутся пробелы и точки, после символы, после слова.
Все можно сделать средствами NB и без каких-либо душевных или материальных затрат. В прикреплении все то же самое, но на чистом коде NB без плагина.
Собственно, я бы построил функцию иначе, но в данном случае специально сохранена логика и атрибуты функции для варианта с плагином.
Сделано "с ходу", потому строка запрещенных символов неполная - просто лень было писАть коды всех символов. Кому надо, тот дополнит. Это всего-лишь пример. Функция не доведена до ума, там даже "лишний код" имеется (с запасом), поскольку я не очень понял что именно требуется от "зарезервированного слова", т.е. только имя целиком или "в имени", а плагин устанавливать лениво.
Да, кода чуть больше, чем в "оригинале", но зато плагин таскать не надо.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Можно, можно... Никто не спорит, но во первых, я практически всегда использую этот плагин если есть работа со строками. так что аргумент таскания с собой, не напрягает... Во вторых, от "зарезервированного слова" требуется имя целиком. В третьих узнал у Ганса как как сделать регистронезависимый поиск, так что код уменьшится еще. Ну а в четвертых, самый веский аргумент, попробуй это все с 300 словами для начала прокрутить. После засечь время, что быстрее проведет поиск, и тогда наверно поймешь почему у меня выбор в пользу плагина.
ABSOLUTE ACTION ADD ADMINDB ALL ALLOCATE ALPHANUMERIC ALTER AND ANY ARE AS ASC ASSERTION AT AUTHORIZATION AUTOINCREMENT AVG BAND BEGIN BETWEEN BINARY BIT BIT_LENGTH BNOT BOR BOTH BXOR BY BYTE CASCADE CASCADED CASE CAST CATALOG CHAR CHAR_LENGTH CHARACTER CHARACTER_LENGTH CHECK CLOSE COALESCE COLLATE COLLATION COLUMN COMMIT COMP COMPRESSION CONNECT CONNECTION CONSTRAINT CONSTRAINTS CONTAINER CONTINUE CONVERT CORRESPONDING COUNT COUNTER CREATE CREATEDB CROSS CURRENCY CURRENT CURRENT_DATE CURRENT_TIME CURRENT_TIMESTAMP CURRENT_USER CURSOR DATABASE DATE DATETIME DAY DEALLOCATE DEC DECIMAL DECLARE DEFAULT DEFERRABLE DEFERRED DELETE DESC DESCRIBE DESCRIPTOR DIAGNOSTICS DISALLOW DISCONNECT DISTINCT DISTINCTROW DOMAIN DOUBLE DROP ELSE END END-EXEC ESCAPE EXCEPT EXCEPTION EXCLUSIVECONNECT EXEC EXECUTE EXISTS EXTERNAL EXTRACT FALSE FETCH FIRST FLOAT FLOAT4 FLOAT8 FOR FOREIGN FOUND FROM FULL GENERAL GET GLOBAL GO GOTO GRANT GROUP GROUP BY GUID HAVING HOUR IDENTITY IEEEDOUBLE IEEESINGLE IGNORE IMAGE IMMEDIATE IN INDEX Index INDICATOR INHERITABLE INITIALLY INNER INPUT INSENSITIVE INSERT INT INTEGER INTEGER1 INTEGER2 INTEGER4 INTERSECT INTERVAL INTO IS ISOLATION JOIN KEY LANGUAGE LAST LEADING LEFT LEVEL Level LIKE LOCAL LOGICAL LOGICAL1 LONG LONGBINARY LONGCHAR LONGTEXT LOWER MATCH MAX MEMO MIN MINUTE MODULE MONEY MONTH NAMES NATIONAL NATURAL NCHAR NEXT NO NOT NOTE NULL NULLIF NUMBER NUMERIC OBJECT OCTET_LENGTH OLEOBJECT ON OPEN OPTION OR ORDER OUTER OUTPUT OVERLAPS OWNERACCESS PAD PARAMETERS PARTIAL PASSWORD PERCENT PIVOT POSITION PRECISION PREPARE PRESERVE PRIMARY PRIOR PRIVILEGES PROC PROCEDURE PUBLIC READ REAL REFERENCES RELATIVE RESTRICT REVOKE RIGHT ROLLBACK ROWS SCHEMA SCROLL SECOND SECTION SELECT SELECTSCHEMA SELECTSECURITY SESSION SESSION_USER SET SHORT SINGLE SIZE SMALLINT SOME SPACE SQL SQLCODE SQLERROR SQLSTATE STRING SUBSTRING SUM SYSTEM_USER TABLE TABLEID TEMPORARY TEXT THEN TIME TIMESTAMP TIMEZONE_HOUR TIMEZONE_MINUTE TO TOP TRAILING TRANSACTION TRANSFORM TRANSLATE TRANSLATION TRIM TRUE UNION UNIQUE UNIQUEIDENTIFIER UNKNOWN UPDATE UPDATEIDENTITY UPDATEOWNER UPDATESECURITY UPPER USAGE USER USING VALUE VALUES VARBINARY VARCHAR VARYING WHEN WHENEVER WHERE WITH WORK WRITE YEAR YESNO ZONE
И это думаю еще не полный список, плюс символы... Пока функцию для сравнения не буду выкладывать в связи с открывшимися новыми возможностями, выложу позже. Там всего одна строчка будет (сейчас во всяком случае одна). Так что можешь пока построить функцию как хочешь, логику не надо будет соблюдать. Не хочешь читать хелп?
А кто-то о нем понятия не имеет, или не использует (как я).
Цитатаmishem ()
Во вторых, от "зарезервированного слова" требуется имя целиком.
Так тогда ещё проще.
Да и сейчас это будет работать, только кода больше (с запасом - код обработает как и имя целиком, так и слово в имени).
Цитатаmishem ()
что код уменьшится еще.
А чего там ещё уменьшать-то? На одну-две строчки? Наверное уменьшится не код, а длина аргумента.
Цитатаmishem ()
все с 300 словами для начала прокрутить. После засечь время, что быстрее проведет поиск
Зачем мелочится-то? Давай сразу "Войну и мир" прокрутим? Покажем всю силу плагинов!
Это понятно, что, в общем случае, код плагина будет всегда быстрее, но не надо делать из плагинов фетиш, а подходить к вопросу разумно. Иначе, можно дойти до того, что вообще отказаться от кода NB, и на каждое телодвижение делать плагин. Правда, думаю, что на "войне и мире" даже плагин захлебнется.
Цитатаmishem ()
поймешь почему у меня выбор в пользу плагина.
Увы, пока я сделал только одно четкое наблюдение: у тебя ВСЕГДА выбор в пользу плагина.
"Список зарезервированных слов".... Сколько применено зарезервированных слов в твоей функции?
Кот наплакал. От этого я и отталкивался.
Цитатаmishem ()
И это думаю еще не полный список, плюс символы
Ну так не зря я намекнул на "Войну и мир".
Резюме: бесспорно на больших объемах информации плагин будет быстрее (и чем больше объем, тем быстрее), но, господа, приучайтесь к использованию NB "по-максимуму". А плагины это, конечно, хорошо, но применять их надо (по моему убеждению) только тогда, когда без них уже никак. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Сколько применено зарезервированных слов в твоей функции?
Кот наплакал. От этого я и отталкивался.
Дело в том что у меня следом идет следующая проверка как раз этих 300 слов, по этому и в первом варианте с кодом НБ даже не стал заморачиваться. Первый вариант у меня просто сначала был кодом, после решил на всякий случай да и место чтобы в редакторе освободить перенести код в функцию. Когда перенес, решил выложить ее для всех, пусть будет. Да и сам я эти функции постоянно теряю.
Тебе спасибо за твой вариант, у людей теперь будет выбор.
ЦитатаPeter ()
у тебя ВСЕГДА выбор в пользу плагина.
Если без него нельзя обойтись, то да. Если он это делает лучше и быстрее НБ, то да.
Этот плагин для работы со строками, вообще не заменимая вещь. Не надо создавать массив или записывать в файл если нужно читать построчно. Он может получать информацию, вставлять\удалять строки непосредственно в переменной. Регулярки, так это вообще не заменимая вещь, хоть и трудны на начальном этапе в понимании. По поводу работы со строками, так я тебе давно говорил что лично мне, не хватает тех функций что есть в НБ.
Да мне-то за что? Это все напрашивалось само-собой, для NB вообще семечки, но, наверное не в 300 слов. Хотя, кто знает... Цикл не тяжелый, можно его заметно упростить (удалить тот "запас" и все станет просто как мычание), забивания памяти нет... Так-что... Может попробуешь?
Цитатаmishem ()
Если без него нельзя обойтись, то да. Если он это делает лучше и быстрее НБ, то да
Конечно не исключено, что я преувеличиваю (ведь всего я не знаю), но у меня сложилось впечатление, что "да" у тебя тотально везде, где только можно применить плагин вместо кода NB. Словно необушные скрипты это какое-то абсолютное зло.
Ладно... чего там... Я ведь не утверждаю, что прав.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
но у меня сложилось впечатление, что "да" у тебя тотально везде, где только можно применить плагин вместо кода NB. Словно необушные скрипты это какое-то абсолютное зло.
Вот смотри, вернусь опять к этому разговору...
Сейчас в проекте используется плагин hpwControl. Когда то для настройки шрифта я написал код и сохранил. Сейчас я в него вставил таймеры для сравнения, есть смысл использовать плагин или нет.
В связи с тем что плагин в проекте используется, решил убрать парсер строки и циклы. Тоесть искать и получать текст непосредственно из переменной. Получилось примерно так, тоже вставлены два таймера:
Два таймера для того что бы засечь потраченное время до открытия окна выбора шрифта, и после закрытия. То есть чтобы время не тикало пока выбираю параметры шрифта. В итоге получилось что с использованием плагина время до открытия окна тратится почти в 4 раза меньше. с плагином 200 с копейками миллисекунд, без почти 900, после закрытия, в 2 раза, с плагином около 500 мллсек. без, почти секунда. Чем больше текста в редакторе, тем больше почему то уходит времени.
Вроде бы мелочь, но как ты думаешь почему о плагине подумал? Потому что эта мелочь выливается в тормоза, пусть небольшие, но заметные для меня тормоза. Которые напрягают. У меня мышь 3200 dpi, и для меня она медленная, а другие садятся и не могут ее поймать.
По этому я сторонник плагинов, но только когда в этом есть смысл. Конечно если бы он у меня в проекте не использовался, я бы еще подумал как усовершенствовать код, а так, проще и удобней его задействовать.
Когда то для настройки шрифта я написал код и сохранил.
Похвально! И дальновидно.
Цитатаmishem ()
Сейчас я в него вставил таймеры для сравнения, есть смысл использовать плагин или нет
Сравнения ЧЕГО?
Цитатаmishem ()
Два таймера для того что бы засечь потраченное время до открытия окна выбора шрифта, и после закрытия.
Цитатаmishem ()
То есть чтобы время не тикало пока выбираю параметры шрифта.
Какое время не тикало? Почему оно не должно тикать? ВООБЩЕ КАКАЯ ИДЕЯ ВСЕГО?????
mishem, я конечно дико извиняюсь, но ты нагородил такого, что без бутылки тут не разобраться! Я даже в идею врубиться не могу.
Ты, видимо решил, что я так и буду бесконечно демонстрировать варианты замены плагинов. Нет уж, пардон-те, господа хорошие! ДУМАЙТЕ САМИ! И сами ищите оптимальные алгоритмы.
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
mishem, кстати поправь теги в своем сообщении под первым спойлером, а то разъехалось все.
Добавлено (08 Марта 2015, 00:24) ---------------------------------------------
Цитатаmishem ()
Нет, это просто были мысли вслух. Не забивай голову
А я и не забиваю. Я только на "прогрессивных" забиваю!
То, что код плагина всегда будет быстрее необушного скрипта (А НЕ НЕОБУШНОЙ КОМАНДЫ), я никогда не отрицал, а наоборот - подчеркивал. Я только ратую за то, что плагины нужно использовать там, где это РЕАЛЬНО необходимо, не лениться хоть немного думать, а не цеплять к проекту целый плагин ради одной-двух команд, которые может заменить код NB.
Добавлено (08 Марта 2015, 00:31) --------------------------------------------- mishem, тебе скорости необушного скрипта не хватает? Ок, вот смотри:
Ты тут забацал цикл, а почему бы не использовать SearchStr ? Т.е. что-то типа:
Код
SearchStr "[hpwMemoFontCharset]" "[CHARSET]" "[pos]" "CaseSensitive" If "[pos]" ">" "0"
ну и т.д. Даже короче, чем плагином получается, и думаю, что будет даже быстрее плагина, во всяком случае, не медленнее точно. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
[hpwMemoFontCharset] содержит номер кодировки. Например русски 204. По этому номеру нам нужно получить название кодировки, так как твой плагин принимает только название.
И?
Или условия создавать, или цикл... Ладно, у меня уже голова гудит за сегодня... Мож после вернусь к этому вопросу...
Это потому-что я твой скопипастил (вообще это надо удалять - смысла в нем нет).
Цитатаmishem ()
Ну нашел ты позицию, а дальше что?
Просто я не понял твою идею - думал, что ты хочешь убедиться в наличии кодировки. Хорошо, мне тоже не особо охота напрягать мозг сейчас (тем более, что надо идти шашлык на завтра делать).
Не хочешь цикл, тогда другой вариант - использование ListBox. У ListBox есть такая фича как ListBoxFindItem Все те же два массива, только один лежит в ListBox (невидимом). Надеюсь дальнейшее объяснять не потребуется. Все то же самое, что и в плагине.
И, плиз, только не говори мне, что использование ListBox (или ComboBox) менее разумно, чем плагин. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
В моем данном случае менее разумно. Плагин уже задействован. Зачем городить огород из лишних объектов? В другом случае, листбокс как вариант хороший, но не всегда. Есть тоже ньюансы, точно не помню, но по моему поиск происходит без учета регистра. К примеру если нужно найти \W а \w будет на строку раньше, то до \W дело не дойдет.
Это - единственная причина, оправдывающая использование плагина в данном случае. Главное - чтобы плагин был задействован когда он необходим, а не так же.
А "огорода" никакого нет. Например, в том же Delphi для работы с массивами строк весьма активно используется TStringList, необушный ListBox очень похож на него. Разумеется TStringList может намного больше необушного ListBox, но сама идея использования вовсе не огород, тем более, что в невидимом варианте на ListBox не уходят никакие "перерисовки-отрисовки". Просто инструмент и все. Он и даден для того, чтобы им пользовались.
Цитатаmishem ()
К примеру если нужно найти \W а \w будет на строку раньше, то до \W дело не дойдет.
mishem, естественно найти во всем можно какие угодно ньюансы, только ты не забывай, что в данном случае ты ищещь не слова, а номер кодировки. Да и со словами было бы тоже все ОК, т.к. регистр значения не имеет.
Добавлено (08 Марта 2015, 02:23) ---------------------------------------------
Цитатаmishem ()
Удаляй. Мы опять от темы отошли.
Хорошо, чуть позжее
Добавлено (08 Марта 2015, 06:17) ---------------------------------------------
Цитатаmishem ()
В итоге получилось что с использованием плагина время до открытия окна тратится почти в 4 раза меньше. с плагином 200 с копейками миллисекунд, без почти 900
Никак не давали мне покоя эти цифры. Итераций цикла, как и элементов массива кот наплакал, цикл короткий и примитивный до безобразия. ОТКУДА 900 мс? Почти секунда!!!!
Ну не может NB так тормозить!
mishem, а как ты считал потраченное время?
Знаешь, я взял дэмку от VLC-плагина и рещил провести аналогичный эксперимент. Вот код подпрограммы по загрузке в ListBox и в ComboBox списка радиостанций:
Я только добавил сам таймер (для подсчета), а также его старт и стоп в начале и конце подпрограммы соответственно. Одна радиостанция (строка в списке) выглядит так:
Цитата
#http://www.sky.fm/mp3/the80s.pls*80, 80, 80s! - SKY FM
т.е. сначала метка (#), потом - адрес, потом (после *) - название.
Как видищь и подпрограмма длиннее и цикл НАМНООООГООО тяжелее, чем ты показал.
Угадай - сколько потребовалось миллисекунд на загрузку (причем, с обработкой в цикле и в два ListBox) списка из 97 строк (радиостанций), т.е. на выполнение всей подпрограммы?
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Чисто риторический вопрос, а зачем ты таймер в 100 миллисекунд выставил?
ЦитатаPeter ()
Угадай - сколько потребовалось миллисекунд на загрузку
Дай догадаюсь... наверно меньше 100?
Условие задачи: Мы не знаем сколько будет ехать поезд, но знаем что не больше суток. Как определить с помощью таймера, сколько ехал поезд?
Добавлено (08 Марта 2015, 15:15) --------------------------------------------- Что то перечитал свой пост, получается что я умничаю как некоторые товарисЧи.
Думаю ты и сам уже понял в чем ошибка, поясню для новеньких...
Время таймера нужно выставить больше предположительно затраченного. Например если мы видим что код работает 10 секунд, то нужно выставить время срабатывания таймера больше 10 секунд. Я всегда с этим особо не заморачиваюсь, и просто добавляю в конец 5-6 нулей. Сколько это по времени? Не считал, но точно больше чем код работает.
Нам нужно прошедшее время. По этому указываем переменную прошедшего времени. После TimerStop в ней будет находится прошедшее время в миллисекундах.
Если же мы выставили например 100 миллисекунд, то таймер после каждого срабатывания начинает отсчет с начала. То есть прошедшее время ни как не может быть больше 100 миллисекунд.