Как выводить строки построчно в текстовый файл?

0

Я сделал это htm, работая с vbs, но я ввожу что-то в testbox по строкам, он выводит все в текстовый файл в одну строку.... Как я могу сделать вывод строки за строкой так же, как строки, введенные в текстовое поле?

Другой вопрос заключается в том, что можно использовать только одну кнопку для "вывода" и "запускать пакет", вместо этого дважды щелкая?

Вот мой код, за исключением файла htm:

<html>
<head>
<title>Release To Production Files Sync To Mexico</title>

</head>

<script language="vbscript">

Sub WriteTxt_OnClick()
    Dim fso, txt

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set txt = fso.CreateTextFile("C:\work\test.txt")

    txt.WriteLine document.Submitted_Link_To_Mex.body.value

    MsgBox "File Submitted",64,"Selection"


End Sub

Sub SYNC_onClick()
     Set WshShell = CreateObject("WScript.Shell")
     WshShell.Run "C:\work\test.bat", 0
            ' 0 => hide cmd
     MsgBox("Success")

End Sub
</script>


<H2>Copy And Paste The Folder Path To Here </H2>
<body>


<form name="Submitted_Link_To_Mex">
<textarea name="body" cols="150" rows="20">

</textarea>
</form>

<br>
    <input type="button" value="1. SUBMIT" name="WriteTxt"> &nbsp; &nbsp; &nbsp;
    <input type="Button" value="2. SYNC" name="SYNC"> &nbsp; &nbsp; &nbsp;

</div>

</body>
</html>
Теги:
vbscript

1 ответ

1
Лучший ответ

Он записывает данные как одну строку, потому что вы заявляете, что программа записывает ее как одну строку. Да, когда кто-то нажимает "Enter" в текстовом поле, он разделяет строки компонентом новой строки или vbscript "vbcrlf".

Чтобы исправить это, вы можете пройти два маршрута.

Просто напишите весь контент непосредственно в блоке записи:

Sub WriteTxt_OnClick()
     Dim fso, txt

     Set fso = CreateObject("Scripting.FileSystemObject")
     Set txt = fso.CreateTextFile("C:\work\test.txt")

     txt.Write document.Submitted_Link_To_Mex.body.value

     MsgBox "File Submitted",64,"Selection"


End Sub

Ключ здесь: ".Write" вместо.WriteLine

Или

Вы можете проверить содержимое и разделить, если необходимо.

Sub WriteTxt_OnClick()
    Dim fso, txt

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set txt = fso.CreateTextFile("C:\work\test.txt")
    dim tmp : tmp = document.Submitted_Link_To_Mex.body.value
    if instr(tmp, vbcrlf) then
    dim all_lines : all lines = split(tmp, vbcrlf)
    for each line in all_lines
    txt.WriteLine line
    next
    txt.Close
End Sub

И да, вы можете вызвать sub из другого суб, это будет так:

Sub Call_Sub1
    dim foo : foo = "i am horrible at deciphering bad english translations of dracula"
    Call_Sub2 foo
End Sub
Sub Call_Sub2(str)
    dim bar : bar = left(str, 40) 
End Sub
  • 0
    огромное спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню