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维.灵异
页: 1 2 [3] 4
查看完整版本: 如何输出CSV格式数据并能被其它软件读取? 已解决。