Перейти к содержимому раздела
Форумы CADUser
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Дерево сообщений Активные темы Темы без ответов
Ошибка загрузки файла диалогового окна
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
#1 13 января 2004г. 11:25:48

- nt
- Восстановленный участник
- На форуме с 27 мая 2003г.
- Сообщений: 29
- Спасибо: 0
Тема: Ошибка загрузки файла диалогового окна
Вопрос заключается в следующем.
Программа написана на Autolispe с использованием DCL.
Программа работала нормально, но сейчас появляются сообщения типа:
1. Диалоговые окна не доступны, т.к. dcl файлы не загружены.
2. Ошибка загрузки файла диалогового окна.
В чем может быть проблема???
#2 Ответ от Эдуард Смолянка 13 января 2004г. 11:36:31

- Эдуард Смолянка
- Восстановленный участник
- На форуме с 23 апреля 2003г.
- Сообщений: 795
- Спасибо: 0
Re: Ошибка загрузки файла диалогового окна
dcl файл должен находиться
на пути поиска файлов поддержки.
#3 Ответ от nt 14 января 2004г. 06:18:32

- nt
- Восстановленный участник
- На форуме с 27 мая 2003г.
- Сообщений: 29
- Спасибо: 0
Re: Ошибка загрузки файла диалогового окна
Спасибо, но пути прописаны.
#4 Ответ от Pilot 14 января 2004г. 09:44:12

- Pilot
- Восстановленный участник
- На форуме с 31 января 2003г.
- Сообщений: 349
- Спасибо: 0
Re: Ошибка загрузки файла диалогового окна
> nt
Тогда конкретно: Что именно сообщает Акад?
#5 Ответ от Эдуард Смолянка 14 января 2004г. 10:08:59

- Эдуард Смолянка
- Восстановленный участник
- На форуме с 23 апреля 2003г.
- Сообщений: 795
- Спасибо: 0
Re: Ошибка загрузки файла диалогового окна
> nt
А файл acad.dcl на месте?
#6 Ответ от nt 14 января 2004г. 10:40:30

- nt
- Восстановленный участник
- На форуме с 27 мая 2003г.
- Сообщений: 29
- Спасибо: 0
Re: Ошибка загрузки файла диалогового окна
Спасибо за участие.
У меня очень интересная ситуация. Данная программа стоит на нескольких компах, везде нормально работает. Но на одном ставили еще что-то и как обычно все вдруг перестало работать. Что конкретно делали не знаю, и в данный момент не могу к сожалению узнать. А сообщения которые выдавал Acad2004, описаны выше. Еще было третье. Типа- не удается найти файл base.dcl.
Мне посоветовали снести acad и установить заново, вероятно очень конкретно все сбилось. Если интересны результаты сообщу позже.
#7 Ответ от nt 9 марта 2004г. 07:59:09

- nt
- Восстановленный участник
- На форуме с 27 мая 2003г.
- Сообщений: 29
- Спасибо: 0
Re: Ошибка загрузки файла диалогового окна
После переустановки Acad все заработало отлично.
#8 Ответ от VK 9 марта 2004г. 11:02:41

- VK
- Восстановленный участник
- На форуме с 17 марта 2003г.
- Сообщений: 1,980
- Спасибо: 0
Re: Ошибка загрузки файла диалогового окна
Столкнулся с очень «интересной» ситуацией. В Лисп программе файл DCL формируется в зависимости от некоторых условий. Соответственно последовательно выполняются функции open, write-line, close и следом сразу load_dialog. Все работало нормально под w98. Но когда установил w2k, диалог пропал… Прогнал этот участок по шагам — окно диалога есть! А в автомате функция load_dialog упорно возвращала -1, как будто такого файла не существует. Поставил перед ней маленькую задержку (command «_delay» 50) и все заработало. Кто подскажет, откуда у этой проблемы ноги растут?
#9 Ответ от DMS 9 марта 2004г. 11:36:39

- DMS
- Восстановленный участник
- На форуме с 9 августа 2002г.
- Сообщений: 477
- Спасибо: 0
Re: Ошибка загрузки файла диалогового окна
> VK
а не та ли это ситуация
(while (not (setq FILE_NAME (open PATH "a")))) (close FILE_NAME)
?
Попробуй вставить.
#10 Ответ от VK 9 марта 2004г. 12:16:53

- VK
- Восстановленный участник
- На форуме с 17 марта 2003г.
- Сообщений: 1,980
- Спасибо: 0
Re: Ошибка загрузки файла диалогового окна
> DMS
Увы, ни этот ни несколько других аналогичных финтов с файлом и его свойствами не проходят… Пока найден только delay. Видимо какая то задержка именно с закрытием файла.
#11 Ответ от VK 9 марта 2004г. 12:20:53

