Reinitaliser un champ

CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009 - 9 juil. 2007 à 10:03
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009 - 9 juil. 2007 à 15:57
Salut à tous j'ai un formulaire qui enregistre les infos dans un fichier .txt.

Mais je souhaiterais grâce à un bouton :
1-reinitialiser les champs
2-ecrire donc de nouvelles données
3-enregistrer ces nouvelles données juste en-dessous des précédentes dans le fichier.txt.

J'ai aucune idée de la façon dont il faut aborder ce problème, j'arrive à reinitaliser les champs mais
ecrire de nouvelles données juste en-dessous des précédentes est impossible à faire pour moi .
 

J'aimerai faire cette action autant de fois que je veux.

Voila.Merci d'avance pour votre aide.

17 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
9 juil. 2007 à 10:34
Pourquoi utiliser un fichier plat ? Préfère lui un fichier xml ou une base de données, ce sera bien plus efficace (car je pense que tu voudra le relire à un moment ou à un autre), et bien plus simple à utiliser.
0
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
9 juil. 2007 à 10:38
Re Salut, c'est tout simplement parce que c'est mon projet.
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
9 juil. 2007 à 10:44
pour ecrire à la suite dans un fichier il faut l ouvrir en mode append ... et les operation d ecriture ce feront à la suite
Et si rien ne t empeche d enregistrer ;o) tes formulaires en XML?!!! ;o) ben cela pourrai etre plus utile ;o)

GodConan ;o)
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
9 juil. 2007 à 10:48
FileWriter( String filename,


boolean

append )

voila un exemple de class simple à utiliser ... ;o)





GodConan ;o)
0

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

Posez votre question
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
9 juil. 2007 à 10:51
Merci beaucoup GodConan je vais essayer d'appliquer cela sachant que je l'ai jamais fait auparavant.Mais je pense absolument pas que je vais réussir.
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
9 juil. 2007 à 11:21
c est en forgeant que ......  ;o)

GodConan ;o)
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
9 juil. 2007 à 11:24
<title>
</title>
<meta name="GENERATOR" content="OpenOffice.org 2.2 (Linux)" />
<meta name="CREATED" content="20070709;11190100" />
<meta name="CHANGED" content="16010101;0" />
<style type="text/css">
<!--
@page { size: 21cm 29.7cm; margin: 2cm }
P { margin-bottom: 0.21cm }
-->
</style>
Salut,

c'est abusé
sérieux je t'ai fait un exemple avec le mode append.... et tu
m'as même dis que tu avais compris..... décidément
les membres me font taper des allu.....

Concernant le xml
c'est bien c'est beau, mais rien de tel pour alourdir une
application....











------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
9 juil. 2007 à 11:33
Salut, je suis d'accord avec ton programme seulement je n'arrive pas à ecrire les données en dessous des précédentes.

Je suis complètement perdu,désolé.

Quand je relis ton programme, j'ai compris la manière dont tu as fait pour reinitaliser les champs.


Mais mon gros problème c'est d'ecrire les nouvelles données juste en-dessous


des précédentes.


 


Pour cela ,j'ai pensé à créer une classe qui "enregistre" les champs de texte.

Je ne sais pas si j'ai été clair mais bon sinon je vous mets le code.

Merci encore
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
9 juil. 2007 à 11:37
tu peux regarder ma source dksErrorFramework pour un autre exemple d'ajout dans un fichier.

Twinuts : je suis d'accord, le XML est très verbeux, mais niveau simplicité, si tu utilise JDOM, c'est tip top !
0
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
9 juil. 2007 à 11:41
Salut,
Voici le code:

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;

import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Programm extends JPanel implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
JCheckBox Login, Password;
JButton ok, valider, nouveau;
JTextField login, password;

Programm() {
Login = new JCheckBox("Login");
Login.addActionListener(this);

Password = new JCheckBox("Password");
Password.addActionListener(this);

login = new JTextField(10);
login.setEnabled(false);
password = new JTextField(10);
password.setEnabled(false);

nouveau = new JButton("Nouveau");
nouveau.addActionListener(this);

ok = new JButton("OK");
ok.addActionListener(this);

valider = new JButton("Valider");
valider.addActionListener(this);

JPanel panneauSaisie = new JPanel(new GridLayout(2, 4, 5, 5));

panneauSaisie.add(Login);
panneauSaisie.add(login);
panneauSaisie.add(nouveau);
panneauSaisie.add(new JLabel());
panneauSaisie.add(Password);
panneauSaisie.add(password);
panneauSaisie.add(ok);
panneauSaisie.add(valider);

setLayout(new BorderLayout(20, 20));
add(panneauSaisie, BorderLayout.NORTH);

}

