Как я форматирую оператор PRINT или WRITE для перезаписи текущей строки на консольном экране?

Триггеры чрезвычайно мощны и полезны, существует любое количество сценариев, где триггер является лучшим решением проблемы.

Они - также очень хороший инструмент "взлома". Часто существуют ситуации, где Вы не находитесь в непосредственном управлении и кода и базы данных. Если необходимо ожидать 2 месяца следующей главной версии кода, все же можно применить патч к базе данных сразу тогда, можно поместить триггер на таблицу для выполнения некоторой дополнительной функциональности. Тогда, когда выпуск кода возможен, можно заменить этот триггер кодированной версией той же функциональности при желании.

В конце дня, все является "злым", если Вы не знаете то, что он делает. Решение, что триггеры - то, потому что существуют разработчики, которые не понимают их, совпадает с утверждением, что автомобили являются злыми, потому что некоторые люди не могут управлять...

8
задан Community 23 May 2017 в 11:54
поделиться

3 ответа

В рамках стандартов Fortran нет решения этого вопроса. Однако, если ваш компилятор понимает обратную косую черту в строках Fortran (GNU Fortran понимает, если вы используете опцию -fbackslash ), вы можете написать

  write (*,"(A)",advance="no") "foo"
  call sleep(1)
  write (*,"(A)",advance="no") "\b\b\bbar"
  call sleep(1)
  write (*,"(A)",advance="no") "\b\b\bgee"
  call sleep(1)
  write (*,*)
  end

Здесь используется символ обратной косой черты ( \ b ) для удаления ранее написанных символов в этой строке.

NB: если ваш компилятор не понимает advance = "no" , вы можете использовать связанные нестандартные приемы, такие как использование $ спецификатор в строке формата.

3
ответ дан 5 December 2019 в 12:10
поделиться

Следующее должно быть переносимым между системами за счет использования ACHAR (13) для кодирования возврата каретки.

          character*1 creturn
    !   CODE::
          creturn = achar(13)  !  generate carriage return
    !   other code ...
          WRITE( * , 101 , ADVANCE='NO' ) creturn , i , npoint
101     FORMAT( a , 'Point number : ',i7,' out of a total of ',i7)
13
ответ дан 5 December 2019 в 12:10
поделиться
OPEN(6,CARRIAGECONTROL ='FORTRAN')
DO I=1,5
WRITE(6,'(1H+" ",I)') I
ENDDO
-3
ответ дан 5 December 2019 в 12:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: