Re,
phenom0202 a écrit :J'édit cette réponse en ayant dit qu'à partir de _FileWriteFromArray le programme avait un bug, mais en faite c'est bon j'ai rectifié, il fallait juste que je mette aussi les noms d'entreprise si non le programme disait que le tableau n'était pas complet.
Hum, ben pourtant perso, j'ai l'impression qu'il y a une boulette dans le code de _FileWriteFromArray() de File.au3 au niveau de la gestion des
tableaux en 2D. En regardant le code initial :
► Afficher le texte_FileWriteFromArray
Code : Tout sélectionner
; Write array data to file
Local $ErrorSav = 0
Switch $iDims
Case 1
For $x = $i_Base To $i_UBound
If FileWrite($hFile, $a_Array[$x] & @CRLF) = 0 Then
$ErrorSav = 3
ExitLoop
EndIf
Next
Case 2
Local $s_Temp, $x, $y
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
EndSwitch
$iDims est défini comme suit :
Dans le cas présent on traite un array à 2 colonnes (donc de 0 à 1), donc $iDims = 2. Du coup dans le Switch on passe dans le Case 2 et on fait :
Code : Tout sélectionner
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
Ce qui me gène c'est l'ordre
Du coup ça tente de traiter $a_Array[$x][2] chose qui provoque un plantage.
Perso j'aurai codé ceci :
Code : Tout sélectionner
For $x = $i_Base To $i_UBound
$s_Temp = $a_Array[$x][0]
For $y = 1 To $iDims - 1
$s_Temp &= $s_Delim & $a_Array[$x][$y]
Next
If FileWrite($hFile, $s_Temp & @CRLF) = 0 Then
$ErrorSav = 3
ExitLoop
EndIf
Next
Si je fais la modification comme décrite au dessus je n'ai pas de souci d'exécution.
Je me fourvoie complétement où il y a bien une boulette dans la fonction _FileWriteFromArray() pour les tableaux 2D ?
++