Что нового

_FileWriteFromArray не пишет в файл больше 3 столбцов 2D массива

Entropy

Новичок
Сообщения
3
Репутация
0
Приветствую!

Код:
#include <Array.au3>
#include <File.au3>

Global $Results[5][5]

For $i = 0 To 4
	For $j = 0 to 4
		$Results[$i][$j] = 0
	Next
Next

_ArrayDisplay($Results)

$CurrentSessionFile = FileOpen("temp.txt", 1)

_FileWriteFromArray($CurrentSessionFile, $Results)

В результате пишется файл:

0|0|0
0|0|0
0|0|0
0|0|0
0|0|0

Может это конечно не бага, а фича, но в ремарках я никаких предпосылок не нашел. Есть идеи?
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Entropy,
1. Для кода AutoIt есть специальный тег AutoIt tag (справа от тега Код).
2. Надо указывать версию AutoIt В данном случае это 3.3.8.1 (наверное, и 3.3.8.0).
3. Только в версиях выше 3.3.6.1. Замените в файле Диск:\Program Files\AutoIt3\Include\File.au3 в коде функции _FileWriteFromArray(...) этот кусок кода:
Код:
;....
		Case 2
			Local $s_Temp
			For $x = $i_Base To $i_UBound
				$s_Temp = $a_Array[$x][0]
				For $y = 1 To $iDims;здесь ошибка
					$s_Temp &= $s_Delim & $a_Array[$x][$y]
				Next
				If FileWrite($hFile, $s_Temp & @CRLF) = 0 Then
					$ErrorSav = 3
					ExitLoop
				EndIf
			Next
;...

На этот:
Код:
;...
		Case 2
			Local $s_Temp
			For $x = $i_Base To $i_UBound
				$s_Temp = $a_Array[$x][0]
				For $y = 1 To UBound($a_Array, 2) - 1;здесь замена
					$s_Temp &= $s_Delim & $a_Array[$x][$y]
				Next
				If FileWrite($hFile, $s_Temp & @CRLF) = 0 Then
					$ErrorSav = 3
					ExitLoop
				EndIf
			Next
;...


PS
Не аккуратно переписаны штатные библиотеки в 3.3.8.0 и выше. Это пока вторая найденная ошибка (первая: Ошибка в FTPEx.au3 (версия 3.3.8.0)).
Просьба к знающим английский язык сообщить об этих ошибках на оф. форуме.
 
Автор
E

Entropy

Новичок
Сообщения
3
Репутация
0
Спасибо огромное! Все заработало! :laugh:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
В 3.3.9.0 beta не исправили. :(
 
Верх