Base de donnée et fichier

fredo -  
 missour -
Bsr

quelqu'un a t'il une solution j'au un fichier text et je voudrais comparer les elements de ce fichier avec une table dont les element sont des string quelqu'un a t'il une solution merci.
En java c'est cool
A voir également:

2 réponses

HackTrack
 
Voilà une solution possible.
J'ai créé un DB Access. Elle ne contient qu'une seule table appelée "DataTable". Cette table contient 2 colonnes: "id" qui contient des int, et "value" qui contient des String (les String à comparer avec le contenu du fichier texte).
Le DSN de la DB est "TestDB" (pas oublier de le configurer dans ODBC Data Sources!!!).

Cette classe (plus précisément la méthode check()) te permet de comparer chaque mot du fichier texte avec les String contenus dans la DB. Une fois qu'un mot du fichier texte est trouvé dans la DB, ce mot est ajouté à une ArrayList, aisément consultable par la suite.

Assez parlé voici le code source:

import java.util.*;
import java.io.*;
import java.sql.*;

/**
*@author HackTrack
*@created March 11, 2002
*@version 1.0
*/

public class StringChecker {

public StringChecker() {
}

public ArrayList check(String textFilePath, String dsn) {
ArrayList checkResult = new ArrayList();
try {
StringBuffer text = getTextFromFile(textFilePath);
//On stocke tous les mots du fichier dans une liste
ArrayList foundWords = foundWords = parse(text);
//On établit une connection vers la DB
Connection conn = getConnection(dsn);
Statement s = conn.createStatement();

Iterator it = foundWords.iterator();
ResultSet rs;
while(it.hasNext()) {
//On récupère les mots de la liste un par un
String word = (String)it.next();
//On construit la requête SQL
String sqlQuery = "SELECT * FROM DataTable WHERE value='" + word + "'";
//On exécute la requête SQL
rs = s.executeQuery(sqlQuery);
//Si le résultat de la requête n'est pas nul, on stocke le mot pour
// lequel une concordance a été trouvée dans une ArrayList.
while(rs.next()) {
checkResult.add(word);
break;
}
}
conn.close();
}
catch(SQLException sqle) {
System.out.println("SQL exception occured");
}
return checkResult;
}

private StringBuffer getTextFromFile(String filePath) {
StringBuffer textBuffer = new StringBuffer();
try {
//On crée un BufferedReader qui va permettre de lire, ligne par ligne,
// le texte contenu dans le fichier. On stocke le contenu du fichier
// dans un StringBuffer.
BufferedReader reader = new BufferedReader(new FileReader(filePath));

String textLine = "";
while((textLine = reader.readLine()) != null) {
textBuffer.append(textLine);
}
reader.close();
}
catch(IOException ioe) {
System.out.println("IOException occured");
}
return textBuffer;
}

private Connection getConnection(String dsn) throws SQLException {
Connection conn = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:" + dsn, "", "");
}
catch(ClassNotFoundException cnfe) {
System.out.println("Class not found");
}

return conn;
}

private ArrayList parse(StringBuffer textToCheck) {
ArrayList foundWords = new ArrayList();
StringTokenizer tokenizer = new StringTokenizer(textToCheck.toString(), " ");
//On parse le texte du fichier pour en récupérer chaque mot et stocker ces
// mots dans une ArrayList
while(tokenizer.hasMoreTokens()) {
String aWord = tokenizer.nextToken();
if(!foundWords.contains(aWord)) {
foundWords.add(aWord);
}
}
return foundWords;
}

public static void main(String args[]) {
StringChecker checker = new StringChecker();
String filePath = "C:/Temp/checker.txt";//Ce fichier contient le texte à comparer
String dsn = "TestDB";
ArrayList foundWords = checker.check(filePath, dsn);
// Affichage des occurences trouvées
// La ArrayList contient tous les mots du fichier texte pour lesquels une (ou
// plusieurs occurences) ont été trouvées dans la DB
Iterator it = foundWords.iterator();

while(it.hasNext()) {
String word = (String)it.next();
System.out.println("Le mot " + word + " (issu du fichier texte) a été trouvé dans la DB");
}
}
}

... en espérant que cela répond à ta question.

;-)
HackTrack
0
belle_mannou Messages postés 4 Statut Membre
 
je veut récupérer des donnés a partir de fichier texte et le mettre dans une base de donnés est ce que vous pouvez m'aidez
voila un exemple de contenu de mon fichier

[1;34mICMPPacket: echo request, 192.168.100.117 -> 192.168.100.2 l=4,36]
je veut savoir comment extraire chaque attribut et le mettre dans ma base de donné
aidez moi s'il vous plait! mannou
-1
missour > belle_mannou Messages postés 4 Statut Membre
 
svp tu peux me guider de faire l'inverser si par exemple j ai une base de données et je veux la convertir au ficher texte
comment faire avec sql-server???????????????????????????????????????
0
fredo
 
mais le principe est cool

je vais plustot utiliser Mysql

merci mon pote
0