Одним из возможных простых методов (которые могут не соответствовать потребностям разных пользователей) является использование оболочки PROMPT. Это простое решение, которое может быть полезно в некоторых случаях. Вы можете использовать функцию подсказки bash, как в примере ниже:
export PS1='[\t \u@\h]\Приведенная выше команда приведет к изменению приглашения оболочки на:
[HH:MM:SS username@hostname]$Каждый раз, когда вы запускаете команду ( или нажмите Enter), возвращаясь к приглашению оболочки, в приглашении будет отображаться текущее время.
отмечает:
1) имейте в виду, что если вы подождали некоторое время, прежде чем набрать следующую команду, то это время необходимо учитывать, то есть время в приглашении оболочки отображается метка времени, когда отображалось приглашение оболочки, а не при вводе команды. некоторые пользователи предпочитают нажимать клавишу Enter, чтобы получить новое приглашение с новой отметкой времени, прежде чем они будут готовы к следующей команде.
2) Существуют и другие доступные опции и модификаторы, которые можно использовать для изменения приглашения bash, см. (Man bash) для получения более подробной информации.
Приведенная выше команда приведет к изменению приглашения оболочки на:
[HH:MM:SS username@hostname]$
Каждый раз, когда вы запускаете команду ( или нажмите Enter), возвращаясь к приглашению оболочки, в приглашении будет отображаться текущее время.
отмечает:
1) имейте в виду, что если вы подождали некоторое время, прежде чем набрать следующую команду, то это время необходимо учитывать, то есть время в приглашении оболочки отображается метка времени, когда отображалось приглашение оболочки, а не при вводе команды. некоторые пользователи предпочитают нажимать клавишу Enter, чтобы получить новое приглашение с новой отметкой времени, прежде чем они будут готовы к следующей команде.
2) Существуют и другие доступные опции и модификаторы, которые можно использовать для изменения приглашения bash, см. (Man bash) для получения более подробной информации.
Я уверен, что вы сможете это исправить, но это будет работать с предоставленным вами набором данных.
Перед тем, как начать, вам нужно будет определить два Имена (Insert / Имя / Определить). «Данные» - это диапазон вашего набора данных, «Место назначения» - это место, куда вы хотите переместить дерево.
Sub MakeTree()
Dim r As Integer
' Iterate through the range, looking for the Root
For r = 1 To Range("Data").Rows.Count
If Range("Data").Cells(r, 1) = "Root" Then
DrawNode Range("Data").Cells(r, 2), 0, 0
End If
Next
End Sub
Sub DrawNode(ByRef header As String, ByRef row As Integer, ByRef depth As Integer)
'The DrawNode routine draws the current node, and all child nodes.
' First we draw the header text:
Cells(Range("Destination").row + row, Range("Destination").Column + depth) = header
Dim r As Integer
'Then loop through, looking for instances of that text
For r = 1 To Range("Data").Rows.Count
If Range("Data").Cells(r, 1) = header Then
'Bang! We've found one! Then call itself to see if there are any child nodes
row = row + 1
DrawNode Range("Data").Cells(r, 2), row, depth + 1
End If
Next
End Sub