Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Привет всем! Вообщем задумка такая. Мне необходимо к примеру скопировать файл который лежит по такому адресу: D:\S.T.A.L.K.E.R\gamedata\configs\environment\dynamic_weather_graphs.ltx а скопировать мне нужно вот сюда: C:\Program Files\S.T.A.L.K.E.R\gamedata но при этом чтобы создались недастоющие папки, то есть в C:\Program Files\S.T.A.L.K.E.R\gamedata сначала создалась папка configs (C:\Program Files\S.T.A.L.K.E.R\gamedata\configs) и в ней уже environment вместе с файлом (C:\Program Files\S.T.A.L.K.E.R\gamedata\configsenvironment\dynamic_weather_graphs.ltx) И в принципи я думаю смог бы создать такую программу (NB) ну естественно выбор файла велся бы через эту программу. но мне нужно чтобы это всё происходило через "Мой компьютер". То есть захожу в "Мой компьютер" нажимаю правую кнопку мыши (на нужном файле) выбираю команду (к примеру) "Копировать с папками" и при этом выскакивало подменю (к примеру) такого содержания: 1) D:\S.T.A.L.K.E.R\gamedata\configs\environment\dynamic_weather_graphs.ltx 2) S.T.A.L.K.E.R\gamedata\configs\environment\dynamic_weather_graphs.ltx 3) gamedata\configs\environment\dynamic_weather_graphs.ltx 4) configs\environment\dynamic_weather_graphs.ltx 5) environment\dynamic_weather_graphs.ltx 6) dynamic_weather_graphs.ltx Ну естественно без цифр,и при выборе нужного пункта открывалось бы окно сохранения. И вот тут-то и возникоет вопрос возможно ли такое.
Сообщение отредактировано Woha28 - Чт, 27 Мая 2010, 01:57
Сергей, ему просто нужен тривью в проекте. Ну и поработать с деревом, снять структуру а потом ее сохранить в другое место. Задача в общем не сложная, но требующая погрызть камень науки, чего за него никто делать не будет. К стати это можно делать рекурсивно.
Добавлено (27 Май 2010, 20:14) ---------------------------------------------
Quote (Alex3A)
Сергей, ему просто нужен тривью в проекте.
ну штатных тривью в нь нет, а вот плагины есть, тут уже были темы по этому поводу, да если и на офсайт в раздел плагинов заглянуть, там вроде три варианта есть...
Quote (Alex3A)
чего за него никто делать не будет.
эт точно...
Добавлено (27 Май 2010, 20:17) ---------------------------------------------
Quote (Alex3A)
Ну и поработать с деревом, снять структуру а потом ее сохранить в другое место.
да там всего один путь используется, можно обойтись без тривью, всего три папки, в которые надо копировать для распаковщика, человек делает обычный рапаковщик ресурсов игры. Мы с Омаром уже это обсуждали, пусть ищет в темах. Хотя если использовать стандартный распаковщик, то он автоматом создает отсутствующую папку.... короче не знаю замысел автора. Пусть делает, а что непонятно спрашивает ТОЛЬКО с показом того места, где не получается!
Сообщение отредактировано Сергей - Чт, 27 Мая 2010, 20:22
Ни о каком распаковщике речи не идет (распаковщик у меня и так есть), Суть в чем: Вот смотрите Сталкер у меня установлен на диске С:\ (C:\Program Files\S.T.A.L.K.E.R)(без папки gamedata) а ресурсы распакованы на диске D:\ (D:\S.T.A.L.K.E.R\S.T.A.L.K.E.R. - Зов Припяти\gamedata) и иногда когда мне что-то нужно изменить в игре, (добавляя соответствующий файл) к примеру отключить дождь: приходится создавать папку gamedata (в C:\Program Files\S.T.A.L.K.E.R) затем в ней папку configs затем в ней папку environment и только лишь затем копировать изменённый файл dynamic_weather_graphs.ltx. Естественно это напригает каждый раз создавать новые папки. Я смогу прописать код для программы (NB) для копирования файла со структурой и в контекстное меню в "Мой компьютер" смогу засунуть но вот как дать понять программе что копировать нужно выделенный файл, то есть как она его может увидеть я не знаю. Я тоже думал как раз о реестре но я не знаю как это реализовать. К примеру я так думал что когда я в "Мой компьютер" выделяю какой нибудь файл или папку то в реестре в каком нибудь разделе это отмечается, и если дать програмее (NB) адрес этого раздела то тогда она будет знать что копировать, то есть мне всего лишь нужно не сам код для моей программы (его я и сам напишу) я хочу у вас спросить как можно сделать чтобы получить путь к выбраному мной файлу (выбраному в "Мой компьютер").
Естественно это напригает каждый раз создавать новые папки.
красавец
Quote (Woha28)
если дать програмее (NB) адрес этого раздела то тогда она будет знать что копировать, то есть мне всего лишь нужно не сам код для моей программы (его я и сам напишу) я хочу у вас спросить как можно сделать чтобы получить путь к выбраному мной файлу (выбраному в "Мой компьютер").
эка загнул во первых при открытии Мой компьютер я вижу только диски, как ты видишь там файлы я не пойму во вторых: при выделении нескольких файлов и получения их в список...хм. Есть одна идейка, сечас проверю... ха, ну вроде имеет жизнь, щас демку сваяю
Сообщение отредактировано Сергей - Пт, 28 Мая 2010, 01:32
Да скорее всего я не так выразился походу в проводнике.
да я тебя понял Короче, пример (Копирование выделеных файлов) 1-компилируешь проект(можешь разок открыть, т.с. для просмотра)да и с путями разобратся... 2-создаешь ярлык этого экзешника например - stalker_forever 3-закидываешь ярлык в папку <C:>\Documents and Settings\<юзверь>\SendTo\(<тут>должны быть твои данные) 4-для теста выбири файл(ы), которые надо скопировать 5-ПКМ --> Отправить --> stalker_forever 6-Откроется окно будет сообщение "Подтверждаете выполнения команды?" есно жми да 7- ну после всего проверь папку, если чуда не произошло, то внимательно проверь пути, у меня поначалу тоже был косяк в путях(пробел затесался) или учишь тайные руны и создаешь чудо по примерному принципу ps перд компиляцией посмотри там с папками, может для начало тестовые сделать, чтоб любимую игру не загубить...
Добавлено (28 Май 2010, 01:14) --------------------------------------------- все протестировал с копированием 10 файло, все нормально
Толко не знаю по отношению к системе корректен ли такой подход
Ну я просто от вас хренею! Визуальный компонент тривиев -такое окошко показывающее какую либо информацию, имеющую структуру дерева, пример одной из его реализаций это левая панель в проводнике, если по русски просмотр дерева, центральная часть проводника листвиев - просмотр списка. Это если в проге надо что то вам показать, для ручного выбора, если ничего показывать и выбирать не надо, просто манипулируем путями. Итого Woha28, чего ты хочеш? Много букафф написал, но чего нада не понять! Или показывать что нада или просто записывать в нужное место.
Quote (Woha28)
но вот как дать понять программе что копировать нужно
Это называется путь, и тебе просто нада озакомится с этим понятием, какие пути бывают, что такое абсолютный и относительный пути, вся твоя проблема в незнании элементарных вещей, и очевидно в нежелании об этом узнать.
да он ему и не нужен, гвоздь в том, чтобы в НБ передать список неких файлов для копирования. Мне в голову пришло тока отправка через SendTo(приемлемо это или нет незнаю), но такой подход работает, при условии конечно, что путь до гамедата не будет менятся, хотя и это можно побороть, если проект причесать.... посмотрим, что автор натестил...
Сергей, начанать надо с азов, незная их это будет не програмирование а шаманство, достаточно неправильно скопипастить кусок твоего кода и танцы с бубном обеспечены, оно тебе надо? Програмер это когда человек пишущий прогу понимает все что он пишет, каждую строчку, иначе это просто начинающее шаманство.
, чтоб навярнека, то скопируй с адресной строки путь до гамедата и без слеша на конце, можешь вообще устроить "разбор" пути на массив и т.д. короче действуй....
Добавлено (28 Май 2010, 01:49) ---------------------------------------------
Quote (Alex3A)
оно тебе надо?
конечно нет, просто хочу помочь, но вдруг он все понимает, а просто объяснить не может?! У мну тоже такое бывает. Тем более он написал
Quote (Woha28)
Я смогу прописать код для программы (NB) для копирования файла со структурой
Сообщение отредактировано Сергей - Пт, 28 Мая 2010, 01:51
Сергей, в взуальных элементах, позволяющих множественный выбор, обязательно имеется свойство - список выбраного, как правило в виде массива.
Quote (Сергей)
гвоздь в том, чтобы в НБ передать список неких файлов для копирования
Откуда передать? Вариантов море...
Добавлено (28 Май 2010, 01:52) --------------------------------------------- Если из проводника в нб проект, то это глупо, подобный проводник может быть в самом проекте.
из проводника виндовс, открыл проводник выделил несколько файлов... вот эти выделеные файлы и надо передать в проект
Добавлено (28 Май 2010, 01:57) ---------------------------------------------
Quote (Alex3A)
подобный проводник может быть в самом проекте.
да не нужен ему проводник, ему даже окно программы ненадо, в идеале, чтоб в фоне все работало... Alex3A, что афтор хотел на самом деле незнаю, я вот так понял
Добавлено (28 Май 2010, 02:00) ---------------------------------------------
Quote (Сергей)
в идеале, чтоб в фоне все работало...
Ну нахрена тогда столько воды налили?
Добавлено (28 Май 2010, 02:03) --------------------------------------------- Брать файлы по одному пути, и кидать их по другому пути. Этот текст- D:\S.T.A.L.K.E.R\gamedata\configs\environment\dynamic_weather_graphs.ltx можно разбить на составляющие и как угодно ими манипулировать.
Сергей спасибо тебе большое за пример, конечно не совсем то, но зато теперь я знаю как передать путь к файлу моей программе (NB). Но теперь у меня такой вопрос каким образом можно разбить путь по такому прнципу: D:\S.T.A.L.K.E.R\S.T.A.L.K.E.R. - Зов Припяти\gamedata\gamemtl.xr S.T.A.L.K.E.R\S.T.A.L.K.E.R. - Зов Припяти\gamedata\gamemtl.xr S.T.A.L.K.E.R. - Зов Припяти\gamedata\gamemtl.xr gamedata\gamemtl.xr gamemtl.xr Либо в отдельную (каждый новый путь без предыдущей папки) переменную или в крайнем случае по пунктам в списке, пробовал через loop но че-то никак не получается. Вот посмотри прогу, я хочу сделать по такому же принципу, но только она позволяет копировать лишь пути, мне же нужно файл чтобы после выбора (ну с какой структурой папок) появлялось окно для выбора куда копировать.
Только не пойму, зачем все усложнять, у тебя ведь пути после gamedata не меняются.... ты копируешь строго, как паказано в пункте 1или структура папок бывает разная у источника и цели?!
Quote
--------1:-------- D:\S.T.A.L.K.E.R\S.T.A.L.K.E.R. - Зов Припяти\gamedata\gamemtl.xr >> C:\Program Files\S.T.A.L.K.E.R. - Зов Припяти\gamedata\gamemtl.xr --------2:-------- или копирование происходит и по такому пути D:\S.T.A.L.K.E.R\S.T.A.L.K.E.R. - Зов Припяти\gamedata\gamemtl.xr >> C:\Program Files\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\gamemtl.xr D:\S.T.A.L.K.E.R\S.T.A.L.K.E.R. - Зов Припяти\gamedata\gamemtl.xr >> C:\Program Files\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\environment\gamemtl.xr
Quote (Woha28)
конечно не совсем то
нда, Алекс был прав, ты ждал готовый пример и поэтому растроился, есно я не сделал так, как ты хочешь - с выводом меню куда и что копировать. Оно мне надо?! это уже совсем простецкая функция-создать динамически меню с путями...
Добавлено (28 Май 2010, 08:31) ---------------------------------------------
Quote (Woha28)
Вот посмотри прогу
Извини, но я ставить прогу не буду, и своего хлама хватает....
нда, Алекс был прав, ты ждал готовый пример и поэтому растроился
Я не ждал никого готового примера, и я не растроился. я всего лишь просил помочь в одном: Как передать путь нужного мне файла в мою программу?
Quote (Сергей)
или структура папок бывает разная у источника и цели?!
В том то и дела что мне не нужно копировать всю папку gamedata, иначе зачем бы я заморачивался, я бы просто в ручную скопировал один раз и всё. Просто я заранее не знаю какие файлыы мне будут нужны.Вот смотри к примеру я скачал статью для создания квестов, и в неё говорится: • Используемые файлы: (D:\S.T.A.L.K.E.R\S.T.A.L.K.E.R. - Зов Припяти\у меня на диске)gamedata\configs\gameplay\dialogs_zaton.xml gamedata\configs\gameplay\info_zaton.xml gamedata\configs\gameplay\character_desc_zaton.xml gamedata\configs\text\rus\st_quests_zaton.xml gamedata\configs\misc\tm_zaton.ltx gam edata\scripts\dialogs_zaton.script И вот я хотел всего лишь узнать, когда я зайду и выделю: D:\S.T.A.L.K.E.R\S.T.A.L.K.E.R. - Зов Припяти\gamedata\configs\gameplay\info_zaton.xml в проводнике то как мне передать этот путь моей программе.
Как передать путь нужного мне файла в мою программу?
Читай хелп к нб, там есть соответствующие функции, позволяющие получить пути к фйлам, причем как вручную, с использованием диалога(выводится окошко типа проводника), так и автоматом без визуализации, есть функции позволяющие разделить имя и путь к фалу, такой стандартный набор есть в любом языке програмирования.
Блин помогите! Уже практически всё сделал (Благодаря Сергею, спасибо ещё раз)проблема в создании папок. То есть когда я выбираю пункт из списка с нужной мне структурой например: configs\misc\items.ltx а затем выбираю папку куда нужно копировать, C:\Program Files\S.T.A.L.K.E.R\gamedata то по идеи в папке gamedata должна сначало создатся папка configs в ней папка misc и лишь затем уже происходит копирование файла items.ltx в конечную папку misc и вот тут у меня получается какаета хрень то вообще не создаёт папки, то саздаёт обе папки в gamedata хотя в ней должна быть одна configs. То есть в уме я представляю как это сделать, что нужно к переменной которая содержит путь куда нужно копировать в данном случае C:\Program Files\S.T.A.L.K.E.R\gamedata добавить содиржимое переменной масива, сначала configs (C:\Program Files\S.T.A.L.K.E.R\gamedata\configs) и создать папку по этому новому пути, затем misc и.т.д. но вот как это реализовать в коде никак не пойму уже целый день мучаюсь и не фига, да ещё и с командой Loop я не часто сталкивался и если честно доконца не понимаю как она работает. Если можети подскажите принцип создания папки в папки. За ранее извеняюсь за столько вопросов! P.S Кстати я только сегодня заметил что под моей картинкой написано (Любопытный) оборжался, это что типо мой статус, прикольно... +10 баллов.
Добавлено (29 Май 2010, 00:38) --------------------------------------------- Всё разобрался сам, нашёл способ создавать папку в папке. Но возник другой вопрос (не столь важен как предыдущии) но всё же, подскажите возможно ли сделать так чтобы окошко которое появляется (Список со структурой) подстраиволось под длину и количество строк, то есть если первый пункт имеет длинный путь чтобы окно тоже удленялось, короче чтобы не появлялись прокруток.
можно, математикой кол-во строк*(примерно10...15)+всякие там бордеры=высота проетка или объекта. Штатных средств нет, путем проб узнаешь высоту листбокса, ну и высота проекта
Добавлено (29 Май 2010, 07:45) ---------------------------------------------
Quote
ListBoxSize "ListBox1" "[count_total]" Math "[count_total]*17" "" "[heightLB]" .это если стоит привязка листбокса SetVar "[PubHeight]" "[heightLB]" .если не стоит, то надо назначить .высоту листбокса = heightLB.
Сообщение отредактировано Сергей - Сб, 29 Мая 2010, 07:28