joint
发表于 2017-6-27 11:34:16
回复joint
哦,那是笔误,把Local $sStr = '"' & StringReplace($aArray[$i][$j], '"', '""') &...
tubaba 发表于 2017-6-27 11:27 http://www.autoitx.com/images/common/back.gif
唉,我昨天用模拟数据测试是正常的,所以,就搞晕了。
Local $array
For $i = 0 To 99
For $j = 0 To 7
$array[$i][$j] = "Item " & StringFormat("%02i", $i) & StringFormat("%02i", $j)
Next
Next
_ArrayDisplay($array)
_SaveToCsv ($array,@ScriptDir&"\tools\yd.csv")
joint
发表于 2017-6-27 12:11:46
回复joint
哦,那是笔误,把Local $sStr = '"' & StringReplace($aArray[$i][$j], '"', '""') &...
tubaba 发表于 2017-6-27 11:27 http://www.autoitx.com/images/common/back.gif
另外,不是一维,是按列追加的二维表。用现在的代码存储的csv文件是空的,吃玩饭我再看看是怎么回事。
tubaba
发表于 2017-6-27 12:32:13
检查一下得到的$array是否正确.
joint
发表于 2017-6-27 12:47:30
本帖最后由 joint 于 2017-6-27 13:03 编辑
检查一下得到的$array是否正确.
tubaba 发表于 2017-6-27 12:32 http://www.autoitx.com/images/common/back.gif
$array是正常的。需要说明以下,与[$i][$j]循环按行方式产生的不同,这个是按列产生的数组。
For $i = 0 To $iItemCount - 1
$aText[$i] = ControlListView('', '', 1703, 'GetText', $i, 0)
$aText[$i] = ControlListView('', '', 1703, 'GetText', $i, 1)
$aText[$i] = ControlListView('', '', 1703, 'GetText', $i, 2)
$aText[$i] = ControlListView('', '', 1703, 'GetText', $i, 3)
$aText[$i] = ControlListView('', '', 1703, 'GetText', $i, 4)
Next
_ArrayDisplay($aText)
这个取的是5列,和全部的行。
tubaba
发表于 2017-6-27 14:20:11
把你_arraydisplay显示的数据截图看一下
tubaba
发表于 2017-6-27 15:45:29
本帖最后由 tubaba 于 2017-6-27 15:47 编辑
用 savetocsv将上面的数据写文件是空的?
Func _SaveToCsv1($aArray, $sCsvSavePath)
Local $csv = FileOpen($sCsvSavePath, 2 + 8)
If UBound($aArray, 0) = 1 Then
For $i = 0 To UBound($aArray) - 1
Local $sStr = '"' & StringReplace($aArray[$i], '"', '""') & '"'
FileWriteLine($csv, $sStr)
Next
ElseIf UBound($aArray, 0) = 2 Then
For $i = 0 To UBound($aArray, 1) - 1
Local $sStr = ''
For $j = 0 To UBound($aArray, 2) - 1
$sStr &= '"' & StringReplace($aArray[$i][$j], '"', '""') & '",'
Next
$sStr = StringTrimRight($sStr, 1)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sStr = ' & $sStr & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console;加这行调试下,看看控制台输出
FileWriteLine($csv, $sStr)
Next
EndIf
FileClose($csv)
EndFunc ;==>_SaveToCsv1
joint
发表于 2017-6-27 16:05:10
本帖最后由 joint 于 2017-6-27 16:26 编辑
用 savetocsv将上面的数据写文件是空的?
tubaba 发表于 2017-6-27 15:45 http://www.autoitx.com/images/common/back.gif
是啊,用前面的代码,写入csv是空的。
刚才试了上面最新的这个,还是空的,文件写了,但是内容是空的。
524443834
发表于 2017-6-27 22:17:48
哥们做裂变的吗?我这有现成的
joint
发表于 2017-6-28 09:05:16
哥们做裂变的吗?我这有现成的
524443834 发表于 2017-6-27 22:17 http://www.autoitx.com/images/common/back.gif
不懂,裂变是什么东东?
tubaba
发表于 2017-6-28 09:16:09
本帖最后由 tubaba 于 2017-6-28 09:20 编辑
让你加consolwrite是看控制台输出.是用来debug用的,你不用scite编辑器吗?好累啊
看看你的array到底是几维的,用UBound($aArray, 0)
joint
发表于 2017-6-28 10:44:42
让你加consolwrite是看控制台输出.是用来debug用的,你不用scite编辑器吗?好累啊
看看你的array到底是几维 ...
tubaba 发表于 2017-6-28 09:16 http://www.autoitx.com/images/common/back.gif
按数组的方式显示正常,但却是0行0列0维:
是不是与数据类型有关?怎么查看数组的各行各列的数据类型?au3的数组功能好像很弱啊。
kk_lee69
发表于 2017-6-28 10:54:56
回复 41# joint
你的基礎語法根本就是錯誤的......
如果 你畫面中的 _arraydisplay 是成立的 有資料的
那麼 $iRows 就應該等於UBound($aText ...)才對
joint
发表于 2017-6-28 11:14:18
本帖最后由 joint 于 2017-6-28 11:21 编辑
回复joint
你的基礎語法根本就是錯誤的......
如果 你畫面中的 _arraydisplay 是成立的 有資料的
...
kk_lee69 发表于 2017-6-28 10:54 http://www.autoitx.com/images/common/back.gif
抱歉,在忙,仓促中直接拷贝了,我再试试。
不行,改为aText就死循环了。aText数据是动态变化的。
fenhanxue
发表于 2017-6-28 11:39:06
提问区满屏全部是你的刷屏。。。建议从头耐心的先看一遍Autoit3CHS.chm(Autoit 帮助)。
tubaba
发表于 2017-6-28 12:54:10
我实在搞不懂,能用arraydisplay显示数组,但UBound($array,0)又是0维.灵异