Поместите следующие строки в файл с именем ColourText.bas
на рабочем столе.
Imports System
Imports System.IO
Imports System.Runtime.InteropServices
Imports Microsoft.Win32
Public Module MyApplication
Public Declare Function GetStdHandle Lib "kernel32" Alias "GetStdHandle" (ByVal nStdHandle As Long) As Long
Public Declare Function SetConsoleTextAttribute Lib "kernel32" Alias "SetConsoleTextAttribute" (ByVal hConsoleOutput As Long, ByVal wAttributes As Long) As Long
Public Const STD_ERROR_HANDLE = -12&
Public Const STD_INPUT_HANDLE = -10&
Public Const STD_OUTPUT_HANDLE = -11&
Sub Main()
Dim hOut as Long
Dim Ret as Long
Dim Colour As Long
Dim Colour1 As Long
Dim Text As String
hOut = GetStdHandle(STD_OUTPUT_HANDLE)
Colour = CLng("&h" & Split(Command(), " ")(0))
Colour1 = Clng("&h" & Split(Command(), " ")(1))
Text = Mid(Command(), 7)
Ret = SetConsoleTextAttribute(hOut, Colour)
Console.Out.WriteLine(text)
Ret = SetConsoleTextAttribute(hOut, Colour1)
End Sub
End Module
Сохраните его и введите в командной строке следующее:
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /target:exe /out:"%userprofile%\desktop\ColourText.exe" "%userprofile%\desktop\ColourText.bas" /verbose
A файл ColourText.exe появится на вашем рабочем столе. Переместите его в папку Windows.
Для использования вы должны использовать два символьных кода для установки цвета, например 01
, а не 1
.
ColourText ColourOfText ColourOfTextWhenFinished Text
EG Чтобы установить синий цвет на белый, не передавая ни одного текста, затем красным цветом на белом тексте, заканчивая синим цветом на сером.
ColourText F1 F1
ColourText F2 71 This is green on white
или
ColourText F1 F1
cls
ColourText F4 F4
Echo Hello
Echo Hello today
ColourText F1 F1
Также интересна команда CLS
. Color
команда без параметров сбрасывает все цвета в цвета запуска.
Чтобы получить код цвета, добавьте следующие числа вместе. Используйте калькулятор в режиме программистов. Это шестнадцатеричные числа. Они могут быть добавлены вместе, например, Red + Blue + FG Intensity = 13 = D. Поскольку 10+ не использовался, фон будет черным. Цветовые коды ДОЛЖНЫ быть двумя символами, например 08
не 8
.
FOREGROUND_RED = &H4 ' text color contains red.
FOREGROUND_INTENSITY = &H8 ' text color is intensified.
FOREGROUND_GREEN = &H2 ' text color contains green.
FOREGROUND_BLUE = &H1 ' text color contains blue.
BACKGROUND_BLUE = &H10 ' background color contains blue.
BACKGROUND_GREEN = &H20 ' background color contains green.
BACKGROUND_INTENSITY = &H80 ' background color is intensified.
BACKGROUND_RED = &H40 ' background color contains red.
SELECT COUNT(grade) FROM table GROUP BY grade ORDER BY grade
не проверили его, но это должно работать. Это, однако, не покажет счет для 6 классов с, так как это не присутствует в таблице вообще...
Используйте временную таблицу для получения отсутствующих значений:
CREATE TABLE #tmp(num int)
DECLARE @num int
SET @num = 0
WHILE @num < 10
BEGIN
INSERT #tmp @num
SET @num = @num + 1
END
SELECT t.num as [Grade], count(g.Grade) FROM gradeTable g
RIGHT JOIN #tmp t on g.Grade = t.num
GROUP by t.num
ORDER BY 1
Использование Gamecat ОТЛИЧНЫХ кажется немного нечетным мне, должен будет испытать его, когда я вернулся в офисе...
способ, которым я сделал бы это, похож хотя...
SELECT
[table].grade AS [grade],
COUNT(*) AS [occurances]
FROM
[table]
GROUP BY
[table].grade
ORDER BY
[table].grade
Для преодоления отсутствия данных, где существует 0 происшествий Вы можете ОСТАВЛЕННОЕ СОЕДИНЕНИЕ на таблице, содержащей все допустимые классы. КОЛИЧЕСТВО (*) рассчитает, АННУЛИРУЕТ, но КОЛИЧЕСТВО (класс) не будет считать ПУСТЫЕ УКАЗАТЕЛИ.
DECLARE @grades TABLE (
val INT
)
INSERT INTO @grades VALUES (1)
INSERT INTO @grades VALUES (2)
INSERT INTO @grades VALUES (3)
INSERT INTO @grades VALUES (4)
INSERT INTO @grades VALUES (5)
INSERT INTO @grades VALUES (6)
SELECT
[grades].val AS [grade],
COUNT([table].grade) AS [occurances]
FROM
@grades AS [grades]
LEFT JOIN
[table]
ON [table].grade = [grades].val
GROUP BY
[grades].val
ORDER BY
[grades].val
select Grade, count(Grade)
from MyTable
group by Grade