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

rodoplop Messages postés 77 Date d'inscription   Statut Membre Dernière intervention   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
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
rodoplop Messages postés 77 Date d'inscription   Statut Membre Dernière intervention   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
Knux14
 
Merci, cela marche parfaitement :D
0