Encore une histoire de recherche -_-

Résolu
Knux14 -  
 Knux14 -
Bonjour,

C'est encore moi, j'ai encore un problème avec mon système de recherche.
Je cherche à rechercher dans un fichier texte une ligne, quand il l'a trouve, la fonction la retourne. Voici mon code:
public String readFile(String filename){
		String chaine = null;
     try
		{
    	InputStream ips=new FileInputStream(new File("config.txt")); 
		InputStreamReader ipsr=new InputStreamReader(ips);
		BufferedReader br = new BufferedReader(ipsr);
		String ligne;
		if ((ligne = br.readLine()) != null) {
						 while(!ligne.startsWith(filename)){
						 }
						 String[] K = ligne.split("=");
						 try{
							 String result = K[1];
							 br.close();
							 return result;
						 }catch(Exception ex){
							 System.out.println("Erreur de lecture du fichier : ");
							 ex.printStackTrace();
							 return null;
						 }
		}
		br.close();
		} catch (Exception e) {
			System.out.println(e.toString());
		}
		return chaine;
	}

Ensuite, je fait un simple
		GuiMainMenu.name = read("serverName");
		GuiMainMenu.ip = read("serverIp");
		GuiMainMenu.site = read("serverSite");

Mon jeu arrive bien à lire serverName (il est au début du fichier) mais après ce dernier, il freeze..
Merci d'avance, Knux14

1 réponse

  1. rodoplop Messages postés 77 Statut Membre 12
     
    Ca freeze pas mais tu fait une boucle infinie

    while(!ligne.startsWith(filename)){
    }

    j'ai regardé rapidement ton code mais jepense que tu devrai inverser ton if et ton while qui suis

    [code]
    while ((ligne = br.readLine()) != null) {
    if(!ligne.startsWith(filename)){

    String[] K = ligne.split("=");
    try{
    String result = K[1];
    br.close();
    return result;
    }catch(Exception ex){
    System.out.println("Erreur de lecture du fichier : ");
    ex.printStackTrace();
    return null;
    }
    }
    }
    br.close();
    [/code]
    0
    1. Knux14
       
      Merci, mais j'obtiens sa dans les logs :
      ServerName: Serveur officiel Openmod
      ServerIp: Serveur officiel Openmod
      Site: Serveur officiel Openmod

      En gros il me lis toujours la première ligne :s
      0
    2. rodoplop Messages postés 77 Statut Membre 12
       
      Petite erreur de copier coller sur le if, retire la condition inverse avec le !

      sa donne donc

      if(ligne.startsWith(filename)){ ....

      je pense que ça devrait aller mieux
      0
    3. Knux14
       
      Merci, cela marche parfaitement :D
      0