Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Текущая папка для ibec_getfiles / 12 сообщений из 12, страница 1 из 1
15.09.2017, 15:27
    #39521923
Шавлюк Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая папка для ibec_getfiles
Есть такой блок.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
execute ibeblock as
begin
  if (ibec_getfiles(fl, '', '*.sql', __gfFullName + __gfSort) > 0) then
  begin
    i = 0;
    while (i <= ibec_high(fl)) do
    begin
      f = fl[i];
      c = 'execute ibeblock (d variant) as begin s = d; if (s is not null) then ibec_Progress('''||ibec_ExtractFileName(f)||': '' + s); end';
      ibec_ExecSQLScript(ibec_GetDefaultConnection(), f, 'StopOnError=FALSE', c);
      f2 = replace(f, '.sql', '.old');
      ibec_RenameFile(f, f2);
      i = i + 1;
    end
  end
end;

Он из текущей папки ищет sql-файлы, выполняет их, и переименовывает в *.old
Для того чтобы не указывать путь к файлам (2-й параметр в ibec_getfiles) я загружал файл этим блоком из папки с sql-файлами.
Ранее текущая папка соответствовала месту откуда я загрузил в окно редактора. Сейчас текущая папка не меняется при загрузке файла.
Это бага или фича?
...
Рейтинг: 0 / 0
15.09.2017, 16:16
    #39521957
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая папка для ibec_getfiles
Шавлюк ЕвгенийРанее текущая папка соответствовала месту откуда я загрузил в окно редактора. Сейчас текущая папка не меняется при загрузке файла.
Это бага или фича?

Вопрос в том, как должно быть правильно. Должна ли меняться текущая директория при открытии файла в каком-то из многочисленных редакторов. Я вот не знаю.
...
Рейтинг: 0 / 0
15.09.2017, 18:16
    #39522027
Шавлюк Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая папка для ibec_getfiles
IBExpertДолжна ли меняться текущая директория при открытии файла в каком-то из многочисленных редакторов. Я вот не знаю.
А нельзя ли для каждого окна держать свою Текущую папку?
Раз есть загрузка файла то логично что текущая папка относительно файла.
Хотя конечно вопрос спорный
...
Рейтинг: 0 / 0
18.09.2017, 15:59
    #39522825
o_v_a
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая папка для ibec_getfiles
Конечно, спорный. Гораздо правильнее не закладываться на какое-то определенное поведение программ.
Тем более, что IBExpert и IBEScript могут обрабатывать скрипт как-то по-разному.
Правильнее предусматривать хранение настроек, их загрузку и обработку самими скриптом, переход в нужные каталоги или формирование полного имени файлов тоже осуществлять явно.
...
Рейтинг: 0 / 0
19.09.2017, 14:59
    #39523328
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая папка для ibec_getfiles
Шавлюк ЕвгенийА нельзя ли для каждого окна держать свою Текущую папку?


Для целей загрузки/сохранения через диалог "текущая" папка и так запоминается.
Только у процесса единственная текущая папка, и переключать ее тихой сапой при переключении окна явно неправильно.
...
Рейтинг: 0 / 0
23.09.2017, 23:58
    #39525358
Шавлюк Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая папка для ibec_getfiles
IBExpert,

Есть ли какой-либо способ получить папку откуда файл загружен?
ibec_GetCurrentDir() - дает всегда папку с IBExpert
В окне редактора скриптов отображается имя загруженного файла (название окна на панели окон)
Можно ли получить имя текущего выполняемого файла?
Это было бы полезно и для ibescript (протоколирование выполненных скриптов)

