bettysatte
Messages postés58Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention 2 juillet 2009
-
9 juin 2009 à 17:32
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 2011
-
4 juil. 2009 à 00:40
bonjour, voilà mon pb:
je dois créer une matrice de traffic avec java: cette matrice calcule la somme de duréé de l'appel entre l'appelant et l'appelé.j'ai des fichiers text dans lesquels il y a les différents données sur l'appelant et l'appelé et la durée de leurs appels, c pourquoi dans un premier temps, faudra que j'extrait les données dont g besoin et les mettre dans cette matrice puis cette matrice doit calculer la durée entre l'appelant et l'appelé.
merci de bien vouloir m'aider, c urgent.
cs_neone
Messages postés96Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention 7 mars 2011 9 juin 2009 à 17:53
Bonjour,
donc si j'ai bien compris , ton programme doit lire des fichiers textes et les mettre dans des matrices. pour lire un fichier txt les choix c pas ce qui manque!!! maint faudra juste pense a la structure de ton fichier txt genre tu les écris ligne par ligne ou colone par colone. met un example de fichier txt si tu ve. pour essayer de voir l'algo.
bettysatte
Messages postés58Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention 2 juillet 2009 9 juin 2009 à 18:46
slt;
oui exactement , pour lire les fichiers texts j'arrive à le faire, mais pour mettre les données dont g besoins dans une matrice, cela j'arrive pas à le faire.
il me faut un algorithme en java qui me permettra d'extraire juste les données dont g besoin de ces fichiers et les mettre sous forme d'une matrice; dans cette matrice faudra que j'aille le numero de l'appelant et celui de l'appelé et entre l'appelant et l'appelé inserer la durée de leur appels. je dispose d'un fichier qui contient l'ura de chaque plage de numéro et un autre fichier qui contient l'ura qui correspond à chaque centre, et un autre fichier qui contient le numéro de l'appelant et celui de l'applé et la durée et d'autre champs. donc le principe c'est de voir à quelle plage le numéro il appartient puis une fois on a detecté à quelle plage il appartient, faudra voir l'ura correspondant, une fois on detecte l'ura de l'appelant et de l'appelé la case entre eux doit etre remplie par leur durée d'appel.
je sais pas si j'étais assez clair.
merci bcp c gentil à vous de m'aider.
bettysatte
Messages postés58Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention 2 juillet 2009 10 juin 2009 à 16:23
bonjour,
en fait je sais pas comment faire passer ici ,les fichiers text avec lesquels je travaille.
est ce qu'il est imperatif de voir les fichiers pour me proposer un code?
merci encore pour votre aide.
bettysatte
Messages postés58Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention 2 juillet 2009 10 juin 2009 à 17:13
ce code pour lire mon fichier, j'ai fait la meme chose pour les deux autre fichiers
import java.io.*;
import java.util.StringTokenizer;
public class CatFichier {
public static void main(String[] args) throws IOException{
BufferedReader fichier = new BufferedReader(new FileReader("E://Documents and Settings//Ibtissame//Mes documents/Mes fichiers reçus//CAA.txt"));
String str;
str = fichier.readLine( );
while (str != null){
System.out.println(str);
str = fichier.readLine( );
}
}}
pour le contenu des fichiers :
mon fichiers ura:
ce fichier contient les plages( seuil min et seuil max) à laquelle apartient chaque operateur; pour UR001 et UR002 jusqu'à UR512 ( pour le moment je travaille juste sur un échantillon d'ura UR001 et UR002), ces ura corresponde au fix.
Ura ;seuil_min ;seuil_max;
UR001 ;028210000 ;028233999;
UR002 ;028292000 ;028292999;
mobile IAM ;010330000 ;078999999;
intern ;00000 ;022920999;
meditel ;020000000 ;082039999;
wana ;038000000 ;088199999;
mon fichier centre:
indique pour chaque URA correspond un centre au quel appartient soit l'appelant ou l'appelé ( c'est Ura sont juste un echantillon):
Ura ; centre
UR001;Agadir Al Qods DMS
UR002;Aït Baha (U.DMS)
UR003;Ait Melloul 1 (U.DMS)
UR004;Assa (U.DMS)
UR005;Bensargao (U.DMS)
mon fichiers CAA:
c'est un fichiers qui contient plusieurs champs mais dont g besoin se sont trois champs:
N_ORG et N_DEST et durée
Donc comme je l'ai expliqué, il faudra dans un premier lieu tester le numéro appelant et appelé à quelle plage ils appartiennent pour determiner l'urade chacun d'eux, puis determiné la durée de leur appels et pou cela il faut extraire ces donnée qu'il nous faut de ces fichiers, donc ma question:
comment on fait pour extraire les données dont on a besoin parmis d'autre.
comment on fera le test pour savoir à quelle plage appartient chaque numéro appelant et appelé
et puis comment mettre le resultat sous forme de matrice de tel façon à avoir dans la case la durée d'appel entre l'appelant et l'appelé.
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 10 juin 2009 à 17:54
En ce qui concerne ton fichier CAA, ça serait bien si tu pouvais le convertir au format XML, les données seront accessibles plus facilement.
Sinon (pour tout tes fichiers) tu peux toujours lire une ligne entière et utilisée la fonction Split d'un string sur le caractère ';'. Tu récupères uniquement les données qui t'intéresse par la suite pour le fichier CAA (pour le reste tu devras récupérer toute les données).
Le nombre de lignes pouvant varié, utilise des tableaux dynamiques!
Pour connaître l'ura, tu n'as qu'à vérifier si le numéro est supérieur au seuil max (tant qu'il l'est, tu parcours ton tableau). Quand le numéro est inférieur, tu connaitras ta plage (et l'indice du tableau aussi normalement).
Il te suffira d'aller dans le tableau où tes données concernant les centres sont stocké et tu vas directement à l'indice que tu as récupéré.
PS: Perso je ferais peut être un seul tableau pour regrouper les données des ura, du genre :
tab[0] = ur001
tab[1] = seuil min
tab[2] = seuil max
tab[3] = centre
The possible meet the impossible to become the possimpible !!
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 10 juin 2009 à 21:33
La structure de ton fichier est la même soit :
N_ORIG ; ID_SWITCH_ORIG ;N_DEST ;TYPE_DEST
;ID_SWITCH_DEst; D_SEBCOM ;durée; Type_Ticket ;ID_jour;
;ID_SEMAINE;ID_Heure;
Tu lis les lignes
String str;
str = fichier.readLine( );
while (str != null){
System.out.println(str);
string[] tab = str.Split(...) // tu récupèreras un tableau du style
//tab[0] = N ORIG
//tab[1] = ID_SWITCH_ORIG ainsi de suite
str = fichier.readLine( );
}
dans ta boucle tu n'as plus qu'à récupérer ce qui t'intéresse, dans ton cas tu vas récupérer au moins tab[0] puisque tu as besoin du numéro d'origine...
Mais avec la structure XML c'est toujours mieux, mais enfin il faudra faire des traitements supplémentaires
understood?
The possible meet the impossible to become the possimpible !!
bettysatte
Messages postés58Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention 2 juillet 2009 11 juin 2009 à 15:23
bonjour,
j'ai fait cela pour recuperer tous le fichier,
import java.io.*;
import java.util.StringTokenizer;
public class CatFichier {
public static void main(String[] args) throws IOException{
BufferedReader fichier = new BufferedReader(new FileReader("E://Documents and Settings//Ibtissame//Mes documents/Mes fichiers reçus//CAA.txt"));
String str;
str = fichier.readLine( );
while (str != null){
System.out.println(str);
str = fichier.readLine( );
}
}
}
alors si je veux récuperer juste les champs qui m'interesse faudra que je les insère sous forme de
tab[0]= ID_ORG
tab[1]=ID_DEST ...... ect
et puis je fais appel au champs dont j'ai besoin, c'est ça?
je vois pas trop comment jvais faire pour l'algorithme.
merci pour votre aide et pacience.
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 11 juin 2009 à 16:57
Salut
tu dois spliter le string str avec le caractère ';', sa te renverra un tableau de la sorte tab[0]= ID_ORG... bien sûr ID_ORG sera remplacé par le numéro de télépehone après tu n'auras plus qu'à récuper les valeurs dans le tableau des indices qui t'intéresse
The possible meet the impossible to become the possimpible !!
N_DEST
N_ORIG
durée
052836003
028877888
36
065847546
028877888
17
072333568
037520986
14
074387978
035271374
1
013340125
035271374
101
079080890
035271374
87
0033494998162
037520986
60
0034677071567
028877888
11
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at CatFichier.main(CatFichier.java:12)
comment faire pour obtenir chacune dans une colonne , et non pas dans une seule colonne.
cs_neone
Messages postés96Date d'inscriptionmercredi 23 novembre 2005StatutMembreDernière intervention 7 mars 2011 11 juin 2009 à 17:29
Bonjour,
l'instruction de permet de lire la ligne entiére chose qui facilite pas les choses str = fichier.readLine( ). ben on est sous java quand meme!!!!!. donc tu défini une classe a toi qui contiendra tes données de ton choix et avec ça tu rajoutera une méthode qui te permet de passer d'un string a un objet de la classe, enfin un set(string). donc c le traitement qu'il faut faire c de séparer tes données dans la ligne , chose qui est déja faite avec ";". ce qu'on appel parser en java.
Boncourage
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 11 juin 2009 à 17:41
Ton erreur indique que ton indice dépasse les limites du tableau, toutes les lignes sont-elles vraiment identique ?
Maintenant que tu as plus ou moins compris le principe à toi de jouer !!
The possible meet the impossible to become the possimpible !!
bettysatte
Messages postés58Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention 2 juillet 2009 11 juin 2009 à 18:43
slt, merci bcp pour votre aide.
en fait j'ai pas trop compris ce que vous m'avez dit, shui debutante en jave , ce qui fait il m'est difficil de comprendre rapidement certaines choses.
je crée une classe qui contient quoi exactement?
et concernant les lignes elle sont pas identique, comment faire alors?
merci encore de bien vouloir m'éclaircir.
cs_MoH008
Messages postés238Date d'inscriptionlundi 2 mars 2009StatutMembreDernière intervention29 septembre 20111 12 juin 2009 à 03:00
Si ton fichier n'a pas toujours ce format :
N_ORIG ; ID_SWITCH_ORIG ;N_DEST ;TYPE_DEST ;ID_SWITCH_DEst; D_SEBCOM ;durée; Type_Ticket ;ID_jour; ;ID_SEMAINE;ID_Heure;
eh bien pour ton traitement c'est râpé !!!
Si une ligne contient moins d'éléments tu risques de sélectionner de mauvaises données ou bien sortir tout simplement générer ton erreur...
PS: n'oublie pas d'écrire correctement sur le forum
The possible meet the impossible to become the possimpible !!
bettysatte
Messages postés58Date d'inscriptionmercredi 3 juin 2009StatutMembreDernière intervention 2 juillet 2009 12 juin 2009 à 09:55
bonjour,
j'arrive à afficher tout le fichier, et même n'importe quelle ligne que je veux, le problème qui se pose c'est quand je choisis mes champs que je veux qu'il s'affiche:
il y'a un chevauchement , c'est à dire que mes trois colonnes choisies, s'affichent en une seule, est ce que je dois créer des classes pour chaque fichier où j'identifie chaque champs et puis je fais appel à ces champs?! si c'est oui comment faire s'il vous plait?
ps: est ce que c'est interdit d'abréger les mots en ce forum?