- VK
- Восстановленный участник
- На форуме с 17 марта 2003г.
- Сообщений: 1,980
- Спасибо: 0
Re: Ошибка загрузки файла диалогового окна
Добавлю… Значение 50 миллисекунд установил с приличным запасом. Реально работоспособность восстанавливается уже при задержке в 9…11 миллисекунд, но не стабильно.
#12 Ответ от DMS 9 марта 2004г. 12:43:09

- DMS
- Восстановленный участник
- На форуме с 9 августа 2002г.
- Сообщений: 477
- Спасибо: 0
Re: Ошибка загрузки файла диалогового окна
> VK
кстати, -1 может значить ещё, что в файле имеется ошибка (или что он сейчас ещё дописывается).
Странно, но функция open можно вызывать несколько раз и она будет продолжать возвращать описатель, даже если файл уже открыт 🙁
а вот так:
(while (not (dos_openp "C:\333.txt")))
?
#13 Ответ от DMS 9 марта 2004г. 12:48:22

- DMS
- Восстановленный участник
- На форуме с 9 августа 2002г.
- Сообщений: 477
- Спасибо: 0
Re: Ошибка загрузки файла диалогового окна
извиняюсь 🙂
(while (dos_openp "C:\333.txt"))
Сообщения 13
Тему читают: 1 гость
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Что делать если диалоговое окно DCL не отображается?
Эта небольшая статья написана для тех, у кого при выборе «Просмотр DCL из редактора». См. Рис. 1.

Рис.1. Просмотр DCL из редактора
Консоль Visual LISP выдает сообщение: Не удается создать временный файл для DCL: «C:/Program Files/Autodesk/AutoCAD 2013/$vld$.dcl».
Это сообщение появляется, когда Visual LISP пытается, создать временный файл в папке, в которой у пользователя нет прав на его создания.
Чтобы, эта ошибка не появлялась, нужно открыть пользователям (или определенному пользователю) полный доступ к этой папке.
Я покажу, как это сделать в Windows 7.
Находим папку, в которую установлена программ AutoCAD, щелкаем по ней правой клавишей мыши. В контекстном меню выбираем «Свойства». См. Рис. 2.

Рис. 2. Папка, в которую установлена программ AutoCAD.
Откроется окно «Свойства: AutoCAD 2013». Перейдите на вкладку «Безопасность». В списке «Группы или Пользователи:» выберите строку «Пользователи» и нажмите на кнопку «Изменить». См. Рис. 3.

Рис. 3. Свойства папки.
Откроется окно Разрешение для группы «AutoCAD 2013». Выделите строку «Пользователи» и поставьте галочку в квадрат напротив строки «Полный доступ». См. Рис. 4

Рис. 4. Разрешение для группы
В результате галочки должны стоять во всех строках под надписью «Разрешить».
Нажимаем кнопку «Применить». Появится окно, в котором будет происходить процесс изменения прав. По окончании нажмите ОК. См. Рис. 5.

Рис. 5. Разрешение для группы.
Нажмите ОК в окне «Свойства: AutoCAD 2013». См. Рис. 6.

Рис. 6. Свойства папки.
Доступ к папке открыт. Теперь все должно работать.
LISP программа для отображения диалогового окна.
Если по какой-то причине Вы не можете изменить права доступа нужной папке, можно написать не большую LISP программы, которая будет отображать ваше диалоговое окно.
Например, если Вам нужно отобразить следующее диалоговое окно:

Создайте LISP- файл и наберите следующий текст:

В качестве полного пути к файлу DCL, укажите путь к вашему файлу (в примере это C:LISP). Так же напишите ваше имя диалога (в примере это dial_name). Остальное оставьте без изменений.
1) Сохраните Ваш файл DCL.
2) Выделите весь текст LISP программы и нажмите на кнопку «Загрузить выделенный текст»

