PDA

Visualizza la versione completa : [Java] Ricerca su intervalli temporali


--LO--
07-09-2003, 17:07
Salve a tutti, piccola domanda:

Volevo fare una cosa del tipo che io inserisco degli intervalli di tempo e in base a quelli vado a ricercare in un file dove ho salvato delle cose.
Come posso fare una cosa simile?

--LO--
07-09-2003, 19:01
scusate, specifico :stordita:

io ho due jTextArea dove voglio inserire delle date .In base all'intervallo fra queste due date io voglio che il programma mi cerchi un appuntamento nella mia agenda la cui data è compresa fra questi due intervalli.
Come faccio a prendere i dati da queste JTextArea per potermele confrontare con i dati già presenti nell'agenda?

Spero di essere stata chiara stavolta:)
tnx

Zero-2
07-09-2003, 19:34
Cioè inserisci una data per ogni JTextArea???
o più date per ogni JTextArea??

--LO--
07-09-2003, 20:42
Originariamente inviato da Zero-2
Cioè inserisci una data per ogni JTextArea???
o più date per ogni JTextArea??
allora, io ho due campi di testo dove metto due date,
cio ho:

dal 12/7/2003 al 15/7/2003
e io voglio cercarmi nell'agenda tutti gli appuntamenti che sono compresi fra quelle date.
Ora, per prelevare la data dall'appuntamento non ho problemi. Il problema si pone per prelevarlo da questi campi.
:)

Zero-2
07-09-2003, 22:42
Una volta che hai la data degli appuntamenti la confronti con i due valori che ottieni dai JTextField(JTextArea ) con qualche controllo e inserisci quelli compresi.
Spero di non aver capito male pure stavolta
:gren: :gren: :gren:

:ciauz:

--LO--
09-09-2003, 08:23
Originariamente inviato da Zero-2
Una volta che hai la data degli appuntamenti la confronti con i due valori che ottieni dai JTextField(JTextArea ) con qualche controllo e inserisci quelli compresi.
Spero di non aver capito male pure stavolta
:gren: :gren: :gren:

:ciauz:
No no ,capito benisismo ed è quello che tento di fare, ma poi non so come fare a visualizzare solo quelli perchè io gli appuntamenti li apro direttamente nell'interfaccia grafica.
Pensavo a salvare in un file temporaneo i dati ottenuti e poi aprirlo, ma non mi riesce :master:

javamen
09-09-2003, 12:36
Fammi un esempio di un record che hai nel file

Zero-2
09-09-2003, 12:50
Quando clicchi su ricerca , apri una nuova finestra temporanea e inserisci li i risultati e se si clicca su un risultato , visualizzi il suo contenuto.O no?
Ma non hai completato la funziona salva e salva con nome??
Ho provato ma non va , quando carico dice che il formato non è valido.

:ciauz:

--LO--
09-09-2003, 14:17
es:

io creo un nuovo Record così:

..new Record(int numero,Date data, Date ora, String luogo, String oggetto, String note)

Zero-2, le funzioni son completate tutte, i file aggiornati ve li metto stasera se riesco. E' tutto sistemato tranne la ricerca per intervalli temporali e la visualizzazione per settimana, mese e anno:D
Ti da così perchè non avevo ancora sistemato per la serializzazione col serialUID:D ma ora l'ho messo e apre anche i file creati precedentemente:

Per la ricerca in intervalli ho usato il seguente codice:
(Save_Data è la classe che mi permette di salvare gli appuntamenti su file, gli passo l'array di record , la cartella e il file dove salvare)
Quando cerco ho già un'agenda aperta quindi ho già un list_rec che contiene appuntamenti.
Ho due campi di testo, text_dal e text_al dove inserisco le date e premendo sul bottone ok dovrebbe cercare gli appuntamenti che hanno quella data.)



if(e.getSource() == ok)

{
Record[] temp = new Record [list_rec.length];
for (int i=0; i< list_Rec.length_; i++)
for (int j=0; j<list_rec.length; j++)
{
String dal = text_dal.getText();
String al = text_al.getText();
try {
SimpleDateFormat dal2 = new SimpleDateFormat("dd/mm/yyyy");
Date dal3 = dal2.parse(dal);

SimpleDateFormat al2 = new SimpleDateFormat("dd/mm/yyyy");
Date al3 = al2.parse(al);

SimpleDateFormat dat = new SimpleDateFormat("dd/mm/yyyy");
Date dat2 = dat.parse(list_rec[i].getData());

if ((dat2.after(dal3) == true) && (dat2.before(al3) == true))
temp[j]= list_rec[i];
Save_Data.save (temp,directory,"temp");
[...]
e poi il codice per l'apertura
} catch(ParseException pp)
{}
}
}

ma non mi da segni di vita!

--LO--
10-09-2003, 16:03
Ok, basta, mi arrendo!!!
Aiutatemi vi prego! Io come già sapete devo poter effettuare una ricerca in un array di Record (dove un record ha diversi campi) in base a dei valori inseriti in due campi
Ho provato a prelevarmi le stringhe da questi due campi e trasformarmele in GregorianCalendar per utilizzare i metodi after() e before(). Ho allora convertito la data dei record allo stesso modo dei campi in Gregorian calendar.
Ora il problema: io voglio salvarmi su file gli appuntamenti che corrispondono a quell'intervallo...MA NON CI RIESCO! Dove è che sbaglio? Il codice è questo!

---------------------------------------------------------------------
// Se l'utente clicca su ok nel campo di ricerca per intervalli di tempo.
if (e.getSource() == ok)
{
String dal = text_dal.getText();
String al = text_al.getText();
try {
SimpleDateFormat formatdal = new SimpleDateFormat("dd/MM/yyyy");
Date datadal = formatdal.parse(dal);
GregorianCalendar caldal = new GregorianCalendar();
caldal.setTime(datadal);

SimpleDateFormat formatal = new SimpleDateFormat("dd/MM/yyyy");
Date dataal = formatal.parse(al);
GregorianCalendar calal = new GregorianCalendar();
calal.setTime(dataal);

for (int j=0; j <list_rec.length;j++)
{
campo.setText("");
campo.append("Entro nel ciclo di for");


Record[] temp = new Record[list_rec.length];

campo.append("Creo l'array temP");

String date = list_rec[j].getData();

campo.append("nella stringa Date metto il valore della data dell'elemento jesimo di list_Rec");


SimpleDateFormat date2 = new SimpleDateFormat("dd/MM/yyyy");
Date date3 = formatdal.parse(date);
GregorianCalendar datecal = new GregorianCalendar();
datecal.setTime(date3);

if ( (datecal.after(caldal)) && (datecal.before(calal)))

temp[0]=list_rec[j];

campo.append("Chiedo di salvare in html");

file_dialog_close = new FileDialog(this, "Export", FileDialog.SAVE);
file_dialog_close.setVisible(true);
filee = file_dialog_close.getFile();
directory = file_dialog_close.getDirectory();
Export_HTML.Export_HTML(temp, directory, filee);

}
}catch(ParseException pp) {

}
}
---------------------------------------------------------------

Loading