IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Interprétation du caractère & lors de la lecture d'un fichier ini


Sujet :

JavaScript

  1. #1
    Membre du Club Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : avril 2014
    Messages : 110
    Points : 61
    Points
    61
    Par défaut Interprétation du caractère & lors de la lecture d'un fichier ini
    Coucoutte

    J'ai réalisé une page HTML qui me permet d'afficher les divers champs de chaque langue du fichier language.ini de jingle palette.
    Ci joint le fichier HTML et language.ini d'origine, le tout dans un fichier zip :
    Language Editor.zip

    Lors de la création du fichier language.ini en vue d'être téléchargé, tout est mis dans une div cachée (result2), et l'export (via Blob et SaveAs , à utiliser avec FileSaver.js dont j'ai intégré le contenu à ma page HTML pour faire un fichier unique)
    Tout fonctionne bien sauf que le caractère "&" qu'il y a des champs inputs se retrouve sous forme & dans le fichier .ini (à noter que via la console, si on regarde le contenu de la div result2, il est bien affiché ).

    Ce & sert à dire à Jingle Palette de souligner la lettre qui suit, pour certainement indiquer qu'il s’agit du raccourcit clavier associé au bouton.

    Forcément avec le & bah ça fait tout foirer lol

    Comment pourrais-je avec ce & enregistré en & et non & dans le fichier .ini ?

    Merkouiiiin
    Retrouvez-moi tous les dimanches à 22H pour une heure de mix en live tout au vinyle sur eurodance90.fr

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    juin 2003
    Messages
    8 557
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 8 557
    Points : 13 238
    Points
    13 238
    Par défaut
    vous utilisez un élément HTML pour construire le contenu du fichier d'où ce résultat.

    vous pouvez faire cela en utilisant une variable. j'ai aussi mis l'opérateur "+=" pour la concaténation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    function genini() {
     
    	let contenu_ini = '';
     
    	section_array.forEach((section_name) => {
     
    		if ( document.getElementById(section_name) != null ) {
     
    			contenu_ini += '[' + section_name + ']\n';
     
    			fields_array.forEach((field_name) => {
     
    				let id_champ = section_name + '_' + field_name;
     
    				if (document.getElementById(id_champ) != null && document.getElementById(id_champ).value != '' ) {
    					contenu_ini += field_name + '=' + document.getElementById(id_champ).value + '\n';
    				}
     
    			});
     
    		}
     
    	});
     
     
    	var blob = new Blob([contenu_ini], {type: "text/plain;charset=UTF-8"});
    	saveAs(blob, "language.ini");
     
    }

  3. #3
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    5 734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 5 734
    Points : 14 851
    Points
    14 851
    Par défaut
    Salut

    Une autre possibilité en reprenant ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    function genini(){
    document.getElementById('result2').innerHTML = '';
    section_array.forEach((section_name) => {
     
    if ( document.getElementById(section_name) != null ) {
    //document.getElementById('result2').innerHTML = document.getElementById('result2').innerHTML + '[' + section_name + ']\n';
    document.getElementById('result2').textContent = document.getElementById('result2').textContent + '[' + section_name + ']\n';
     
        fields_array.forEach((field_name) => {
    	if ( document.getElementById(section_name+ '_' + field_name) != null &&  document.getElementById(section_name+ '_' + field_name).value != '' ) {
    //document.getElementById('result2').innerHTML = document.getElementById('result2').innerHTML + field_name + '=' + document.getElementById(section_name+ '_' + field_name).value + '\n';
    document.getElementById('result2').textContent = document.getElementById('result2').textContent + field_name + '=' + document.getElementById(section_name+ '_' + field_name).value + '\n';
    }
     
    	})
    	}
    })
       //var blob = new Blob([document.getElementById('result2').innerHTML], {type: "text/plain;charset=utf-8"});
       var blob = new Blob([document.getElementById('result2').textContent], {type: "text/plain;charset=utf-8"});
       saveAs(blob, "language.ini");
    }
    Tes anciennes lignes sont mises en commentaire.
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Membre du Club Avatar de Couin
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : avril 2014
    Messages : 110
    Points : 61
    Points
    61
    Par défaut
    Hello !

    Merci à vous deux pour vos réponses

    Du coup j’ai testé les deux, le changement d'innerHTML en textContent (je ne connaissais pas d'ailleurs ce critère là) n'a pas fonctionné, mais la méthode par la variable (comment j'ai pu ne pas penser à cette méthode ??? lol) donne bien le & dans l'ini téléchargé

    Merkouin
    Retrouvez-moi tous les dimanches à 22H pour une heure de mix en live tout au vinyle sur eurodance90.fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ignorer des caractères lors d'une lecture fichier
    Par Inaky dans le forum Langage
    Réponses: 9
    Dernier message: 06/11/2011, 16h25
  2. [PHP 5.3] Perte de caractères lors d'une lecture de fichier
    Par Vince57 dans le forum Langage
    Réponses: 2
    Dernier message: 28/08/2010, 20h03
  3. Erreur d'analyse lors de la lecture d'un fichier INI
    Par Alexandrebox dans le forum Langage
    Réponses: 6
    Dernier message: 15/06/2010, 11h07
  4. Réponses: 4
    Dernier message: 25/05/2010, 18h59
  5. Réponses: 3
    Dernier message: 26/04/2010, 18h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo