Probleme d'ecriture dans un fichier a partir d'un objet Vector
cs_Tmac01
Messages postés16Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention 6 juin 2006
-
2 juin 2006 à 12:57
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 2010
-
3 juin 2006 à 14:19
T-Mac ------> The Best
See you There :
J'ai un exam de passage et :
Je maitrise pas bien les mises a jour (ecriture , lecture ) dans un fichier sequential à partir d'un objet Vector .
Es ce que vous pouvez me donnez une application ou un programme simple qui peut m'aider à resoudre ce probleme .
Et vite SVP .J'attend ....
A voir également:
Probleme d'ecriture dans un fichier a partir d'un objet Vector
cs_Tmac01
Messages postés16Date d'inscriptionvendredi 2 juin 2006StatutMembreDernière intervention 6 juin 2006 2 juin 2006 à 13:51
non c pa ca si tu veu je te montre le programme,mai je conné pa comment faire pour enregistrer dans un fichier .ALOR TU M'aide stp
--------------------------------------------
VOILA C LA CLASS VECTORSOLDE(LES MISE A JOUR DANS UN OBJET VECTOR) :
import java.util.*;
import java.io.*;
public class vectsolde implements Serializable
{
Vector vec=new Vector();
public void ajouterE(soldeExtents d)
{
vec.addElement(d);
}
public void afficherE()
{
//System.out.println("Numero"+"\t\t"+"Nom"+"\t\t"+"Prenom"+"\t\t"+"Solde");
int u;
for(u=0;u<vec.size();u++)
{
soldeExtents d = (soldeExtents)vec.elementAt(u);
System.out.println(d.num()+"\t\t"+d.nom()+"\t\t"+d.prenom()+"\t\t"+d.solde());
}
}
public void afficherPN(int num)
{
int j;
boolean h;
for(j=0;j<vec.size();j++)
{
soldeExtents d=(soldeExtents)vec.elementAt(j);
if(d.num()==num)
{
h=true;
System.out.println("Numero"+"\t\t"+"Nom"+"\t\t"+"Prenom"+"\t\t"+"Solde");
System.out.println(d.num()+"\t\t"+d.nom()+"\t\t"+d.prenom()+"\t\t"+d.solde());break;
}
else
if(d.num()!=num | d.num()==0){
h=false;
System.err.println("il y a aucun client avec ce numero .");}
}
}
public void augmenterS(int num,double sld)
{
int j;
boolean h;
for(j=0;j<vec.size();j++)
{
soldeExtents d=(soldeExtents)vec.elementAt(j);
if( d.num()==num)
{
h=true;
d.augS(sld);
System.out.println("FELICITATION , le salaire a été crediter avec succé .");break;
//System.out.println("Numero"+"\t\t"+"Nom"+"\t\t"+"Prenom"+"\t\t"+"Solde");
//System.out.println(d.num()+"\t\t"+d.nom()+"\t\t"+d.prenom()+"\t\t"+d.solde());break;
}
else
h=false;
System.err.println("il y a aucun client avec ce numero .");
}
}
public void diminuerS(int num,double sld)
{
int j;
boolean h;
for(j=0;j<vec.size();j++)
{
soldeExtents d=(soldeExtents)vec.elementAt(j);
if( d.num()==num)
{
h=true;
d.dimS(sld);
System.out.println("FELICITATION , le salaire a été debiter avec succé .");break;
//System.out.println("Numero"+"\t\t"+"Nom"+"\t\t"+"Prenom"+"\t\t"+"Solde");
//System.out.println(d.num()+"\t\t"+d.nom()+"\t\t"+d.prenom()+"\t\t"+d.solde());break;
}
else
h=false;
System.err.println("il y a aucun client avec ce numero .");
}
}
public void MAJ(int num,double ca,double frs)
{
int i;
boolean h;
for(i=0;i<=vec.size();i++)
{
if(vec.size()==0){System.out.println("il n'y a aucun client enregistrer en ce moment .");}
else
{
soldeExtents s=(soldeExtents)vec.elementAt(i);
if (s.numero==num)
{
h=true;
s.maj(ca,frs);break;
}
else
h=false;System.err.println("ce numero de client est introuvable .");break;
}
}
}
public int testNumero()
{
return vec.size();
}
public void supE(int num)
{
int m;
boolean bok;
for(m=0;m<=vec.size();m++)
{
soldeExtents n=(soldeExtents)vec.elementAt(m);
if(n.numero==num)
{
bok=true;
vec.removeElementAt(m);
System.out.println("Client ecraser , supprimer , deleté , boom pour lui . HihiHI ....");
break;
}
else
{
bok=false;
System.out.println("Numero client introuvable .");break;
}
}
}
public void sauver() throws FileNotFoundException, IOException
{
try{
ObjectOutputStream flot = new ObjectOutputStream(new FileOutputStream("younes.txt")) ;
int h;
for(h=0;h<vec.size();h++)
{
//solde sld=(solde)vec.elementAt(h);
flot.writeObject(vec);
}
String rep="oui";
while (rep.equals("oui"))
{
System.out.println("\t\t\t"+"---- MENU ----");
System.out.println("\t\t"+"---- 1 saisie du client ----");
System.out.println("\t\t"+"---- 2 affichage de tous client ----");
System.out.println("\t\t"+"---- 3 affichage d'un client par numero ----");
System.out.println("\t\t"+"---- 4 augmenter le salaire d'un representant ----");
System.out.println("\t\t"+"---- 5 diminuer le salaire d'un representant ----");
System.out.println("\t\t"+"---- 6 Le chiffre d'affaire et les frais depenser par un client ----");
System.out.println("\t\t"+"---- 7 supprimer un client ----");
System.out.println("\t\t"+"---- 8 Enregistrer tous dans un fichier ----");
System.out.println("\n\t\t"+"---- Entrez votre choix ----");
int choix=Integer.parseInt(f.readLine());
switch (choix)
{
case 1:
{System.out.println("Combien de client voulez vous saisir ?");
int cb=Integer.parseInt(f.readLine());
int y;
for(y=0;y<cb;y++)
{
System.out.println("entrer le numero :");
int num=Integer.parseInt(f.readLine());
System.out.println("entrer le nom :");
String nom=f.readLine();
System.out.println("entrer le prenom :");
String prenom=f.readLine();
System.out.println("entrer le solde :");
double solde=Double.parseDouble(f.readLine());
soldeExtents d = new soldeExtents(num,nom,prenom,solde,0,0);
vec.ajouterE(d);
}
break;
}
case 2:
System.out.println("Numero"+"\t\t"+"Nom"+"\t\t"+"Prenom"+"\t\t"+"Solde");
vec.afficherE();
break;
case 3:
System.out.println("entrer le numero :");
int num=Integer.parseInt(f.readLine());
vec.afficherPN(num);break;
case 4:
System.out.println("entrer le numero :");
int num1=Integer.parseInt(f.readLine());
if (vec.testNumero()==0){System.out.println("il n'y a aucun enregistrement de n'importe client .");break;}
System.out.println("entrer le credit :");
double sld1=Double.parseDouble(f.readLine());
vec.augmenterS(num1,sld1);break;
case 5:
System.out.println("entrer le numero :");
int num2=Integer.parseInt(f.readLine());
if (vec.testNumero()==0){System.out.println("il n'y a aucun enregistrement de n'importe client .");break;}
System.out.println("entrer le debit :");
double sld2=Double.parseDouble(f.readLine());
vec.diminuerS(num2,sld2);break;
case 6:
System.out.println("entrer le numero :");
int num3=Integer.parseInt(f.readLine());
if (vec.testNumero()==0){System.out.println("il n'y a aucun enregistrement de n'importe client .");break;}
System.out.println("entrer le chiffre d'affaire à ajouter :");
double ca=Double.parseDouble(f.readLine());
System.out.println("entrer les frais depenser par le client :");
double frs=Double.parseDouble(f.readLine());
vec.MAJ(num3,ca,frs);break;
case 7:
System.out.println("entrer le numero :");
int num4=Integer.parseInt(f.readLine());
if (vec.testNumero()==0){System.out.println("il n'y a aucun enregistrement de n'importe client .");break;}
vec.supE(num4);break;
case 8:
vec.sauver();break;
default :
System.out.println("entrer 1 ou 2 ou 3 ou 4 ou 5 ou 6 ou 7 . MERCI ");break;
}
System.out.println("Voulez vous continuer ? (o/n)");
String reponse=f.readLine();
if(reponse.equals("n")){rep="non";System.out.println("Vous etes sortis du programme .A bientot !!!");break;}
else
if(reponse.equals("o")){};
}
}
}
Pour enregistrer des objets créés par toi faut les rendre serializable
Si tu enregistres depuis des threads dans un meme fichier faudra synchroniser les acces fichier (lect/ecriture)
D'autres questions, Mr "TU VAS M'AIDER VITE !" ???
Vous n’avez pas trouvé la réponse que vous recherchez ?
HSylvio
Messages postés116Date d'inscriptionjeudi 22 juillet 2004StatutMembreDernière intervention14 juin 2012 2 juin 2006 à 15:31
ca va j'sui ai pas mis rien du tout d'code; si vraiment c'etait urgent i va juste y passer le w.e., sinon ben ca va lui prendre la tete 3-4 jours... moins de temps qu'il aurai fallu en demandant gentilment à une cahuete Running Anywhere...
sheorogath
Messages postés2448Date d'inscriptionsamedi 21 février 2004StatutModérateurDernière intervention29 janvier 201017 2 juin 2006 à 19:50
je suis daccord
je n'etais pas la avant aujourd'hui pour voir quand tu as poster ce mssage
mais je te rappel qu'on est tous des benevoles et on code pour le plaisir de plus on a aussi pas que ca a faire
donc la moindre des chose c'est d'etre poli
de plus quand on poste un code on met les lignes a problemes et non tous le programme
si ton prog fait trois mille lignes tu les mettrais pas toutes si?
mais bon je ne fais que rabacher le reglement
je ne lock pas cette fois ci
repose ta question poliement , clairement avec le morceaux de code a probleme et les message d'erreurs
j'oubliais je n'ecris pas tres bien j'oublie parfois des lettres (par megarde) je fais des fautes mais tu ne me verras quasiment jamais ecrire en style sms
"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"