public void actionPerformed(ActionEvent evt) {
if (evt.getSource().equals(Login)) {
login.setEnabled(Login.isSelected());
}
else if (evt.getSource().equals(Password)) {
password.setEnabled(Password.isSelected());
}
if(evt.getSource().equals(nouveau))
{
Structure.LOGIN = login.getText();
Structure.PASSWORD = password.getText();
Login.setSelected(true);
login.setEnabled(Login.isSelected());
login.setText("");
Password.setSelected(true);
password.setText("");
password.setEnabled(Password.isSelected());
}
else if (evt.getSource().equals(valider)) {
if (Login.isSelected() || Password.isSelected())
{
JFileChooser ch = new JFileChooser();
ch.setAcceptAllFileFilterUsed(true);
ch.setFileSelectionMode(JFileChooser.FILES_ONLY);
int result = ch.showSaveDialog(this);
if (result == JFileChooser.APPROVE_OPTION)
{
File destFile = ch.getSelectedFile();

if (destFile == null)
{
JOptionPane.showMessageDialog(this, "Null file",
"Error", JOptionPane.ERROR_MESSAGE);
return;
}
boolean append = false;

try
{
PrintWriter pw = new PrintWriter(new FileOutputStream(destFile, append));

//En ecrivant cela je peux prendre les premieres données ecrites
//La classe Structure est crée exprès afin de stocker en mémoire
//les données saisies

//final class Structure
// {
// static String LOGIN;
// static String PASSWORD;
// }

pw.println(Structure.LOGIN + "\r");
pw.println(Structure.PASSWORD + "\r");
if(evt.getSource()==nouveau)
// Et ici en ayant appuyé sur Nouveau je peux prendre les deuxièmes données
//Probleme: je ne peux pas le faire autant de fois que je veux
pw.println(Structure.LOGIN + "\r");
pw.println(Structure.PASSWORD + "\r");
if (Login.isSelected())
{ pw.println(login.getText() + "\r");}
if (Password.isSelected())
{ pw.println(password.getText() + "\r");}

pw.close();
}
catch (Exception ex)
{
JOptionPane.showMessageDialog(this, "Exception : "
+ ex.getMessage(), "Error",JOptionPane.ERROR_MESSAGE);
return;
}
}
}
}
}

public static void main(String[] args)
{
JFrame fenetre = new JFrame("Paramètres");
Container panneau = fenetre.getContentPane();
panneau.setLayout(new FlowLayout(FlowLayout.LEFT, 50, 50));
Programm nouvoPanneau = new Programm();
panneau.add(nouvoPanneau);
fenetre.pack();
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenetre.setVisible(true);
}
}
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
9 juil. 2007 à 12:07
meu non ...  c est bien c est beau ... mais c est pas fait pour remplacer un SGBR ;o) ..

GodConan ;o)
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
9 juil. 2007 à 12:13
Salut,

c'est moche le xml en plus si ton client t'impose une couche SOAP avec les entetes de liquid xml laisse tomber tu as 80% du message pour rien, alors qu'une simple chaine de quelques octets reste plus fluide....

Bref un bon fichier plat bien structuré c'est le top sinon une bonne bdd berkley

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
9 juil. 2007 à 12:23
Perso j aime bien ca... ;o) Mais j avou j en utilise asser peu ;o)
Les cas les plus courant d utilisation c est pour mes fichier d import export de pref ;o) c et plus souple que les properies et plus simple à porter que les ficheir sérializé.. ;o)
M enfin tout ca resou pas le prob de Cicin ;o) héhéh .
GodConan ;o)
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
9 juil. 2007 à 12:27
Salut,

c'est vrai que le problème tout simple de mister Cicin pourai vite se résoudre si il ne forcé pas le champs append à false (il se trouve dans le case evt.getSource().equals(valider) juste au dessus du try du PrintWriter)....

^^

------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
9 juil. 2007 à 12:42
;o) alala les jeunes .... ;o) faut tout leur dire ....

GodConan ;o)
0
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
9 juil. 2007 à 14:09
Hello,

En ayant mis append à true, je n'arrive pas à écrire plusieurs fois d'affilée
dans mon fichier.txt.
Je veux réitérer l'opération plusieurs fois
0
CicinhoRaul Messages postés 221 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 16 janvier 2009
9 juil. 2007 à 15:57
Buenas tardes,
Encore désolé de vous déranger mais rien ne marche.
Si quelqu'un pouvait être en ligne et qu'il pourrait m'aider cer je suis en panique.

Merci.
0
Rejoignez-nous