Le contenu du fichier est supprimer ( But = Remplacer $ par 'w' dans u

edbarbier Messages postés 7 Date d'inscription jeudi 12 novembre 2009 Statut Membre Dernière intervention 18 novembre 2009 - 17 nov. 2009 à 20:14
edbarbier Messages postés 7 Date d'inscription jeudi 12 novembre 2009 Statut Membre Dernière intervention 18 novembre 2009 - 18 nov. 2009 à 21:21
Bonjour,

J'ai fait un programme qui doit reperer les symboles $ dans un texte et les remplacer par 'w'.
Le probleme: apres execution le fichier est completement vide.

import fichiers.*;
import ordinateur.*;


class exind642_103
{
public static text substitute(String base)
{
base = new String("C:/Users/Utilisateur/Desktop/a.txt");
text B = new text(base);
B.rewrite();  
char b = B.first_char();
char c = '$';
while(!B.eof())
{
B.read_char();
if(b == c)
{ b = 'w';}

}	
return B;
}


public static void main(String [] args)
{
text B;
String base = " ";
B = substitute(base);
System.out.println("Le fichier a ete modifie avec succes");

}
}




Ceci n'est que la premiere étape de ce que je veux faire. Le but final est de remplacer les $ par un String et de copier le résultat dans un autre fichier. (sans modifier le premier fichier)

Merci d'avance

7 réponses

kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
18 nov. 2009 à 09:31
Salut,

ça va être difficile de t'aider car on ne sait pas ce que fait la classe text (qui aurait se nommer Text) ni la méthode rewrite.
A quel moment ouvres tu le fichier ? écris tu dedans ?
0
edbarbier Messages postés 7 Date d'inscription jeudi 12 novembre 2009 Statut Membre Dernière intervention 18 novembre 2009
18 nov. 2009 à 17:20
Voila il y a du nouveau ... j'ai modifié tout ca... maintenant le texte est copié dans l'autre fichier mais la valeur demandée n'est toujours pas remplacé

ouverture fichier en lecture: B.reset();
ouverture fichier en ecriture: S.rewrite();

classe text est dans un package qui notre prof nous a fourni (toute les fonction utilisée provienne de la)

mon code:


import fichiers.*;
import ordinateur.*;


class exind642_103
{
public static text substitute(String base, String save)
{
base ="C:/Users/Utilisateur/Desktop/a.txt";
save ="C:/Users/Utilisateur/Desktop/b.txt";

text B = new text(base);
text S = new text(save);
B.reset();  
S.rewrite();	

char b = B.first_char();
char c = 'e';
String replace = new String("MotQuiRemplace$");

while(!B.eof())
{	
if(b == c)
{			
S.write(replace);
B.readString();
}

else if(B.eoln())
{
S.writeln();
B.readln();
}
else
{
S.write(B.first_char());
B.read_char();
}


}

B.close();
S.close();	
return S;
}


public static void main(String [] args)
{
text B;
text S;
String base = " ";
String save = " ";
S = substitute(base, save);
System.out.println("Le fichier a ete modifie avec succes");

}
}

0
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
18 nov. 2009 à 17:26
mouais, c'est compliqué. Et dis à ton prof de respecter les normes de codage de Java.
Bref, pourquoi tu fais à un moment readString() et à un autre read_char ? Et quand tu fais read_char, pourquoi tu ne mets pas le résultat dans la variable b ? ce qui fait que b a toujours la même valeur ...
0
edbarbier Messages postés 7 Date d'inscription jeudi 12 novembre 2009 Statut Membre Dernière intervention 18 novembre 2009
18 nov. 2009 à 17:30
d'abord merci pour ta réponse

euh pour ce qui est des normes ca doit etre des erreurs de ma part! ca fait 2 mois que j'ai commencé le Java a raison de 2 cours par semaine...

readString c'est egalement une erreur de ma part (plutot un test pour essayer de faire changer cette valeur)

concraitement je dois écrire quoi pour changer la valeur ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kirua12 Messages postés 1155 Date d'inscription samedi 17 janvier 2004 Statut Membre Dernière intervention 29 avril 2011 7
18 nov. 2009 à 18:32
Tout simplement

while(!B.eof())	{	
    if(b == c){			
S.write(replace);
b = B.read_char();
    } else if(B.eoln()) {
S.writeln();
B.readln();
    } else {
S.write(b);//écris le caractère que tu viens de lire et non le premier du fichier
b = B.read_char();
    }
}
0
edbarbier Messages postés 7 Date d'inscription jeudi 12 novembre 2009 Statut Membre Dernière intervention 18 novembre 2009
18 nov. 2009 à 18:53
Si je remplace B.first_char par b

J'obtiens un texte rempi de J

Je veux juste que quand il y a un 'e', il soit remplacé par 'MotQuiRemplace$'
0
edbarbier Messages postés 7 Date d'inscription jeudi 12 novembre 2009 Statut Membre Dernière intervention 18 novembre 2009
18 nov. 2009 à 21:21
probleme résolu

je devais juste mettre la ligne

char b = B.first_char(); dans la boucle

merci
0
Rejoignez-nous