Newsgroup: it.comp.java
Titolo: Parsing di due file

Ciao a tutti,
mi sono messo sempre a studiare java ma mai ho avuto l'occasione di
realizzare qualcosa.... con una vera meta diciamo.. a parte gli esercizi e
tutorial.
Ora è l'occasione giusta visto che un amico mi ha chiesto il favore di
aiutarlo in un programmino..
Ma volevo un'aiutino da voi su come procedere.
Allora cerco di essere breve:
Ho un file di testo iniziale di questa forma:
227;3009125
235;2209320
230;2209450
233;2209206
229;2209200
222;2209120
questo vuol dire che
l'utente 227 il giorno 30/09 ha avuto 125 punti
l'utente 235 il giorno 22/09 ha avuto 320 punti
e fin quì ho visto che con filechosser mi vado a prendere il mio file e mi
faccio un parsing.(me lo devo studiare meglio.. ma diciamo che si fà...)
Quindi almeno fin quì c'è lho chiaro(... ospero...)
Il problema però arriva ora
dove il tizio che userà il programmino potrà inserire un file excel con
due colonne
227 Pippo Baudo
235 Paperino Paperino
230 Topo Giggio
per poi avere alla fine un risultato sempre su excel del tipo
Pippo Baudo totale punti 1235
Paperino Paperino totale punti 850
etc...
a questo punto secondo voi, come dovrei procedere?
è il caso di usare un db con una tabella in cui vado scrivere questi dati
giusto per fare l'associazione?
o visto che non mi serve cmq uno storico... fare il parsing del file txt e
del file excel per poi buttarlo sull'excel finale?
come impostare la maschera iniziale.. del tipo faccio scegliere i due file
(txt ed excel) e poi tasto elabora..
insomma chiedevo un consiglio su come impostare il programma in
generale....
spero di non aver chiesto troppo :)
buona serata
Giuse
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Guarda, anch'io sono un quasi neofita di java ma provo ad aiutarti lo 
stesso.
Il problema, a parer mio, é questo: queste specifiche (file txt e file 
excel) sono tali poiché derivano da un esercizio, magari dell'università?
Se non é così, allora non vedo proprio la necessità  di inserire i punti in 
un file di testo nel formato "xxx;ddddyyy" da te scritto, mi pare una cosa 
piuttosto inutile; così come mi pare assurdo tenere un file di tipo excel 
come file di archivio.
Ma, cosa più importante, i 2 file non possono prescindere l'uno dall'altro!
Cioé se nel giorno 30/09 l'utente 227 (Pippo Baudo) ha fatto 125 punti, vuol 
dire ke Pippo Baudo ha fatto 125 punti in tal giorno, lui e nessun altro! 
Quindi é scontato che all'id 227 corrisponde Pippo Baudo, non avrebbe alcun 
senso logico inserire di volta in volta un file excel con accoppiamenti di 
nomi diversi!
X tali motivi io userei come archivio un bel db, ad esempio con Access una 
tabella con Id, Data, Punti ed un'altra con l'accoppiamento Id e Nome.
In tal caso ti basterebbe risalire dal Nome, attraverso l'Id, a tutte le 
partite riguardanti un personaggio e sommare di volta in volta i punti; 
magari tale cosa la puoi salvare con 2 semplici array o vector, uno x i nomi 
ed uno x i punti totali (il nome alla posizione i dell'array dei nomi 
corrisponde al punteggio alla posizione i dell'array dei punteggi).
Infine, "scarichi" tutto in un file excel (o uno di default o dai la 
possibilità all'utente di sceglierlo) con le libreria jxl, e il gioco é 
fatto.
Se invece si tratta di un esercizio dell'università non é difficile fare il 
parsing dei 2 file (x il file di testo basta leggere le righe e utilizzare 
sottostringhe x estrapolare informazioni dal formato utilizzato 
"xxx;ddddyyy", x il file excel basta prendere le celle corrispondenti), ma 
resta il fatto che é comunque insensato associare file excel diversi allo 
stesso file di testo!
Certo, é molto sconveniente il tutto, ma fare si fa, ad esempio in modo 
simile a prima (con i 2 array), ma é molto più sconveniente!
X rispondere alla tua domanda, scrivere i dati appositamente in un db x 
poterci lavorare "meglio" é un inutile spreco di risorse.
Infine un'osservazione: se non ti serve uno storico, a cosa serve di volta 
in volta memorizzare la data?
Spero d'esserti stato d'aiuto!
"Giuseppe1" <girub@excite_NOALLOSPAM_.it> ha scritto nel messaggio 
news:eh36jr$8je$1...@news.newsland.it...


Ciao Andrea,
mi sei stato davvero da'aiuto, nel chiarirmi un pò le idee..
capisco le tue domande  su quello che può sembrare strano... a prima vista.
In realta per farla semplice ho parlato di punti ma si tratterebbe di 
un file di testo che già esiste che è generato da un'altro software,
quindi è quello è basta :) e di un file excel con dentro i nomi e
cognomi...
diciamo che ho a disposizione questi due file....
Per dirla tutta e per essere chiaro, non si tratta proprio di punti ma di
gestione orario di alcuni utenti (ho parlato di punti per farla credevo
più semplice.. forse si è verificato il contrario...)
quindi..
Un file di testo  che importo del tipo;
224 221020060912
225 221020061015
225 221020061215
239 221020061223
questo file di testo il risulato di una gionata tipo work shop
dove l'utente 224 entra il 22/10/2206 alle 09;12 
dove l'utente 225 entra il 22/10/2206 alle 10;15 
dove l'utente 225 esce  il 22/10/2206 alle 12;15 
dove l'utente 239 entra il 22/10/2206 alle 12;23 
Il secondo file importato quello excel a questo punto mi servirebbe solo
per associare id al nome.
fiel excel:
224 rossi mario
225 pinco pallino
e il file generato excel non è altro che la combinazione dei due dove c'è
il resoconto degli orari per ogni utente, del tipo:
rossi mario    totale ore 2,30
pinco pallino  totale ore 2,30
siccome le giornate sono al massimo due come è giustificata la tua domanda
potrei gestire tutto senza db, visto che non devo memorizzare nulla ma
solo associare...
A questo punto, visto che ho chiarito un pò di più la storia..
come la vedi una maschera che mi fa selezionare il file di testo iniziale
ed il file excel iniziale e poi con un tasto elabora generare l'excel
finale...?
potrebbe andare bene? o avrei a che fare con troppi array... :) ? 
considerà che come ti ho detto non sono un genio di java e quindi una
soluzione più semplice è senz'altro ben accetta.
grazie ancora
Buona serata
Andrea Tarducci ha scritto:








 potrebbe andare bene? o avrei a che fare con troppi array... :) ?
La line guida é questa.
Carico il file Excel dalla dir di default e "salvo" le associazioni.
Carico il file di testo e con opportuni metodi e parsing mi ricavo le ore x 
ogni utente.
Scrivo il file Excel di uscita mettendo, x ogni utente, il nome (a cui 
risalgo dalle associazioni iniziali) e le sue ore; é importante quindi 
creare una struttura ke permetta, x ogni utente, di risalire univocamente ad 
ore e nome (io creerei un oggetto Utente).
Come fare ciò va bene in ogni caso, secondo me (si, dai, si può parlare di 
elegantezza di metodi o di minor spreco di risorse ma in tal caso non saprei 
darti una mano), basta ke funzioni.
L'importante é ke prima di metterti a lavorare devi avere chiaro in testa 
cosa vuoi ke l'applicazione faccia e cosa é sensato che l'applicazione 
faccia, e come fare a risalire, di volta in volta, alle informazioni.
Chiarisciti i punti sopra!
A quel punto scrivere il codice sarà la parte meno impegnativa!