[R] Pb avec _StringToArray2D()

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

[R] Pb avec _StringToArray2D()

#1

Message par Hugues »

Bonjour,

J'utilise la fonction _StringToArray2D() dans une boucle pour lire des fichiers. Cependant, la fonction ne met pas en forme un fichier alors que si je lis le fichier tout seul, la fonction le met bien en forme...

Si quelqu'un a une idée... Merci par avance.
► Afficher le texte
Modifié en dernier par Hugues le mar. 17 nov. 2015 21:35, modifié 1 fois.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Pb avec _StringToArray2D()

#2

Message par mikell »

Code : Tout sélectionner

    Local $hFileToRead2 = FileRead($DummyFile)
    $aReturns2 = _StringToArray2D($hFileToRead2, @CRLF, ";", 1)
Pourquoi ne pas utiliser directement _FileReadToArray ?
[Remarque accessoire] tu devrais éviter les déclarations de variables en Global dans des fonctions
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Pb avec _StringToArray2D()

#3

Message par Hugues »

Je n'utilise pas la fonction _FileReadToArray() car je veux créer un tableau en plusieurs dimensions pour récupérer les valeurs, or _FileReadToArray() ne me génère pas de tableau 2D (sûrement que je dois mal l'utiliser).

Exemple de fichier à lire:

http://autoitscript.fr/forum/viewtopic. ... a9dd2c5379
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Pb avec _StringToArray2D()

#4

Message par mikell »

A vue de nez (parce qu'on ne peut pas tester ton code) je dirais que le problème ne vient pas de _StringToArray2D
Je commencerais par enlever le Global de "Global $DummyFile = ..." et j'essaierais de débugger pas à pas avec des _ArrayDisplay ou autres
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Pb avec _StringToArray2D()

#5

Message par Hugues »

Je ne comprends pas... J'ai réécris mon code et j'ai toujours le même défaut... La fonction _StringToArray2D ne transforme pas mon fichier...
► Afficher le texte
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Pb avec _StringToArray2D()

#6

Message par mikell »

J'ai testé ce code sur les 2 premiers textes mentionnés dans l'autre topic
Il marche bien après correction d'une petite c... de syntaxe
► Afficher le texte
Donc le problème c'est certainement un petit truc, une bête histoire de chemin ou autre
T'as pas fait la débugation par étapes conseillée, eh ? Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Pb avec _StringToArray2D()

#7

Message par Hugues »

Arfff je crois que je viens de trouver...

Dans mon fichier qui "plante", je n'ai pas les ";"...

Fichier OK: 'Sant ='; 1.49 ;'mm NIO'
Fichier NOK: 'Sant =' 1,00 'mm IO'

Ma question est comment je peux gérer l'erreur sans que cela me fasse planter l'application?
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Pb avec _StringToArray2D()

#8

Message par mikell »

Fais une bonne gestion d'erreur à l'endroit précis du code où le résultat retourné peut provoquer un plantage
Par exemple si sur le fichier merdique StringToArray2D retourne une array 1D tu peux tester le UBound(...,2) - ou autre chose dans le genre
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Pb avec _StringToArray2D()

#9

Message par Hugues »

Yes, j'étais entrain de faire cette méthode ^^,

Code : Tout sélectionner

If UBound($aReturns, 2) < 2 Then
        $ScrapFile &= $aDummyListView1[$i][0]
        Return
 EndIf
Je sors de ma boucle dès que j'ai un fichier "corrompu", je stocke son nom et je le ou les affiche dans un label...
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Pb avec _StringToArray2D()

#10

Message par mikell »

Bin voilà... Résolu alors ? :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Hugues
Niveau 8
Niveau 8
Messages : 597
Enregistré le : ven. 21 sept. 2012 18:12
Status : Hors ligne

Re: [..] Pb avec _StringToArray2D()

#11

Message par Hugues »

Oui, sujet résolu ^^
Répondre