[R] Affichage Array[][] après lecture fichier texte

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Tentative
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mar. 05 sept. 2017 14:13
Status : Hors ligne

[R] Affichage Array[][] après lecture fichier texte

#1

Message par Tentative »

Bonjour à tous,

Alors voilà, je commence enfin à me lancer dans l'AutoIt et je rencontre mon premier probleme :

J'ai un fichier .txt à la base
Janvier;;;;;;
1;1;1;1;1;1;1
2;2;2;2;2;2;2
3;3;3;3;3;3;3
4;;;;;;
5;;;;;;
6;;;;;;
7;;;;;;
8;;;;;;
9;;;;;;
10;;;;;;
11;;;;;;
12;;;;;;
13;;;;;;
Février;;;;;;
14;;;;;;
15;;;;;;
16;;;;;;
17;;;;;;
18;;;;;;
19;;;;;;
20;;;;;;
Mars;;;;;;
Ce que j'essaie de faire, c'est de pouvoir le lire sous forme de tableau via _ArrayDisplay.
#include <FileConstants.au3>
#include <Array.au3>
#include <File.au3>
#include <String.au3>

; Creation tableau
$Ligne = _FileCountLines (".\Date.txt")
$i = 0
$a = 0
$Del = 0
Dim $Array[$Ligne][7]

; Compte pour prendre la zone voulue
While FileReadLine(".\Date.txt", $a) <> "Janvier;;;;;;"
$a += 1
$Del += 1
WEnd

; On commence a sélectionner a partir de la bonne ligne
$i = $a

; Sélectionne la zone voulue
While FileReadLine(".\Date.txt", $i) <> "Février;;;;;;"
      $Texte = FileReadLine(".\Date.txt", $i)
      $Split = StringSplit($Texte,";")
      $Array[$i][7] = [$Split[1] & $Split[2] & $Split[3] & $Split[4] & $Split[5] & $Split[6] & $Split[7]]
      $i += 1
WEnd

; Affiche
_ArrayDisplay($Array, "Bravo", $Del &":"&$Ligne)
Alors c'est vraiment brouillon, on va pas se mentir!

Dans un 1er temps, je crée un tableau à la dimension de ma liste.
Dans 2eme temps, je dis la partie de la liste que je veux sélectionner et j'affiche le tableau en affichant seulement la zone voulu (Grace au 1er While)

Hors probleme, probleme de dimension Array dans le 2eme While, impossible de voir l'erreur en question.
Merci d'avance de m'éclairer ! :roll:
Modifié en dernier par Tentative le lun. 12 mars 2018 21:15, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Affichage Array[][] après lecture fichier texte

#2

Message par Tlem »

Bonjour.
Vous devriez trouver votre bonheur ici : https://www.autoitscript.fr/forum/viewt ... =21&t=7582
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tentative
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mar. 05 sept. 2017 14:13
Status : Hors ligne

Re: [..] Affichage Array[][] après lecture fichier texte

#3

Message par Tentative »

Pas mal le systeme, ca m'a grandement facilité la vie pour le coup.

Par contre, vous pourriez m'expliquer à quoi correspond chaque zone de ça s'il te plait?

_StringToArray2D($File, @CRLF, ";", 1, 1, 1, 10, 10, 20)
Je veux parler du $CTLF et 1,1. Changer ces paramètres s là changerait quoi au fonctionnement?
Et également me dire pourquoi la case [0][1] du tableau indique le nombre de ligne que le tableau à sélectionné ?

Et petite question au passage : Possible de renommer les Row, Col ou pas?

Dans tous les cas, merci, j'ai passé 1h a me creuser la tête avec les Split, et en 1min avec ça, c'etait finit!
Modifié en dernier par Tentative le lun. 12 mars 2018 21:11, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Affichage Array[][] après lecture fichier texte

#4

Message par Tlem »

Bonsoir.
Extrait de l'entête de la fonction dans l'UDF :

Code : Tout sélectionner

; #FUNCTION# ====================================================================================================================
; Name...........: _StringToArray2D
; Description ...: Convert a string in array 2D (each element separate by a char and each line by another char)
; Syntax.........: _StringToArray2D($sString[, $sDelimCol = ""[, $sDelimRow = ""[, $EmptyLine = 1[, $IndexBase = 1[, $iLineStart = 0, $iLineEnd = 0, $ColStart = 0, $ColEnd = 0]]]]]]]])
; Parameters ....: $sString				- String to convert
;                  $sDelimRow			- [optional] Char used for separate lines (Default @CRLF)(can be a string)
;				   $sDelimCol			- [optional] Char used for separate elements (Default "|")(can be a string)
;                  $EmptyLine			- [optional] 	0 Don't keep empty lines.
;										1 Keep the empty lines (Default).
;                  $IndexBase 			- [optional]	0 Return an array that begin in index 0.
;										1 Return an array that begin in line 1 with elements numbers in index 0 (Default).
;                  $iLineStart   		- [optional] Line index to start processing
;                  $iLineEnd     		- [optional] Line index to stop processing
;                  $iColStart   		- [optional] Column index to start processing
;                  $iColEnd     		- [optional] Column index to stop processing
;
; Return values .: Success - Return an array
;                  Failure - 0, sets @error:
;                  |1 - $sString is empty
;                  |2 - $sString is not correct to proceed
;                  |3 - $$iLineStart is greater than $iLineEnd or $ColStart is greater than $ColEnd
Qu'est-ce que vous ne comprenez pas ?
Et également me dire pourquoi la case [0][1] du tableau indique le nombre de ligne que le tableau à sélectionné ?
Parce que c'est comme ça que sont généralement formé les tableaux et que cela correspond au paramètre $IndexBase (qui par défaut est à 1).
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
Tentative
Niveau 1
Niveau 1
Messages : 5
Enregistré le : mar. 05 sept. 2017 14:13
Status : Hors ligne

Re: [..] Affichage Array[][] après lecture fichier texte

#5

Message par Tentative »

Bonsoir,

J'avais pas trouvé le détail de la fonction mais maintenant que je l'ai sous les yeux, je comprend les paramètres!
Du coup, ça m'a également permis d'enlever la 1ere ligne qui était inutile.

Merci d'avoir pris le temps!
Je met en [R]!

Bonne soirée ! :)
Répondre