AutoIT,打印数组输出到文本文件

时间:2014-03-03 09:57:57

标签: arrays string ascii autoit

这是我在Stackoverflow上的第一篇文章!任何帮助将不胜感激。

我是一名AutoIT初学者,尝试创建一个带字符串的脚本,将其转换为ASCII并使用 StringToASCIIArray

将其保存在数组中

我想要实现的是,我需要将输出打印在文本文件中,因此我可以将其复制以供以后使用。

我尝试过使用 ConsoleWrite 功能,这些字符就像我期望的那样打印出来,但是如果有人能指出我正确的方向将它们打印成新文本会很好文件什么的。谢谢!

以下是代码:

#include <MsgBoxConstants.au3>
#include <Array.au3> 

Test()

Func Test()
; Convert the string to an ASCII array.
Local $aArray = StringToASCIIArray("Hi, this is a new string")
Local $sizeArr = UBound($aArray)

For $i = 0 to $sizeArr - 1
    ConsoleWrite("Chr(" & $aArray[$i] & ")" & " & ")    ; need this output     in a new variable?
Next

;Run("notepad.exe")
;WinWaitActive("Untitled - Notepad")
;Send($aNewArray)
EndFunc   

更新 我设法通过创建一个控制台应用程序来获取输入字符串,将输入转换为ascii并在控制台上显示格式化输出。我可以简单地从那里复制输出....虽然不是最好的解决方案,但它有效:)

代码::

#include <MsgBoxConstants.au3>
#include <Array.au3>

myexample()

Func myexample()

 Local $sInput
 While True
    $sInput &= ConsoleRead()
    If @error Then ExitLoop
    Sleep(25)
WEnd

Local $aArray = StringToASCIIArray($sInput)     ; store string to array
 Local $sizeArr = UBound($aArray)       ; Get array size

For $i = 0 to $sizeArr - 1               ;For each element of array Do:
ConsoleWrite("Chr(" & $aArray[$i] & ")" & " & ") ;write to console ascii in Chr() 
Next

EndFunc

3 个答案:

答案 0 :(得分:1)

只需使用_FileWriteFromArray即可获取您的文件。

为什么要把字符串放在一个数组中呢?转换它,只需使用FileWrite

答案 1 :(得分:0)

For $i = 0 to $sizeArr - 1
    ConsoleWrite("Chr(" & $aArray[$i] & ")" & " & ")
    FileWrite("test.txt", $aArray[$i] & @CRLF)
Next

答案 2 :(得分:0)

你好,这就是你想要的吗?

;~ string = example string :: output = Chr(101) & Chr(120) & Chr(97) & Chr(109) & Chr(112) & Chr(108) & Chr(101) & Chr(32) & Chr(115) & Chr(116) & Chr(114) & Chr(105) & Chr(110) & Chr(103)

Global $re = Test('example string')
ConsoleWrite($re & @CRLF)
FileWrite(@ScriptDir & '\output.txt', $re)
ShellExecute(@ScriptDir & '\output.txt')

Func Test($str)
    ; Convert the string to an ASCII array.
    Local $aArray = StringToASCIIArray($str)
    Local $s = ''

    For $i = 0 To UBound($aArray) - 1
;~      ConsoleWrite("Chr(" & $aArray[$i] & ")" & " & ") ; need this output     in a new variable?
        $s &= "Chr(" & $aArray[$i] & ") & "
    Next
    $s = StringTrimRight($s, 3) ; delete the last "blank & blank"
    Return $s
EndFunc   ;==>Test