Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Приветствую, я тут новенький, так что сильно не ругайте, если что не так... Недавно заинтересовался NB, только вот програмированием занимался последний раз лет 15 назад на бэйсике У меня есть несколько вопросов: какими командами лучше воспользоваться, чтобы копировать выбранные JPG фотки из разных путей в одну, заранее поготовленную программой папку, при этом важно переименование файлов в дату и время съемки (думаю так легче будет их сортировать потом). Как создать уменьшеные копии файлов (для превью) Пока все, заранее спасибо. Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...
Сообщение отредактировано Videomonstr - Ср, 20 Мая 2009, 09:38
С копированием, созданием папки и изменением размера я догадался, а вот с изменением имени файла чегото неочень, я всю справку уже облазил в поисках команды по этому поводу, и кроме изменения расширения файла ChangeFileExt ничего ненашел, подскажите, что делать? И по проводу применения имени в виде даты и времени создания файла можно разобраться с помощью переменных, только чем прочитать значение этого параметра в файле? И что толком делает эта команда StrParse а то в хэлпе непонятнро немного Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...
Просто в результате копирования файлу будет присвоено другое имя. Иными словами, "копирование" вовсе не означает обязательно то же самое имя.
Quote (Videomonstr)
чем прочитать значение этого параметра в файле?
Штатными средсвами NB не получится. Только при помощи плагина, но я пока такового не знаю...
Quote (Videomonstr)
что толком делает эта команда StrParse
Разбивает по указанному разделителю одну строку на несколько отдельных строк, и сохраняет результат в массиве переменных. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Просто в результате копирования файлу будет присвоено другое имя. Иными словами, "копирование" вовсе не означает обязательно то же самое имя.
а как обстоят дела в этом случае с несколькими файлами? Когда требуется сделать диалог с выбором пользователя файлов для копирования по типу FileOpenBox "Добавить фотографию" "Фотографии|*.JPG;*.JPEG" "" "[FotoLoad]" "Multiple" Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...
а как обстоят дела в этом случае с несколькими файлами?
Команда FileCopy копирует только один файл. Поэтому, для копирования группы файлов, их нужно поместить в список или в массив переменных (при помощи StrParse), и копировать последовательно по одному. - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Достаем дату создания файла vbs-скриптом -- Dim objFSO, objFile, strFile, strDate strFile = "c:\windows\system32\winlogon.exe" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.GetFile(strFile) strDate = objFile.DateCreated MsgBox ("Дата создания файла " & strFile & " - " & strDate) -- Переменная strFile должна содержать путь к требуемому файлу Переменная strDate будет содержать дату и время создания Строку вывода MsgBox можно убрать -- можно приделать копирование *.jpg файлов из одной папки в другую с одновременным переименовыванием с использованием даты
Про массив переменных это то что надо Только я пока еще непонял как заставить правильно работать vbs-скрипт я пока незнаю (и мне негде посмотреть) команды скрипта Дело в том, что мне ненужна дата создания или изменения фотографии в его имени, мне нужна дата и время самого снимка, а для этого мне надо влезть в содержимое самого файла exif:DateTimeDigitized="2007-01-01T05:05:50+06:00" Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...
Сообщение отредактировано Videomonstr - Чт, 21 Мая 2009, 10:23
влезть в содержимое самого файла exif:DateTimeDigitized="2007-01-01T05:05:50+06:00"
ну и это можно, только с помощью сторонней утилиты которые извлекут exif и скрипта, который будет переименовывать/копировать файлы с использованием exif Как задавать вопросы
Недавно заинтересовался NB, только вот програмированием занимался последний раз лет 15 назад на бэйсике
Очень хорошо, Мы рады Насчет програмирования, не страшно, НБ очень легко понимается и усваивается для простых решений.
Quote (Videomonstr)
Как создать уменьшеные копии файлов (для превью)
Если для показа в самом проекте, то просто надо создать объект "рисунок" с нужным размером, в свойствах поставить например: растянуть, сохронять пропорции.
Quote (DEMBEL)
Ага... опять мне работенку подкинули?
да пора делать плагин для НБ, с одним лишь параметром - вставить VBS код от DEMBEL
Добавлено (21 Май 2009, 19:30) ---------------------------------------------
Quote (Videomonstr)
Только я пока еще непонял как заставить правильно работать vbs-скрипт
да пора делать плагин для НБ, с одним лишь параметром - вставить VBS код от DEMBEL
Зачем плагин? Для этого есть необушные функции!
Quote (sp3d)
я использую НБ - 5.4 версии, так что если версия выше, то я там незнаю, но думаю команда не изменилась
В версии NB 5.6 можно весь VB-скрипт "обернуть" в NB-функцию, что гораздо удобнее!
Добавлено (21 Май 2009, 23:22) ---------------------------------------------
Quote (DEMBEL)
может Peter плагин наваяет...
Теоретически можно... Но, exif - исключительно специфичная информация, и бывает нужна раз в сто лет в обед! Делать специально для этого плагин как-то... гм... Если только с оказией "в компании" с другим функциями... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
В версии NB 5.6 можно весь VB-скрипт "обернуть" в NB-функцию, что гораздо удобнее!
3 раза перечетал пост, и немогу никак понять-(VB-скрипт "обернуть" в NB-функцию)это как, извиняюсь если вопрос покажется идиотским, но я не могу ни как понять
Это... насчет exif и прочих данных... короче, можно использовать и vbs - нашел в сети несколько кусков кода, состряпал и запаковал, но работает чудовищным методом - читает первые 20000 байт картинки и начинается парсинг и изощрение по вытаскиванию данных exif, iptc и превью... Запускать с командной строкой: ExifTest Имя_файла.jpg Это просто демо, доводить до ума скрипт и приделать переименование/копирование это надо попотеть, а щас чето некогда...
DEMBEL спасибо, попытаюсь разобраться и выудить, скомбинить из него только необходимое. На самом деле надо как то выудить из JPG файла методом поиска: exif:DateTimeDigitized=" с последующим копированием 25 следующих символов в переменную, а затем просто удалить ненужные символы. Ошибочка, строка exif:DateTimeDigitized=" непроканает,не на всех фотках она есть быть, а тока после фотошопа появляется, на всех вотках эта инфа в разных местах первых строках, так что тут и правда надо голову поломать, как эту инфу отследить Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...
Сообщение отредактировано Videomonstr - Пт, 22 Мая 2009, 09:40
да что ты выудишь из exe-файла то, а разобраться в скрипте и я только с пивом могу, он большой... если ковыряться со скриптом дальше, то потребуется время... А сейчас я просто показал что принципиальная возможность получения любых данных существует. Как задавать вопросы
Да я то знаю что она существует, я только хочу придумать пути решения, причем не сильно перегружающие систему и главное универсальные для всех файлов JPG. Похоже надо перенести 10-ок первых строк из фотки в переменную, а потом разбросать по массиву переменных цифровое содержимое, произвести сравнение этих переменных и найти самые "старые" записи, они то и будут являться датой съемки, или на худой конец датой создания файла. Затем объединить полученные переменные в нужной последовательности в одну переменную, и присвоить её значение имени файла при копировании. Вот как то так. Жаль что я незнаю досканально всех команд, а то уже б давно сделал так. Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...
Сообщение отредактировано Videomonstr - Пт, 22 Мая 2009, 12:11
Videomonstr, попробуйте вот это в прикреплении. Это та информация, которая вам нужна? Только дата/время съемки? Там много разного хлама (типа экспозиции, разрешения, и т.п.), я ещё не во всем разобрался пока...
Quote (sp3d)
3 раза перечетал пост, и немогу никак понять-(VB-скрипт "обернуть" в NB-функцию)это как, извиняюсь если вопрос покажется идиотским, но я не могу ни как понять
"Обернуть" и т.п. - игра слов. В VB-функции все делается точно так же, как и в необушной, с той-лишь разницей, что "внутри" (ИГРА СЛОВ!) функции находится скрипт VB,а не NB! Причем, следует иметь ввиду, что "смешивать" (ИГРА СЛОВ!) два скрипта NB и VB "внутри" (ИГРА СЛОВ!) функции нельзя!
Quote (DEMBEL)
ну например function (входящие параметры, ... , входящие параметры) ... скрипт ... end function
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Спасибо конечно, только мне кажется правильнее будет не найти готовое решение, а дойти до него самостоятельно, ну и не без помощи желающих. Поскольку если свои программы делать используя чьи то другие разработки, то может и делать тогда их необязательно, всегда найдется то, что кто то уже сделал. Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...
по моемому, все что можно было сделать, кто то уже сделал
Quote (Videomonstr)
Спасибо конечно, только мне кажется правильнее будет не найти готовое решение, а дойти до него самостоятельно
Согласен, но в НБ многое не реализовать, приходится прибегать к хитростям типа VBS, BAT и т.д. А чтобы самому решить, то надо изучать более серьезные языки
Вот поэтому я ипрошу помощи и подсказки, а не готовые программы. Вот что я попытался сделать, зная точно, что файл 2009 года, и в нем есть эта запись: FileRead "Имя файла JPG" "All" "[X]" SearchStr "2009" "[X]" "[Y]" SubStr "[X]" "[Y]" "19" "[Z]" ClearVariables "[X]" SaveVariables "Файл.txt" Получилось: Y=0 Z=яШяа JFIF H H другими словами SearchStr не нашел в переменной X запись "2009" Чего я тут неправильно понимаю? Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...
Спасибо конечно, только мне кажется правильнее будет не найти готовое решение,
А какое же решение вы желаете найти? Собственными средствами NB этв задачу (вытаскивание нужной вам информации) НЕ РЕШИТЬ! Вообще-то, это нормальная практика - применять плагины, если нужные функции в главной программе отсутствуют. И никто не предлагал вам готового решения всех ваших идей. Вам нужно было извлечь exif-информацию из файла? Вам показали, что это возможно. И сделать такой плагин для NB - полчаса/час работы (ну, вместе с "вылизыванием" - два). Вы отказались! Что ж... Вам виднее... - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Нет, мне в EXE файле это как то не виднее, если б я узнал как он сделан, было б виднее. И еще интересно, в системе поиска по строкам там что количество символов как то ограничено, раз поиск ненаходит то, что в самой первой строке есть, правда 259 символом Иногда устаешь от людей, да так, что хочется взять пулемет, и... но тут же понимаешь, что патронов то на всех не хватит...
Сообщение отредактировано Videomonstr - Пт, 22 Мая 2009, 21:26
Он сделан в Delphi. Вам стало виднее? Или вас интересует его исходник? Упомянутый экзешник - просто ДЭМКА для проверки; так-сказать, проба пера!
Quote (Videomonstr)
как то ограничено
Да, ограничено! Сама NeoBook сделана в Delphi 6. В Delphi переменные типа String имеют ограничение 2 Гигабайта! - А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться
Вот что я попытался сделать, зная точно, что файл 2009 года, и в нем есть эта запись: FileRead "Имя файла JPG" "All" "[X]"
FileRead "Имя файла JPG" "All" "[X]"
Из справочного файла NeoBook:
Quote
FileRead
Purpose: Read data from an external text file.
Или я чего-то неправильно понял?
- А вам какую операционку поставить - экспи, семерку или висту? - Это ты сейчас о чем? - Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный? - Ну, конечно, надежный! - Вот, значит - экспи, без вопросов! Сейчас сделаем...
(Улицы разбитых фонарей, сезон 10, серия 17)
Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!
При модном втюхе модоподдающимся начинает нравиться