Редактирование имени файла при использовании export-view в Netlogo - PullRequest
1 голос
/ 22 марта 2020

Я хочу использовать export-view для сохранения изображения моей модели. Я сделал кнопку в интерфейсе для экспорта изображения (JPG, PNG или PDF) из Netlo go.

это мой текущий код в кнопке просмотра экспорта

file-open user-new-file
export-view (word "view1.jpg")
set view-number view-number + 1

В настоящее время команда открытия файла помогает показать всплывающее окно ввода перед сохранением. Во время выполнения произошла ошибка: «FILE-OPEN ожидаемый ввод будет строкой, но вместо этого получил TRUE / FALSE false». Я все еще могу сохранить файл, но это всплывающее окно время от времени

Сначала попробуйте я могу сохранить файлы последовательно. Теперь он сохраняет только один файл с именем view1 каждый раз. Что-то не так с новым кодом?

Ответы [ 2 ]

2 голосов
/ 23 марта 2020

Посмотрите на примитив user-new-file в словаре NetLo go. Это позволяет получить пользовательский ввод, а затем вы можете использовать примитив word для сохранения так же, как вы делаете это сейчас.

Краткая версия полного кода:

to testme1
  export-view user-new-file
end

Чтобы получить полное представление о том, что происходит, вот более длинная версия:

to testme2
  let fn user-new-file
  print fn
  set fn word fn ".png"
  print fn
  if file-exists? fn [file-delete fn]
  file-open fn
  export-view fn
  file-close
end

Так что на самом деле user-new-file возвращает строку для всего, что вводит пользователь. Вы можете использовать эту строку непосредственно с export-view, или вы можете немного манипулировать ею, а затем использовать ее. Я не совсем понимаю, почему вы получаете именно эту ошибку, но ваш код создает / открывает файл с именем, отличным от имени, которое вы пытаетесь экспортировать.

Например, в моем testme2 код, я добавил расширение 'png', предполагая, что пользователь не набрал это. В реальном приложении вы можете посмотреть на последние 3 символа и добавить расширение, только если требуется, например. Мой более длинный код также удаляет любой существующий файл с таким именем - я не думаю, что это требуется для представлений png, так как я думаю, что NetLo go просто перезаписывает, но экспорт в csv добавит строки в конце.

1 голос
/ 23 марта 2020

Ответ JenB может быть именно тем, что вы ищете. Но чтобы охватить другую возможность, предложенную вашим исходным именем файла, вы, возможно, хотите пронумеровать несколько файлов экспорта, возможно, экспортировать каждые несколько тиков, или когда происходит что-то интересное, или, как у вас, при каждом нажатии кнопки export-view. В этом случае, если вы определите глобальную переменную, такую ​​как view-number, вы можете использовать код

export-view (word "view" view-number ".jpg")
set view-number view-number + 1

. Это даст вам последовательные файлы "view0.jpg", "view1.jpg", " view2.jpg "... view-number инициализируется в 0, но вы можете начать с другого числа, если вы будете sh.

Charles

...