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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Directeur technique
    Inscrit en
    novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : novembre 2007
    Messages : 16
    Points : 12
    Points
    12

    Par défaut Tester l'existence d'un fichier sous Windows CE

    Bonjour,

    Je suis néophyte en logiciel, mais je bricole sur des gps sous wince pour modifier l'apparence et les annonces.

    Le soft de navigation est igo de nng, plus précisément primo 2.4 v9.6.13.405512, il est associé à un data.zip comprenant des fichiers ui, lua, css et bmp.

    Dans un fichier lua, je voudrais tester la présence d'un fichier et l'existence d'une première ligne.

    Exemple de fichier à tester: chemin/fichier.txt existant ou non et s'il existe, possédant ou non une première ligne contenant : Fichier, nom, numéro.

    Si vous savez me donner la formulation, ce serait sympa.

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    3 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 3 327
    Points : 12 088
    Points
    12 088
    Billets dans le blog
    7

    Par défaut

    Bonjour !

    Je ne connais pas Windows CE donc je ne garantis pas la pertinence de ma réponse. Sous Windows, on peut tester l'existence d'un fichier de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    function file_exists(name)
      local f = io.open(name, "r")
      if f ~= nil then
        io.close(f)
        return true
      else
        return false
      end
    end
     
    print(file_exists("c:\\atelier\\lua\\fileexists1.lua")) -- true
    La seule subtilité est de bien faire attention à dédoubler les "\". Si ce code fonctionne sous Windows CE (ce que j'ignore), il ne sera pas difficile de répondre à la suite de votre question. Peut-être serait-il bon que vous donniez un exemple de la ligne à rechercher, pour savoir à quoi elle ressemble exactement.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Directeur technique
    Inscrit en
    novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : novembre 2007
    Messages : 16
    Points : 12
    Points
    12

    Par défaut

    @ Roland Chastain

    Bonjour et merci de votre réponse,

    Mes essais sont un peu longs.
    J'ai légèrement adapté votre proposition à ma situation de la façon suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
      name = "\SDMMC\P2.4\save\profiles\01\userlists\Plus.txt"
      file_exists(name)
    end
     
    ----- essai fichier existant 2/2/2015 ----------------------------
    function file_exists(name)
    	local filex = io.open(name, "r")
    	if filex ~= nil then
    		io.close(filex)
    		return true
    	else
    		return false
    	end
    print(file_exists("\\SDMMC\P2.4\\ok.txt")) -- true
    Résultat, pas d'erreur, mais je n'arrive pas à voir true ou false dans un fichier que j'ai appelé ok.txt, en le créant ou non avant lancement.

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    3 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 3 327
    Points : 12 088
    Points
    12 088
    Billets dans le blog
    7

    Par défaut

    Citation Envoyé par johna Voir le message
    Bonjour et merci de votre réponse,
    Pas de quoi.

    Je me suis permis de modifier votre message : avec les balises appropriées le code est plus lisible.

    Est-ce que c'est vraiment votre code qui est là, ou est-ce que vous l'avez retapé en rédigeant votre message ? Parce que le code que vous avez posté n'est pas correct. Par exemple il manque le mot-clé end à la fin de la fonction. D'autre part la fonction est appelée avant d'être définie. Il y a un "\" qui n'est pas dédoublé...

    Normalement, si le script fonctionne, vous devriez au moins pouvoir lire un résultat.

    Vous pourriez peut-être essayer d'exécuter le script en passant comme argument le nom du script lui-même, sans le chemin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print(file_exists("test.lua"))
    Et si vous exécutez le script suivant, est-ce que vous voyez quelque chose ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print("Coucou c'est moi !")
    Et comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print("Coucou c'est moi !")
    os.execute("pause")

  5. #5
    Membre à l'essai
    Homme Profil pro
    Directeur technique
    Inscrit en
    novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : novembre 2007
    Messages : 16
    Points : 12
    Points
    12

    Par défaut

    Hum, je suis vraiment "incertain" dans mon approche soft.

    Excusez-moi pour la mise en forme, je vais y pallier dans mes réponses.
    Pour le "end" final, c'est un oubli, ainsi que le doublement de \.

    Les 3 premières lignes sont la fin de la fonction précédente qui fait appel à la function file_exists(name).

    Je n'ai pas compris
    D'autre part la fonction est appelée avant d'être définie.
    Dans les fichiers lua que je manipule, je déclare les variables, pas les fonctions qui sont des blocs appelés comme je l'ai montrée ou depuis un fichier ui depuis un bouton.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print(file_exists("test.lua"))
    Est-ce que cela correspond au nom de mon fichier lua.

    Je fais les tests dans le contexte de mon gps car je ne sais pas lancer un lua seul.

    Je vais faire 3 tests et reviens vous faire le CR.
    1/ ajout d'un double \ ,
    2 & 3/ les 2 derniers scripts que vous m'avez indiqués .

  6. #6
    Membre à l'essai
    Homme Profil pro
    Directeur technique
    Inscrit en
    novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : novembre 2007
    Messages : 16
    Points : 12
    Points
    12

    Par défaut

    Ne sachant pas si vous avez déjà pris en compte mon message, j'ouvre une réponse pour le résultat de mes tests.
    Soit: pas d'erreurs, mais pas d'inscription ni d'apparition à l'écran, le gps fonctionne sans rien voir des nouveautés.
    Excusez-moi pour la mise en forme, mon transfert ne conserve pas les coloriages, ni l'indentation après l'envoi de ma réponse.
    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
    	name = "\SDMMC\P2.4\save\profiles\01\userlists\Plus.txt"
    	file_exists(name)
    end
    ----- essai fichier existant 2/2/2015 ----------------------------
    function file_exists(name)
    	local filex = io.open(name, "r")
    	if filex ~= nil then
    		io.close(filex)
    		return true
    	else
    		return false
    	end
    print(file_exists("\\SDMMC\\P2.4\\ok.txt")) -- true
    print("Coucou c'est moi !")
    os.execute("pause")
    end
    Je crains que mon lua soit propriétaire de la société NNG.
    Qu'en pensez-vous ?
    J'ai une alternative possible en utilisant un script mortscript si vous pensez que l'on ne puisse aboutir.

  7. #7
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    3 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 3 327
    Points : 12 088
    Points
    12 088
    Billets dans le blog
    7

    Par défaut

    Je regrette de ne pas pouvoir vous aider davantage mais il y a trop de choses qui m'échappent dans le cas que vous décrivez.

    A propos de la fonction qui n'est pas définie, je voulais dire que si on appelle la fonction avant de l'avoir déclarée, ça ne va pas fonctionner. Par exemple le script suivant ne fonctionnera pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    print(file_exists("c:\\atelier\\lua\\fileexists1.lua"))
     
    function file_exists(name)
      local f = io.open(name, "r")
      if f ~= nil then
        io.close(f)
        return true
      else
        return false
      end
    end
    Maintenant le problème vient peut-être aussi de la procédure print(), dont le résultat est fait pour s'afficher dans une console. Mais encore une fois, il y a trop d'éléments qui m'échappent. Je donne ma langue au chat.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Directeur technique
    Inscrit en
    novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : novembre 2007
    Messages : 16
    Points : 12
    Points
    12

    Par défaut

    Merci, Roland Chastain d'avoir essayé de m'aider.

    Les fichiers lua associés aux fichiers .ui de NNG sont visiblement une acceptation très particularisée.

    J'ai bien compris la logique linéaire: déclaration, fonction, puis appel de la fonction, mais ce n'est visiblement pas le cas habituel dans les gps sous igo/NNG.
    Cet échange m'a permis de comprendre un peu plus.

    J'avais besoin de cette tentative confrontant un spécialiste à mes difficultés malgré les tutos que j'ai pu parcourir.
    Tout n'est pas erroné, mais tout n'est pas applicable.

    Je vais donc, comme dit avant, travailler en amont avec un script Mortscript pour tester la présence du fichier et s'il n'existe pas en charger un avec un en-tête ad'hoc.

    Encore mille mercis.

    P.-S.: je vais laisser quelques jours passer, avant de cliquer sur résolu, au cas ou un membre agissant sur les GPS voudrait intervenir.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Directeur technique
    Inscrit en
    novembre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : novembre 2007
    Messages : 16
    Points : 12
    Points
    12

    Par défaut Ma solutiuon

    Bonjour,

    Je repasse par ici et je vais clore le sujet via l'utilisation de mortscript:

    1/ appel d'un exécutable mortscript depuis lua:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    START_APPLICATION(".\\Utility\\file1.exe","")
    1/ dans mortscript un file1.mscr (couplé à file1.exe), si on connait le nom du fichier fichier2.zip, ok=1 pour existence:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ok=(fileExists(Chemin1\"fichier2.zip"))
    2/ dans mortscript un file2.mscr (couplé à file2.exe), si on connait le type de fichier, on liste les FilExe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ForEach File, FilExe in Array (DirContents(Chemin2\"*.exe",DC_FILES))
    instructions éventuelles
    EndForEach

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

Discussions similaires

  1. [FTP] Tester l'existence d'un fichier.
    Par antony dans le forum Fichiers
    Réponses: 2
    Dernier message: 03/03/2006, 19h54
  2. [File]Tester l'existence d'un fichier
    Par florantine dans le forum IO
    Réponses: 4
    Dernier message: 23/11/2005, 11h45
  3. tester l existence d un fichier sous turbo pascal
    Par Newllite dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 25/01/2004, 13h47
  4. Peut on tester l'existence d'un fichier ?
    Par Alamassepointcom dans le forum Flash
    Réponses: 2
    Dernier message: 10/10/2002, 13h10

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