Page 1 of 1

[Résolu] Récupèrer une valeur dans un fichier ini ( code )

Posted: 07 Jul 2015, 22:36
by Sergent-Quentin
Bonjour,

Comme le dit le titre, je voulais récupérer une valeur dans un fichier ini sous forme de code, la valeur sera écrite de cette façon :

[Section A]
Carton = 560

Je vous remercie

Cordialement

Sergent-Quentin

Re: Récupèrer une valeur dans un fichier ini ( code )

Posted: 08 Jul 2015, 12:17
by Jmgr
Salut,

Ça ne fonctionne pas avec l'objet IniFile?

Re: Récupèrer une valeur dans un fichier ini ( code )

Posted: 08 Jul 2015, 15:41
by Sergent-Quentin
Salut,
Jmgr wrote:Ça ne fonctionne pas avec l'objet IniFile?
Je pense que si, mais je n'arrive pas faire le code malgré le wiki en faite ^^

Re: Récupèrer une valeur dans un fichier ini ( code )

Posted: 09 Jul 2015, 10:25
by Jmgr
Voilà :

Code: Select all

var ini = new IniFile();
ini.load("fichier.ini");
ini.setSection("Section A");
var resultat = ini.keyValue("Carton");

Re: Récupèrer une valeur dans un fichier ini ( code )

Posted: 09 Jul 2015, 13:04
by Sergent-Quentin
Merci beaucoup !!!
:D

Re: Récupèrer une valeur dans un fichier ini ( code )

Posted: 12 Jul 2015, 16:05
by Sergent-Quentin
Bonjour,

je voudrais cette fois-ci écrire dans un fichier ini :mrgreen:

En m'inspirant du wiki (myObject.keyValue(keyName, value);), J'ai fait ce code :

Code: Select all

var ini = new IniFile();
ini.load("Chemin/fichier.ini");
ini.setSection("Section A");
ini.keyValue("Carton", 1588);
Il n'a pas fonctionné :(

celui-ci non plus :

Code: Select all

var ini = new IniFile();
ini.load("Chemin/fichier.ini");
ini.setSection("Section A");
ini.keyValue("Carton", 1588);
ini.save("Chemin/fichier.ini");
Pouvez-vous m'aider svp ? :)

je vous remercie

Cordialement

Sergent-Quentin

Re: Récupèrer une valeur dans un fichier ini ( code )

Posted: 15 Jul 2015, 10:13
by Jmgr
C'est presque ça. La fonction load(fichier) sert à charger un fichier, or, si tu veux ici écrire dans un fichier tu n'as pas besoin de le charger.

Code: Select all

var ini = new IniFile();
ini.setSection("Section A");
ini.keyValue("Carton", 1588);
ini.save("Chemin/fichier.ini");
Cela dit lorsque je teste ce code Actiona plante sur ma machine... Je ne peux pas déboguer ça ici, mais je pense qu'il y a un bug quelque part. Peux-tu tester chez toi et me dire si tu as également un plantage ?

Re: Récupèrer une valeur dans un fichier ini ( code )

Posted: 15 Jul 2015, 11:54
by Sergent-Quentin
Merci pour la correction :)

En effet il plante chez moi aussi ^^

Re: Récupèrer une valeur dans un fichier ini ( code )

Posted: 17 Sep 2015, 16:52
by Sergent-Quentin
Bonjour,

Je ne sais pas trop si c'est un bug ou alors si alors si il manque quelque chose, je m'explique :

J'ai un fichier .ini et un fichier.txt

1/ Une fonction lit le titre dans le fichier .txt et le stock dans une variable

2/ Une autre fonction lit le fichier .ini depuis le titre stocker dans la variable

Seulement à ce moment actiona plante comme si le titre était faux, j'ai remplacer la fonction qui lit le titre dans le fichier .txt par une action "Lire fichier texte" et le stock dans une variable, là ça fonctionne.

Sauriez-vous pourquoi ça ne fonctionne pas avec le code ? :

Code: Select all

var ini, file, Prix, Titre;

function Lecture_Titre_Texte() {// Lit le titre dans le fichier texte
file = new File();
file.open('Fichier A.txt', File.ReadOnly);
Titre = file.readText().split('\n')[0];
file.close();
Console.print(Titre);
}

