HTA (Html ​​приложение) VBScript Четене на текстов файл и оцветяване само на този ред

Работя върху HTA файл за чат, с който да си играя на работа...

:)

Работи доста добре, но някой е поискал да оцвети текста на всеки човек в различен цвят?

Опитвах се да го получа, но имам проблем, може ли някой да ми помогне, ако е възможно?

по-долу е основният код за това, което съм направил\намерил

стигнах до поставянето на всеки ред в масив, но след това да присвоя цвят на всеки ред, не мога да се справя...

OR

ако не мога да покажа "чат" в прозорците без използването на текстов файл, това би било добре\по-добре (спестява почистване от изтриване на нежелани текстови файлове..)

Моля, кажете ми също как да подобря кодирането си...не съм го правил толкова дълго...(няколко месеца)

Наздраве Павле.

' HTA чат

<HTA:APPLICATION 

     SCROLL="auto"
     SINGLEINSTANCE="yes"
     WINDOWSTATE="normal"
>
</head>

<SCRIPT Language="VBScript">

Sub Window_OnLoad
 Window.ResizeTo 400,300
   iTimerID = window.setInterval("Display", 100)
End Sub

    strPath = "C:\Users\Pavle\Desktop\"
    Set wshShell = CreateObject( "WScript.Shell" )
    strSender = wshShell.ExpandEnvironmentStrings( "%USERNAME%" )


Sub Display
    Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objFile = objFSO.OpenTextFile(StrPath & "Chat.txt", 1)

Do Until objFile.AtEndOfStream
    strCharacters = objFile.ReadAll
Loop

 objFile.Close


     DisplayBox.Value = strCharacters

        DisplayBox.ScrollTop = DisplayBox.ScrollHeight


 ' This splits each line.
' sArray = Split(DisplayBox.Value, vbcrlf)

End Sub

Sub InputBox

With document.parentWindow.event
 If .keycode = 13 then
    Const NORMAL_WINDOW = 1

    Const ForAppending = 8

    Set objFSO = CreateObject("Scripting.FileSystemObject")
     Set objTextFile = objFSO.OpenTextFile(StrPath & "Chat.txt", ForAppending, True)
      objTextFile.WriteLine strSender & ":" & Input.Value
       objTextFile.Close


    Input.Value = ""
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "{BACKSPACE}"


Else
   .cancelbubble = false
     .returnvalue = true
 End If

End With

End Sub


</SCRIPT>
<body>

<textarea name="DisplayBox" rows="6" cols="40"></textarea>
<BR>
<BR>
<BR>
<textarea name="Input" rows="3" onKeydown=InputBox cols="40"></textarea>
</body>
</html>`

person Pavle Stojanovic    schedule 11.01.2013    source източник


Отговори (1)


Ето някои насоки за вашата задача.

Първоначално textarea не може да има HTML, така че може не се използва като подложка за обогатен текст. За тази цел ви трябва <pre> или по-скоро <div>. Например:

<div name="DisplayBox" class="textpad" contenteditable="true"></div>

След това добавете тагове за форматиране за редовете, докато четете файла. Нещо като това:

Dim n
n = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(StrPath & "Chat.txt", 1)
Do Until objFile.AtEndOfStream
    n = n * (-1)
    strCharacters = strCharacters & "<p class='line" & n & "'>" & objFile.ReadLine() & "</p>"
Loop
objFile.Close
DisplayBox.innerHTML = strCharacters

<p> може да бъде и <div>. След това имате нужда от таблица със стилове с някои класове:

.line1 {
    color: red;
}
.line-1 {
    color: blue;
}
.textpad {
    position: relative;
    width: 400px;
    height: 200px;
    border: 2px inset;
    overflow-y: scroll;
}

Сега имате червени и сини линии в #DisplayBox. Просто стилизирайте div както искате.

(BTW това беше първият ми VBScript...)

person Teemu    schedule 11.01.2013