Как я стираю печатные символы в консольном приложении (Linux)?

Вы можете попробовать это

Select table1.ItemNo, table1.Code, table2.Value from table1
inner join table2 on table1.ItemNo = table2.ItemNo
where table1.ItemNo = '12345'

Вы можете узнать это Присоединение к SQL Server

15
задан Binny V A 10 January 2009 в 07:42
поделиться

5 ответов

Я не думаю, что необходимо принести извинения за выбор языка. PHP является большим языком для консольных приложений.

Испытайте это:

<?php
for( $i=0;$i<10;$i++){
  print "$i \r";
  sleep(1);
}
?>

"\r" перезапишет строку с новым текстом. Для создания новой строки, можно просто использовать "\n", но я предполагаю, что Вы уже знали это.

Надеюсь, это поможет! Я знаю, что это работает в Linux, но я не знаю, работает ли он в Windows или других операционных системах.

19
ответ дан 1 December 2019 в 00:50
поделиться

\r добился цели.

Для дальнейшего использования \b не работает в PHP в Linux. Мне было любопытно - таким образом, я сделал несколько экспериментов на других языках также (я сделал это в Linux - я не знаю, будет ли результатом то же в Windows/Mac)..

Работы \b в...

  • Perl
  • Ruby
  • Tcl - с кодом puts -nonewline "Hello\b"

\b не работает в

  • PHP - код print "Hello\b"; распечатывает Hello\b
  • Python - код print "Hello\b" распечатывает Hello<new line> . Тот же результат с print "Hello\b",
8
ответ дан 1 December 2019 в 00:50
поделиться

для стирания ранее печатного символа я печатаю клавишу Backspace после него: распечатайте печать "a" "\b"

ничего не распечатает (на самом деле, это распечатает и затем клавиша Backspace, но Вы, вероятно, не заметите его),

0
ответ дан 1 December 2019 в 00:50
поделиться

Я не уверен, является ли это то же в Linux, но в приложениях консоли Windows можно распечатать \r, и курсор возвратится к первой оставленной должности строки, разрешающей Вам перезаписывать все символы направо.

Можно использовать \b для движения назад отдельного символа, но так как Вы собираетесь быть обновлением Вашего индикатора выполнения \r, было бы более просто использовать, чем печать \b x количество раз.

4
ответ дан 1 December 2019 в 00:50
поделиться

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

  • echo chr(8) . " "; эхо повторяет обратный символ и перемещает курсор на одно место назад, а пробел затем перезаписывает символ. Вы можете использовать chr(8) несколько раз подряд, чтобы переместить назад несколько символов.

  • echo "\r"; вернет курсор в начало текущей строки. Теперь вы можете заменить строку новым текстом.

  • Третий вариант - установить строку и столбец позиции курсора с помощью кодов ANSI, а затем напечатать символы замены. Это может работать не со всеми терминалами:

  function movecursor($line, $column){
      echo "\033[{$line};{$column}H";
  }
9
ответ дан 1 December 2019 в 00:50
поделиться
Другие вопросы по тегам:

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