Сейчас скрипты содержащие INPUT <filename> через IBExpert выполнять сложно.
Старое поведение для ibec_GetCurrentDir IMHO было более логичным
...
Рейтинг: 0 / 0
24.09.2017, 05:21
    #39525381
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая папка для ibec_getfiles
Могу сделать обработку блока события "После загрузки файла в редактор" и функцию ibec_SetCurrentDir.
Соответственно, в блоке события можно будет изменить текущую директорию со всеми вытекающими.
...
Рейтинг: 0 / 0
25.09.2017, 17:25
    #39525928
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая папка для ibec_getfiles
В свежей версии прицепи на событие Code Editor events / After load from file следующий блок:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
execute ibeblock (
  DatabaseID variant comment     'Internal ID (within IBExpert) of the database associated to the Code Editor
                                  (can be NULL or 0 if not assigned)',
  CodeEditor variant comment     'Code Editor object (pointer), reserved for future use',
  ObjectEditor variant comment   'Object Editor object(pointer), parent form of the Code Editor',
  SourceDir variant comment      'Source file directory',
  SourceFileName variant comment 'Source file name (includes directory)',
  LoadEncoding integer comment   'Encoding of source file. Possible values are __feANSI, __feUTF8, __feUTF8_BOM, __feUTF16, __feUTF16_BOM',
  IsQuickLoad boolean comment    'Indicates if there is Quick Load action performed',
  Flags variant comment          'Some additional flags which are represented as set of chars')
as
begin
  iObjType = ibec_ibe_GetObjectEditorProp(ObjectEditor, 'ObjectType');
  if (iObjType = __dboSQLScript) then -- Script Executive
  begin
    ibec_SetCurrentDir(SourceDir);
  end;
end
...
Рейтинг: 0 / 0
09.07.2018, 21:46
    #39671828
RazBoyNik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая папка для ibec_getfiles
Ощутил отсутствие относительных путей на собственной шкуре...
Пишу разного рода мини програмки экспорта данных в CSV, XML и т.д.
Для подключения к базе и настроек использую .ini Понятное дело, лежат они под ногами IBEScript.
В IBExpert загрузил скрипт и работаешь с ним, видит эти ini. Но понадобились новые функции, обновился и...
Искал как заставить "эксперт" видеть путь к скрипту(заодно и .ini), но...
Копировал файл с настройками в каталог эксперта, пока не увидел этой темы:
http://www.sql.ru/forum/1288237/ibescript-ini
Теперь в скриптах пишу значения по умолчанию, аля:
Код: sql
1.
OKPO = IBEC_INI_READSTRING(INI_FILE, 'data', 'OKPO', '1231231231')


Данные подключения IBEScript читает сам, а експерт использует текущее подключение.

Все ж иногда полезная штука, знать путь скрипта. Для отладки и есть не мои скрипты, которые используют "..\"
Если можно, расскажите более детально куда "прицепить блок" из предыдущего сообщения. И будет ли он действовать на SQL Editor?

P.S. Попутно (если нужно открою отдельную тему), можно ли заставить "Format query text(Alt+F)" форматировать ibeBlock? Удаляю префикс ibe, чтоб отформатировало в стиле "execute block".
...
Рейтинг: 0 / 0
10.07.2018, 11:03
    #39671944
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая папка для ibec_getfiles
RazBoyNikЕсли можно, расскажите более детально куда "прицепить блок" из предыдущего сообщения. И будет ли он действовать на SQL Editor?


Закладка ฺBlocks в DB Explorer, в контекстном меню дерева блоков есть "Create\Edit event block".

RazBoyNikP.S. Попутно (если нужно открою отдельную тему), можно ли заставить "Format query text(Alt+F)" форматировать ibeBlock? Удаляю префикс ibe, чтоб отформатировало в стиле "execute block".

Форматтер не знает про синтаксис IBEBlock, обучать его этому пока не планируется.
...
Рейтинг: 0 / 0
10.07.2018, 14:45
    #39672111
RazBoyNik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая папка для ibec_getfiles
В "SQL Editor" не работает. Как вариант можно загрузить через "Script Executive" и дальше в "SQL Editor" работать.
Свои скрипты адаптировал под стандартное поведение, чужие буду через "Script Executive".

Огромное спасибо и успехов!
...
Рейтинг: 0 / 0
10.07.2018, 14:56
    #39672118
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Текущая папка для ibec_getfiles
RazBoyNikВ "SQL Editor" не работает.

Если ты блок выше без модификации используешь, то конечно не будет работать.
В блоке ibec_SetCurrentDir(SourceDir) выполняется только для Script Executive.
...
Рейтинг: 0 / 0
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Текущая папка для ibec_getfiles / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]