Диалоговое окно отобразиться.
LISP программа для отображения диалогового окна:
(setq dcl_id (load_dialog "Полный путь к файлу DCL ")) ;загружаем диалоговое окно (if (null (new_dialog "Имя диалога" dcl_id)) (exit)) (action_tile "accept" "(done_dialog 1)") ;Если нажата кнопка "аccept" (action_tile "cancel" "(done_dialog 0)") ;Если нажата кнопка "cancel" (setq ddi (start_dialog)) (unload_dialog dcl_id) ;выгрузить Диалоговое окно
Приятной Вам работы в AutoCAD.
Пишите в комментариях, помогла ли Вам эта статья.
До новых встреч.
«Автор: Михаил Орлов»
У меня есть p: commandLink, который вызывает метод bean-компонента, который загружает файл с помощью сервлета Faces. Он отлично работает, пока я не добавлю диалог p: на мою страницу (commandLink не находится внутри него)
<p:commandLink value = "#{file}"
actionListener = "#{bean.download(file)}"
ajax = "false"
immediate = "true"
process = "@this"/>
Игнорируя, что здесь process = «@this» commandLink пытается обработать переменную fileName в диалоговом окне
<p:dialog header = "Edit"
widgetVar = "editDialog"
modal = "true">
<div>
<p:panelGrid>
<p:row style = "height: 50px;">
<p:column>
<p:inputText
value = "#{bean.fileName}"
validator = "#{fileName.validate}"
requiredMessage = "file name is not filled"
validatorMessage = "file with this name already exists"/>
</p:column>
</p:row>
</p:panelGrid>
</div>
</p:dialog>
И у меня есть исключение:
javax.el.PropertyNotFoundException:value = "#{bean.fileName}": Target Unreachable, 'null' returned null
Не могу включить ajax, потому что в этом случае файл не будет загружен
Бэкэнд:
public void download(InputStream is, String fileName) {
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
context.setResponseContentType(context.getMimeType(fileName));
context.setResponseHeader("Content-Disposition", "attachement;filename = " + fileName);
try (OutputStream os = context.getResponseOutputStream()) {
while(is.available() > 0) {
os.write(is.read());
}
}
catch(IOException ex) {
LOG.error(ex);
}
finally {
FacesContext.getCurrentInstance().responseComplete();
}
}
Как я могу это исправить? Без диалога все работает нормально
Я получил эту загрузку файла AsyncTask:
// ASync Task Begin to perform Billing information
class performBackgroundTask extends AsyncTask<Void, Void, Void> {
Context context;
private ProgressDialog Dialog;
protected void onPreExecute() {
// here you have place code which you want to show in UI thread like
// progressbar or dialog or any layout . here i am displaying a
// progressDialog with test please wait while loading......
Dialog.setMessage(" please wait while loading............");
Dialog.show();
}
private Context getApplicationContext() {
// TODO Auto-generated method stub
return null;
}
protected Void doInBackground(Void... params) {
// write here the code to download or any background task.
goforIt(); // example call method which will download vedio .
return null;
}
protected void onPostExecute(Void unused) {
Dialog.dismiss();
// the background task is completed .You can do the code here for next
// things
}
public void goforIt() {
FTPClient con = null;
try {
con = new FTPClient();
con.connect(globalconstant.host);
if (con.login(globalconstant.nev, globalconstant.jelszo)) {
con.enterLocalPassiveMode(); // important!
con.setFileType(FTP.BINARY_FILE_TYPE);
String substr = globalconstant.path.substring(4,
globalconstant.path.length());
String filename = substr + "/Festivale.db";
Log.e("TravellerLog :: ", substr + "/Festivale.db");
String data = filename;
FileInputStream in = new FileInputStream(new File(data));
boolean result = con.storeFile("/Festivale.db", in);
in.close();
if (result)
// Toast.makeText(getApplicationContext(),
// "A fájl feltöltve!", Toast.LENGTH_SHORT).show();
Log.v("upload result", "succeeded");
con.logout();
con.disconnect();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Но всегда получал сообщение об ошибке, это:
09-26 11:30:30.538: E/AndroidRuntime(456): java.lang.NullPointerException
09-26 11:30:30.538: E/AndroidRuntime(456): at com.eyecom.festivale.performBackgroundTask.onPreExecute(performBackgroundTask.java:25)
...
25-я строка: Dialog.setMessage(" please wait while loading............");
Пожалуйста, помогите мне, как сделать диалог прогресса, который работает с этим. оригинал вроде:
частный диалог ProgressDialog = новый ProgressDialog (это);
Но с этим тоже есть ошибка,
Конструктор ProgressDialog (performBackgroundTask) не определен
2 ответа
Лучший ответ
Вы делаете неправильные вещи, так как Dialog никогда не инициировал его, просто объявил, что он не определен. Другое дело, что ключевое слово Dialog уже является именем класса всякий раз, когда вы определяете начальный символ имени объекта / переменной, если в алфавите он должен быть в нижнем регистре. Все заглавные буквы для начального символа используются для имени класса.
Отредактировано
private ProgressDialog dialog;
protected void onPreExecute() {
dialog = ProgressDialog.show(YourActivity.this, "Processing", "please wait while loading............");
}
И в onPostExecution(Void unused)
onPostExecution(Void unused){
if(dialog!=null)
dialog.dismiss();
}
1
Pratik
26 Сен 2012 в 15:56
public class async extends AsyncTask<void, void, void>{
private Context context;
ProgressDialog prog;
public async(Context context) {
this.context = context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
prog=new ProgressDialog(context);
prog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
prog.setMax(100);
prog.show();
}
// ...
}
Затем, чтобы создать и запустить эту AsyncTask:
async mTask = new async(context);
mTask.execute();
1
rajeshwaran
26 Сен 2012 в 16:00