function Lecture_Annonce_Ini() { // Lit l'annonce dans le fichier ini
ini = new IniFile();
ini.load('Fichier B.ini');
ini.setSection(Titre);
Prix = ini.keyValue("Prix");
Console.print(Prix);
}

Lecture_Titre_Texte()
Lecture_Annonce_Ini();
Je vous remercie

Cordialement

Sergent-Quentin

Re: Récupèrer une valeur dans un fichier ini ( code )

Posted: 29 Sep 2015, 10:42
by francois
Bonjour,

Dans ton code, il y a :

Code: Select all

ini.setSection(Titre);
Soit tu donnes auparavant à la variable 'Titre' une valeur.
Soit tu mets directement une valeur dans cette ligne

Code: Select all

ini.setSection("mon titre");
A noter, Actiona ne se comporte pas de la même manière suivant la version :
Avec la 3.9, plantage.
Avec la 3.8, il ne trouve pas (normal, tu n'as pas donné de valeur à la variable Titre) mais ne plante pas.

Francois

Re: Récupèrer une valeur dans un fichier ini ( code )

Posted: 30 Sep 2015, 20:52
by Sergent-Quentin
Bonsoir,
francois wrote: Soit tu donnes auparavant à la variable 'Titre' une valeur.
Soit tu mets directement une valeur dans cette ligne
C'est ce que fait :

Code: Select all

function Lecture_Titre_Texte() {// Lit le titre dans le fichier texte
file = new File();
file.open('Fichier A.txt', File.ReadOnly);
Titre = file.readText().split('\n')[0];
file.close();
Console.print(Titre);
}
Dans mon fichier texte les titres étaient écris comme ceci :

Livre A
Livre B

J'ai modifié en les écrivants comme ceci :

Livre A/Livre B/

Et en changeant aussi le code :

Code: Select all

Titre = file.readText().split('\n')[0];
par :

Code: Select all

Titre = file.readText().split('/')[0];
Par contre si j'écris les titres dans mon fichier texte comme ceci :

Livre A
Livre B

et que j’exécute ce code :

Code: Select all

    var ini, file, Prix, Titre;

    function Lecture_Titre_Texte() {// Lit le titre dans le fichier texte
    file = new File();
    file.open('Fichier A.txt', File.ReadOnly);
    Titre = file.readText().split('\n')[0];
    file.close();
    Console.print(Titre);
    }

    function Lecture_Annonce_Ini() { // Lit l'annonce dans le fichier ini
    ini = new IniFile();
    ini.load('Fichier B.ini');
    ini.setSection(Titre);
    Prix = ini.keyValue("Prix");
    Console.print(Prix);
    }

    Lecture_Titre_Texte()
    Lecture_Annonce_Ini();
Le titre sera bien récupérer mais ne sera pas valide pour

Code: Select all

ini.setSection(Titre);
Cordialement

Sergent-Quentin

Re: Récupèrer une valeur dans un fichier ini ( code )

Posted: 01 Oct 2015, 07:21
by francois
J'ai répondu un peu trop vite, je n'avais pas vu que tu valorisais 'Titre' dans la Fonction 'Lecture_Titre_Texte'

Il y a probablement des blancs en fin de ligne du fichier texte, il faut les enlever via Titre= Titre.trim()

Code: Select all

    function Lecture_Titre_Texte() {// Lit le titre dans le fichier texte
            file = new File();
            file.open('C:/temp/out.txt', File.ReadOnly);
            Titre = file.readText().split('\n')[0];
            file.close();
           Titre= Titre.trim()
           Console.print("titre : >" + Titre + "<");       
            }
Francois

Re: [Résolu] Récupèrer une valeur dans un fichier ini ( code

Posted: 01 Oct 2015, 16:06
by Sergent-Quentin
Bonjour,

C'est exactement ce qu'il fallait :)

J'ai cherché sur internet, jamais entendu parler de trim() :shock:

J'avais essayé des trucs du genre :

https://openclassrooms.com/courses/dyna ... lieres-1-2
Blanc.jpg
Blanc.jpg (34.47 KiB) Viewed 4870 times
Je te remercie pour ta solution

Cordialement

Sergent-Quentin

Re: [Résolu] Récupèrer une valeur dans un fichier ini ( code

Posted: 18 Mar 2016, 21:41
by Jmgr
Bug corrigé dans la version 3.9.2 : https://github.com/Jmgr/actiona/issues/47