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

avec Java Discussion :

Appel d'une fonction


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 8
    Points : 8
    Points
    8
    Par défaut Appel d'une fonction
    Bonjour,

    j'ai un soucis avec mon code ci-dessous. Quand j'appelle findH depuis une autre classe, la fonction n'est pas appelée et rien ne se passe car même si le file retourné est null je suis censé avoir un msg mais non rien.
    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
    31
    32
    33
    public static String findH(int type, String loc, int a, int r, boolean k, boolean f, double pric) throws IOException {
    		int i = 0;
    		String h, b, c, d, e, j;
    		h = String.valueOf(type);
    		b = String.valueOf(a);
    		c = String.valueOf(r);
    		d = String.valueOf(k);
    		e = String.valueOf(f);
    		j = String.valueOf(pric);
    		String file2 = null;
     
    		do {
    			File file = new File("property" + i + ".txt");
    			if (file.exists()) {
    				Scanner input = new Scanner(file);
     
    				while (input.hasNextLine()) {
     
    					if (h.equals(input.nextLine()) || loc.equals(input.nextLine()) || b.equals(input.nextLine())
    							|| c.equals(input.nextLine()) || d.equals(input.nextLine()) || e.equals(input.nextLine())
    							|| j.equals(input.nextLine())) {
    						file2 = file.getName();
    					}
     
    				}
     
    			}
    			i = i + 1;
     
    		} while (i < 100000);
    		return file2;
     
    	}

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Il y a plusieurs sources d'erreurs possibles :
    • dans ton appel à findH, tu catch l'exception sans rien faire. Il y a un plantage mais c'est caché
    • le temps de traitement est très long. Ouvrir 100000 fichiers ne se fait pas en un clin d’œil. Tu as l'impression qu'il n'y a pas de réponse alors que ton PC mouline à mort
    • tu obtiens réellement une réponse mais tu ne le gère pas correctement dans ton appel à findH


    Ta fonction findH est très mal faite. Tu devrais arrêter le traitement lorsque tu as trouvé ce que tu cherchais !
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre habitué Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 310
    Points : 194
    Points
    194
    Par défaut
    Tu peut faire un truc comme ça:
    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
                File f = new File("ton_dossier");
    	  File[] s = f.listFiles(new MyFileNameFilter(".txt"));
    	  for(int i = 0; i< s.length; i++) {
    		  System.out.println(s[i].getName());
    	  }
      }
     
      public static class MyFileNameFilter implements FilenameFilter {
    	private String extension;
    	public MyFileNameFilter(String extension) {
    		this.extension = extension.toLowerCase();
    	}
    	@Override
    	public boolean accept(File dir, String name) {
    		return name.toLowerCase().endsWith(extension);
    	}
    }
    }
    A quoi sert ton code?
    Je ne comprend pas bien sont intérêt.
    C'est construit bizarrement.
    Des jours c'est facile, des jours c'est pas facile, mais c'est jamais le même jour.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2020
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2020
    Messages : 8
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    mon code sert à vérifier si les données rentrées par l'utilisateur correspondent à celle présente dans un fichier et retourner le nom de ce fichier. S'il est construit bizarrement c'est parce que je débute en java

  5. #5
    Membre habitué Avatar de Pecose
    Homme Profil pro
    Batiment
    Inscrit en
    Février 2013
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Batiment
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2013
    Messages : 310
    Points : 194
    Points
    194
    Par défaut
    Comment sont agencées les données dans le fichier et à quoi elles correspondes?
    Si tu arrive à le faire seul, voila comment j'aurais construit le truc:

    Une Class que tu nomme comme tu veux, ça te fait un outil réutilisable.
    Dans le constructeur tu fait passer le nom du dossier qui contient les fichiers à analyser.
    Tu fait un fonction qui va te permettre de lancer ton analyse.
    En paramètre de cette fonction tu donne 1 String seulement.
    Dans le corps de ta fonction tu découpe ton String selon les espaces et tu stock dans un String[];
    Et là tu fait ta comparaison.

    Bonne chance.
    Des jours c'est facile, des jours c'est pas facile, mais c'est jamais le même jour.

Discussions similaires

  1. appel d'une fonction à partir d'un popup
    Par villeneuvejsp dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/12/2004, 17h00
  2. Appel d'une fonction
    Par georgeabitbol dans le forum ASP
    Réponses: 4
    Dernier message: 08/07/2004, 14h29
  3. Réponses: 4
    Dernier message: 02/06/2004, 16h35
  4. Appel d'une fonction
    Par jfphan dans le forum ASP
    Réponses: 4
    Dernier message: 14/04/2004, 15h06
  5. A la recherche de l'appel d'une fonction...
    Par karl3i dans le forum C
    Réponses: 3
    Dernier message: 24/09/2003, 12h34

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