Rechercher : dans
Par :

Chercher une chaine de caractères

Dernière réponse le 17 mai 2008 à 04:47:29 hassona, le 13 mai 2008 à 23:02:17 
 Signaler ce message aux modérateurs

Bonjour,

je cherche une méthode java qui me permet de trouver une chaine de caractère que je donne dans un fichier.

Merci pour votre aide.

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « chercher une chaine de caractères » dans :
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
Javascript - Manipulation des contrôles clavier VoirManipulation des contrôles clavier Cette astuce a pour but de vous faire découvrir la (ou du moins une) manière de contrôler les évènements clavier en javascript. Cela vous permettra de contrôler/attribuer les/des comportements particuliers à...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...

1

petit_apprenti, le 14 mai 2008 à 10:21:33

D'apres ce que j'ai compris tu veux savoir si une chaine de caractere existe dans un fichier texte deja existant

voici un petit programme qui te demande d'introduire une chaine de caractere puis verifie si elle existe dans le fichier dont le chemin est "c:\fichier.txt"

si c'est bien ce que tu cherches tu pourras modifier ce petit programme pour t'en servir. bon courage

package lireFichier;

import java.io.*;

public class Main {

public static void main(String[] args) throws FileNotFoundException, IOException {

InputStreamReader inputStreamReader =new InputStreamReader(System.in);
BufferedReader bufferedReader1=new BufferedReader(inputStreamReader);
String string=null;
string=bufferedReader1.readLine();
File fichier=new File("C:\\fichier.txt");
FileReader lecteurDeFichier=new FileReader(fichier);
BufferedReader br=new BufferedReader(lecteurDeFichier);
String st=null;
st=br.readLine();
int i=-1;
while((st!=null)&&(i==-1)){
i=st.indexOf(string);
st=br.readLine();
}
if(i==-1)
System.out.print("la chaine de caractere n'existe pas dans le fichier texte");
else
System.out.print("la chaine de caractere existe dans le fichier");
bufferedReader1.close();
br.close();
lecteurDeFichier.close();

}

}

Répondre à petit_apprenti

2

hassona, le 14 mai 2008 à 12:07:00

Bonjour,

Merci bien pour votre réponse.

j'essaye maintenant de de modifier du texte dans un fichier.

est ce possible de lire et écrire dans le même fichier?

je trouve pas de classe ou méthode java qui me permet de lire et écrire dans le même fichier.

Merci pour votre aide.

Répondre à hassona

3

petit_apprenti, le 14 mai 2008 à 12:17:45

Oui c'est possible de lire et d'ecrire dans le meme fichier.
d'abord tu ouvres le fichier comme je l'ai fait dans l'exemple precedant puis:
pour lire tu utilises l'objet FileReader qui prend en paramettre le fichier deja ouvert (comme dans l'exemple)
pour ecrire tu utilises l'objet FileWriter qui prend en paramettre le meme fichier ouvert
boncourage

Répondre à petit_apprenti

4

hassona, le 14 mai 2008 à 13:50:40

Pour vous mettre au courant.

le but de l'application que je souhaite réaliser c changer une chaine de caractère que je cherche dans un fichier par une autre.

voilà le code que j'ai fait:

public class remplacer {

public static void main(String[] args) throws IOException {
InputStream ips1=new FileInputStream("textefiltré.txt");
InputStreamReader ipsr1=new InputStreamReader(ips1);
BufferedReader br1=new BufferedReader(ipsr1);

InputStream ips2=new FileInputStream("inc_vw_prescription.tpl");
InputStreamReader ipsr2=new InputStreamReader(ips2);
BufferedReader br2=new BufferedReader(ipsr2);

FileOutputStream ops = new FileOutputStream("fichiertext.txt");
OutputStreamWriter opsr = new OutputStreamWriter(ops);
BufferedWriter bw = new BufferedWriter(opsr);


String []str;
String ligne1=br1.readLine();
System.out.println(ligne1);
String ligne2;
while((ligne2=br2.readLine())!=null){
if(ligne2.contains(ligne1)){
System.out.println(ligne2);
str=ligne2.split(" ");
for(int i=0;i<str.length;i++){
//ligne2.replaceAll(str[i], "hassna");
}
}
}
}

}

mais l'erreure de ce code réside ds le fait que " FileOutputStream ops = new FileOutputStream("fichiertext.txt");
OutputStreamWriter opsr = new OutputStreamWriter(ops);
BufferedWriter bw = new BufferedWriter(opsr); "

ecrase le fichier initial et crée un nouveau qui est vide.

alors le but est de modifier le texte déja existant dans le fichier spécifié.

j'éspère que ce que je viens de dire est claire.

Merci infiniment pour votre attention.

Répondre à hassona

5

petit_apprenti, le 15 mai 2008 à 11:26:02
  • +1

Voici un programme qui fait exactement ce que tu veux. ce n'est la meilleure des facon de faire mais c'est juste pour t'expliquer. ce programme lit le fichier c:\fichier.txt est remplace toutes les occurences du mot "amine" par le mot "ahmed"


import java.io.*;

public class Main {

public static void main(String[] args) throws FileNotFoundException, IOException {


File fichier=new File("C:\\fichier.txt");
FileReader fileReader=new FileReader(fichier);
FileReader fileReader1=new FileReader(fichier);
BufferedReader bufferedReader1=new BufferedReader(fileReader1);
int nbLigne=0;
String string1=bufferedReader1.readLine();
while(string1!=null){
nbLigne++;
string1=bufferedReader1.readLine();
}
bufferedReader1.close();
fileReader1.close();
String []str = new String[nbLigne];
BufferedReader bufferedReader=new BufferedReader(fileReader);
String string=bufferedReader.readLine();
int i=0;
while(string!=null){
str[i]=string.replaceAll("amine","ahmed");
i++;
string=bufferedReader.readLine();
}
bufferedReader.close();
fileReader.close();
FileWriter fileWriter=new FileWriter(fichier);
BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);
for(int z=0;z<str.length;z++){
bufferedWriter.write(str[z]);
bufferedWriter.newLine();
}
bufferedWriter.close();

}

}

la premiere boucle sert a compter le nombre de lignes afin de creer un tableau de String de la taille ideale.
la deuxieme boucle: apres avoir remplacer le mot "amine" par le mot "ahmed" stoque les ligne de texte modifiees dans le tableau str. apres ca j'ouvre le meme fichier en ecriture, c'est vrai que ca ecrase toutes les donnees mais je les ai deja sauvgarder dans le tableau str, apres ca il me suffit de re-ecrire les ligne de texte modifier dans le fichier. voiiiiila. j'espere que j'ai rependu a ta question, si ce n'ai pas encore le cas recontacte moi. bon courage

Répondre à petit_apprenti

6

 petit_apprenti, le 17 mai 2008 à 04:47:29

Alors ca a resolu le probleme ou pas ?

Répondre à petit_apprenti
Collection CommentÇaMarche.net