2014-03-03 96 views
1

這是我在Stackoverflow上的第一篇文章!任何幫助將非常感激。AutoIT,打印陣列輸出到文本文件

我是一位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 

回答

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 
1

只需使用_FileWriteFromArray讓你的文件。

爲什麼你把字符串放在數組中?轉換它只是使用FileWrite

+0

感謝,爲什麼串去數組中的原因是因爲StringToASCIIArray功能,無法找到任何其他使用。我讀了關於_FileWriteFromArray和事情是,我需要輸出在一個特定的格式。即FOR循環的輸出--->新的文本文件 – user3374215

+0

請您舉個例子。字符串,以及它保存在文件中時的外觀。 – Xenobiologist

+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) – user3374215

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

Nah,沒有那樣工作。它將數組的元素保存到文件中,而不會按照我希望它們的方式格式化它們....我想要的輸出需要這樣:** Chr(104)&Chr(116)&Chr(116) &Chr(112)***。無論如何感謝您的幫助! – user3374215