[R] Convertir la première ligne d'un array en string

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
orwell
Niveau 1
Niveau 1
Messages : 3
Enregistré le : jeu. 31 déc. 2009 17:41
Status : Hors ligne

[R] Convertir la première ligne d'un array en string

#1

Message par orwell »

Bonjour,

Cela fait deux jours que je suis bloqué par un problème (surement tout bête), et aujourd'hui je n'ai plus aucun recul sur la question.


V'là le topo :

J'ai un tableau avec des données, et je veux convertir chaque ligne en variable.
Je pensais m'en sortir aisément et pourtant à chaque fois j'ai un problème avec la première ligne du tableau.

Voilà un exemple simplifié :

Code : Tout sélectionner

#include <Array.au3>

Local $aArray[5]

$aArray[0] = "JPM"
$aArray[1] = "Holger"
$aArray[2] = "Jon"
$aArray[3] = "Larry"
$aArray[4] = "Jeremy"

_ArrayDisplay($aArray)

 For $i = 0 to UBound($aArray) - 1
    $line=_ArrayToString($aArray,"|",$i,$i)
    Msgbox(0,"",$line)

Next

 
Ce code est fonctionnel pour toutes les lignes du tableau sauf la première.

Pourquoi avec ce code je n'arrive pas à extraire la première ligne "toute seule" ?
Modifié en dernier par orwell le lun. 04 janv. 2010 17:44, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Convertir la première ligne d'un array en string

#2

Message par Tlem »

J'avoue ne pas trop comprendre votre demande, car la valeur d'un élément d'un tableau est tout simplement égal à cet élément ...

Donc selon votre code, si je veux la première ligne, il me suffit d'écrire :

Code : Tout sélectionner

$Var = $aArray[0]
Si je veux afficher les lignes une à une il suffit de faire :

Code : Tout sélectionner

Local $aArray[5]

$aArray[0] = "JPM"
$aArray[1] = "Holger"
$aArray[2] = "Jon"
$aArray[3] = "Larry"
$aArray[4] = "Jeremy"

 For $i = 0 to UBound($aArray) - 1
    Msgbox(0,"","Ligne " & $i & " = " & $aArray[$i])
Next
La fonction _ArrayToString() transforme tout simplement un tableau en une chaîne dont vous spécifiez certains élément tel que le/les caractère(s) de séparation, mais en aucun cas vous ne devez l'utiliser comme vous l'avez fait. :shock:
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é".
orwell
Niveau 1
Niveau 1
Messages : 3
Enregistré le : jeu. 31 déc. 2009 17:41
Status : Hors ligne

Re: [..] Convertir la première ligne d'un array en string

#3

Message par orwell »

Merci pour la réponse.

En fait mon exemple était un peu trop simplifié :oops:


Le tableau en question est obtenu à partir d'un _StringBetween sur un fichier texte qui change à chaque fois.

Et à partir de ce tableau je veux sélectionner les lignes qui ne contiennent que la valeur "toto" par exemple, à l'aide d'un StringInStr afin de les réécrire dans un autre fichier texte.

J'avais d'abord pensé à faire simple comme votre exemple, mais je sèche sur la déclaration de variable à effectuer, vu que le tableau vient d'un _StringBetween ...

Comme je ne voyais pas comment déclarer le nombre de lignes du tableau, j'étais donc parti sur ce code là :

Code : Tout sélectionner

#include <String.au3>
#include <Array.au3>


$texte1 = "texte1.rtf"
$texte2 = "texte2.rtf"
$read_texte1 = FileRead ($texte1)
$debut = 'debut'
$fin = 'fin'
$aArray = _StringBetween ($read_texte1, $debut, $fin)
_ArrayDisplay($aArray)


For $i = UBound($aArray) - 1 To 0 Step -1
     $line=_ArrayToString($aArray,"|",$i,$i)
     Msgbox(0,"",$aArray[$i])

     If StringInStr($line, "toto") Then
          FileWriteline ($texte2, $line)
     EndIf

Next
FileClose($texte2)
Msgbox(0,"","Done")

J'ai essayé d'autres moyens, comme une boucle For avec un _FileCountLines sur le fichier texte de départ, cela fonctionne, mais c'est d'une lenteur excessive sur de gros fichiers.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Convertir la première ligne d'un array en string

#4

Message par Tlem »

Je n'ai pas tous les éléments pour vous répondre (la structure du fichier RTF aiderait quand même pas mal), mais d'après les éléments que vous donnez, je dirait que le code qui suit devrait au moins s'approcher de ce que vous cherchez :
► Afficher le texte
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é".
orwell
Niveau 1
Niveau 1
Messages : 3
Enregistré le : jeu. 31 déc. 2009 17:41
Status : Hors ligne

Re: [..] Convertir la première ligne d'un array en string

#5

Message par orwell »

Merci Tlem, cela fonctionne sans problème.

La solution était pourtant simple ... surement trop simple pour mon esprit tordu .... :oops:
Répondre