Oppure

Loading
05/08/09 10:41
netarrow
sarebbe una complicazione inutile basarsi su un file da gestire noi.
aaa
05/08/09 16:59
HEAD
Certo ragazzi convengo con voi che è una complicazione inutile, basarsi su un file, era solo un'idea
il nostro amico chiedeva di fare qualcosa per memorizzare i suoi account e non ha intenzione di usare un db, quindi l'idea di scrivere tutto su un file mi e sembrata la più veloce e semplice,..

poteva essere un qualcosa di simile .. Esempio:

1)
immaginate un jpanel con un jlist che elenca il contenuto di una directory , e facendo clic su nome specifico ti vada a leggere il contenuto del file, quindi a video avrai i tuoi dati che avrai salvato.. semplice ed efficace per memorizzare un qualcosa..

2)
se invece si vuole visualizzare solo il dato singolo ed inserirlo in dei jtextField separati allora si potrebbe scrivere un file in questo modo...

Esempio :..

User=user
Password=password
Nome=nome
Email=email


Successivamente creare un metodo che legge il file e memorizza ogni linea in una array di String[]
tipo Esempio:

public String[] getScanner(String path){

this.path=path;

f=new File(path);

try{

StringBuffer out = new StringBuffer();

String scann="";

BufferedReader reader= new BufferedReader(new FileReader(f));

while((scann=reader.readLine())!=null)

out.append(scann+"<>".trim());

reader.close();

return out.toString().split("<>";);

}

catch(IOException ex)

{ex.printStackTrace();}

return null;

}

}

Adesso abbiano la nostra Array non ci resta di ciclare su di essa e prelevare il valore desiderato ..
tipo con un metodo simile:
Esempio:
public static String getUser(String[] values) {


String confront=””;
String[] action = null;

action = values;

int size = action.length;

for (int i = 0; i < size; i++) {

if(action[i].length()>=4){

confront = action[i].substring(0,4);

if (confront.equalsIgnoreCase("User";)) {


return confront.substring(5);

}
}

}



quindi in questo modo potremo prelevare ogni valore descrivendo l'etichetta del nostro campo...

per salvare il file in questo tipo di scrittura, basta dichiarare una classe che mappa i nostri campi

Esempio :
public class Database{

public ArrayList addScrittura= new ArrayList();

private String user;
private String password;
private String etc,etc;

con i relativi metodi set e get;

public String getUser(String user){

return “User=”+ user +”\n”;

//quindi il nostro user sarà scritto nel file in questo modo: User=valore
}

ancora un altro passettino : addizionare i get in una ArrayList non sarebbe male, quindi tipo:
public void setScrittura() {

addScrittura add(getUser + getPassword+ getEct,Ect);

}
ultimo passo creare un metodo che rilascia la stringa da scrivere nel file tipo:
public String toString(){

StringBuffer out= new StringBuffer();

for(int i=0;i<addScrittura.size();i++){

out.append( addScrittura.get(i).toString());

}



return out.toString();

}


avremmo un file scritto in questo modo:

User=user
Password=password
Nome=nome
Email=email

}
questo e un semplice modo per leggere in un determinato punto, ma ce ne sono molti altri ancora
come creare un file sequenziale o di accesso causale in un file xml etc,etc
..
io credo che la programmazione e esprimersi anche con la propria fantasia, ci sono sempre tanti modi per raggiungere qualcosa l'importante e raggiungerla..
sono un nuovo utente e solo ieri ho avuto modo di conoscervi, e voglio congratularmi con voi per l'impegno e la bravura sono sicuro che raggiungerete degli ottimi traguardi.. veramente bravi. A me piace dire sempre quello che penso.. ciao javascript:addsmile(':k:')
aaa
05/08/09 17:39
Sventrip
che confusione...:D. il programma che ho iniziato sara' completato con le basi del java e poi revisionato e modificato del migliore modo possibile.volgio andare per gradi senza inserire codice che non conosco bene.
Vi ringrazio per l attenzione e per il momento ho deciso di fare una cosa semplice con i file, che verranno creati in una cartella ogni qual volta che si inserira' un nuovo account e potranno essere ricercati all interno della cartella in base al nome (inizialmente).Da questa prima versione ,tanto povera, vedro' di aggiungere e modificare il tutto sino ad usare un DB o XML o altro.
@ Netarrow: nel tuo primo messaggio hai parlato di serializzazione e io ho fatto una domanda , e' possibile memorizzare tutti gli oggetti che inserisco e poi eseguire ricerche sul file dove sono stati memorizzati(oggetti in questo caso con piu attributi)??
@HEAD : cosi non vale mi hai scritto una soluzione possibile :rofl: che non voglio leggere attentamente(per il momento) per stare sulla mia "povera" idea. Hai parlato di jpanel e jlist, queste cose non le ho ancora viste , riguardano swing? cosi mi prendo un libro anche di quello :D thanks guys:k:
aaa
05/08/09 17:47
HEAD
:-) :k::k:
aaa
05/08/09 19:55
netarrow
@ Netarrow: nel tuo primo messaggio hai parlato di serializzazione e io ho fatto una domanda , e' possibile memorizzare tutti gli oggetti che inserisco e poi eseguire ricerche sul file dove sono stati memorizzati(oggetti in questo caso con piu attributi)??


Certo.
Deserializzi, ricaricando l'oggetto in memoria, e fai la ricerca li.
Devi chiaramente implementare il codice per fare la ricerca, ma visto che ti piacciono le soluzioni sporche :D basta anche un banale ciclo dove guardi se l'elemento x ha l'attributo y al valore che ti interessa o meno.

Per farla più pulita potresti estendere le opportune classi e implementare le opportune interfacce delle collections di java, implementare gli appositi metodi e creare una versione ad hoc per fare una ricerca come serve a te.

Ah per il futuro quel file andrebbe cifrato chiaramente, usandolo assieme la serializzazione dovresti usare i Sealed Objects (oggetti chiusi): java.sun.com/j2se/1.5.0/docs/api/javax/crypto/…
Ultima modifica effettuata da netarrow 05/08/09 19:57
aaa
05/08/09 21:19
eddiewrc
fai una hash table di dati cifrati.. oppure come fa linux con il file /etc/passwd
aaa