Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-02-2019, 15:45   #1
Axembled
Senior Member
 
L'Avatar di Axembled
 
Iscritto dal: May 2001
Messaggi: 1003
da email a csv/tsv/xls

Buongiorno a tutti,
sono un neofita in tema di programmazione e avrei bisogno di qualche dritta su come progettare un programmino su java (possibilmente) per trasformare una sorgente mail in un file csv.
il mio file sorgente è una mail con delle righe predefinite; con questo voglio dire che il programmino dovrà prendere da alcune righe determinati dati (che sono le risposte di un questionario) e inserirle in file csv o excel; quindi, ad esempio, dalla riga n. 4 prendi gli ultimi 3 valori e inseriscigli nella riga 1 del file csv.
praticamente dovrei creare un dataset da una mail.
che soluzione potrei adottare per una roba di questo tipo?
grazie in anticipo!
__________________
Ho conluso affari con: Flory, Viktor, A.J, Bimbosta, 8310, Dr. Death, Gekker, Salsero71, Kaksa, BlueKnight.
Axembled è offline   Rispondi citando il messaggio o parte di esso
Old 28-02-2019, 16:37   #2
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
La libreria in dotazione di Java ti permette di leggere un file di testo, riga per riga mediante la BufferedReader. In questo modo potresti leggere il file di ingresso.
Nel caso invece che tu voglia leggere direttamente dalla tua mailbox, potresti usare la libreria gratuita javamail.

Per quanto riguarda l'output: se vuoi scrivere un file csv ti basta la libreria standard di Java (la class PrintWriter fa per te); nel caso voglia invece scrivere direttamente un file Excel, puoi utilizzare la libreria gratuita Apache POI (che fa anche mille altre cose)
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 28-02-2019, 20:05   #3
Axembled
Senior Member
 
L'Avatar di Axembled
 
Iscritto dal: May 2001
Messaggi: 1003
grazie mille sottovento!!!! comincio a recuperare info su quanto da te consigliato...
__________________
Ho conluso affari con: Flory, Viktor, A.J, Bimbosta, 8310, Dr. Death, Gekker, Salsero71, Kaksa, BlueKnight.
Axembled è offline   Rispondi citando il messaggio o parte di esso
Old 28-02-2019, 21:09   #4
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Se posso permettermi, vorrei darti un consiglio: comincia a risolvere il problema piu' semplice, vale a dire leggere un file di testo (la mail) e scrivere un file di testo (in formato csv).
Una volta che hai fatto questo, potresti pensare di leggere direttamente la email tramite javamail, quindi puoi evitare di creare il file di ingresso ed automatizzare questo processo.

Infine, se hai tempo a disposizione (e voglia) potresti usare anche apache poi per generare il file Excel invece del formato csv. Attenzione, apache poi non e' semplicissima; tuttavia ci sono parecchi esempi sul sito e su stackoverflow, e scommetto che uno di questi fa al caso tuo
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 28-02-2019, 21:15   #5
Axembled
Senior Member
 
L'Avatar di Axembled
 
Iscritto dal: May 2001
Messaggi: 1003
si stavo cominciando così, ma essendo la prima volta che metto mani in java devo andare a micropassi nel caso ti posso contattare via mp o qua sopra per qualche dritta ulteriore? ne so davvero zero di java
__________________
Ho conluso affari con: Flory, Viktor, A.J, Bimbosta, 8310, Dr. Death, Gekker, Salsero71, Kaksa, BlueKnight.
Axembled è offline   Rispondi citando il messaggio o parte di esso
Old 28-02-2019, 21:53   #6
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Non ho tanto tempo ma non credo ne serva molto. Faro' del mio meglio
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 28-02-2019, 21:59   #7
Axembled
Senior Member
 
L'Avatar di Axembled
 
Iscritto dal: May 2001
Messaggi: 1003
pensi che in 20 giorni riuscirò a tirar via qualcosa?
__________________
Ho conluso affari con: Flory, Viktor, A.J, Bimbosta, 8310, Dr. Death, Gekker, Salsero71, Kaksa, BlueKnight.
Axembled è offline   Rispondi citando il messaggio o parte di esso
Old 28-02-2019, 22:04   #8
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Certo, anche meno. Dai che ce la fai!
Poi ti posso aiutare in privato e qui c'e' anche altra gente che passa ed esamina il tuo codice.
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 28-02-2019, 22:08   #9
Axembled
Senior Member
 
L'Avatar di Axembled
 
Iscritto dal: May 2001
Messaggi: 1003
speriamo bene... ti faccio sapere se ho grosse difficoltà
__________________
Ho conluso affari con: Flory, Viktor, A.J, Bimbosta, 8310, Dr. Death, Gekker, Salsero71, Kaksa, BlueKnight.
Axembled è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2019, 12:25   #10
Axembled
Senior Member
 
L'Avatar di Axembled
 
Iscritto dal: May 2001
Messaggi: 1003
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Certo, anche meno. Dai che ce la fai!
Poi ti posso aiutare in privato e qui c'e' anche altra gente che passa ed esamina il tuo codice.
ciao sottovento,
in effetti avevi ragione, ho quasi completato il codice e funziona... ora ciò che mi resta e sul quale sto trovando un sacco di difficoltà è la conversione di una stringa in un numero; spiegato in breve:
se variabile1 contiene la parola X allora variabile 2 = 100.
come posso fare? sto trovando davvero poco in giro o forse non sto focalizzando il problema...
__________________
Ho conluso affari con: Flory, Viktor, A.J, Bimbosta, 8310, Dr. Death, Gekker, Salsero71, Kaksa, BlueKnight.
Axembled è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2019, 13:10   #11
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Non sono sicuro di aver capito.
Intendi qualcosa cosi'?
Codice:
if (variable1.contains("X"))
     variable2 = 100;
o cosi'?
Codice:
if (variable1.equals("X"))
     variable2 = 100;
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2019, 15:54   #12
Axembled
Senior Member
 
L'Avatar di Axembled
 
Iscritto dal: May 2001
Messaggi: 1003
grazie mille sottovento! era la prima
ma come posso inserire una if dentro un'altra if?
ho una struttura di questo genere ma mi sballa il risultato ultimo:

if (lines==(scores[i]){

if (lines==70 && sCurrentLine.contains("ParolaX"))

System.out.println("ciaociao_"); }

System.out.println("Risultato originale");}

se commento le due righe centrali il risultato va bene.
se lo lancio così mi sballa il System.out.println finale
__________________
Ho conluso affari con: Flory, Viktor, A.J, Bimbosta, 8310, Dr. Death, Gekker, Salsero71, Kaksa, BlueKnight.
Axembled è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2019, 15:58   #13
Axembled
Senior Member
 
L'Avatar di Axembled
 
Iscritto dal: May 2001
Messaggi: 1003
Risolto sottovento era questione di graffe
__________________
Ho conluso affari con: Flory, Viktor, A.J, Bimbosta, 8310, Dr. Death, Gekker, Salsero71, Kaksa, BlueKnight.

Ultima modifica di Axembled : 11-03-2019 alle 16:12.
Axembled è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2019, 11:30   #14
Axembled
Senior Member
 
L'Avatar di Axembled
 
Iscritto dal: May 2001
Messaggi: 1003
ciao sottovento!
mi servirebbe una dritta per richiamare una classe (emailcheck) da un'altra (Prova2);
ho utilizzato questo codice inserito nel main di Prova2:


Quote:
Runtime rt = Runtime.getRuntime();
Process ps = rt.exec("java Emailcheck args");
OutputStream os = ps.getOutputStream();
InputStream is = ps.getInputStream();
ora però ho un problemone:
se il file della classe chiamante (Prova2) è inserito nella directory della classe chiamata (Emailcheck) quest'ultimo funziona ma non funziona la classe chiamante... Dove sto sbagliando?
so 4 ore che sbatto la testa ma non ne vengo fuori

L'esito delle due classi è quello di creare un file nel loro classpath solo che:
- se lancio Prova2 inserendo il file Prova2.java nella dir di Emailcheck non mi crea il file
- stessa cosa se lancio Emailcheck.java nella dir di Prova2.

Quindi immagino che ci sia un problema di path......
__________________
Ho conluso affari con: Flory, Viktor, A.J, Bimbosta, 8310, Dr. Death, Gekker, Salsero71, Kaksa, BlueKnight.

Ultima modifica di Axembled : 12-03-2019 alle 11:51.
Axembled è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2019, 12:27   #15
Kaya
Senior Member
 
Iscritto dal: Apr 2005
Messaggi: 3302
Hai provato ad aggiungere al progetto come libreria la cartella dell'altro file e poi importarlo con "import com.example.ecc " ?
Kaya è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2019, 13:28   #16
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Ciao
puoi provare a pubblicare il codice qui? In alternativa, se ci sono parti private o con dati sensibili, puoi spedirlo con la messaggeria privata (ma valuta prima di postarlo qui, cosi' puoi ottenere aiuto da piu' persone).

Una domanda: se sicuro di dover utilizzare due programmi separati, entrambi scritti in Java? Non e' che magari i due programmi separati possono diventare uno solo, evitando il problema?
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2019, 15:16   #17
Axembled
Senior Member
 
L'Avatar di Axembled
 
Iscritto dal: May 2001
Messaggi: 1003
Quote:
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;


public class Prova2 {
public static void main(String[] args) throws IOException {
Runtime rt = Runtime.getRuntime();
Process ps = rt.exec("java Emailcheck args");
OutputStream os = ps.getOutputStream();
InputStream is = ps.getInputStream();
System.out.println("Codice mail eseguito; controlla il file eml");

FileWriter writer = new FileWriter("test.csv");

writer.append("ID");
writer.append(',');
writer.append("name");
writer.append(',');
writer.append("ss_x_gruppo");
writer.append('\n');
writer.flush();
writer.close();

}}
x Kaya: la cartella l'ho aggiunta al progetto ma non capisco come fare l'import....... con import Emailcheck.Prova2 ma ritorna errore.

x sottovento: no, in realtà posso inserire tutto in uno, ma il prof mi ha suggerito di inserire il codice su script separati e collegarli tra loro...
__________________
Ho conluso affari con: Flory, Viktor, A.J, Bimbosta, 8310, Dr. Death, Gekker, Salsero71, Kaksa, BlueKnight.
Axembled è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2019, 15:45   #18
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Ciao
alcune cose per cominciare: usa i tag CODE per inserire il codice, cosi' risulta indentato e piu' facile da capire. Inoltre, cerca di catturare le eccezioni, tutte.
In realta' sarebbe un errore catturare TUTTE le eccezioni (comprese quelle generate da errori di programmazione) ma e' un discorso lungo e la filosofia non ci interessa.

Esempio:

Codice:
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;


public class Prova2 {
    public static void main(String[] args) {
        try
        {
            Runtime rt = Runtime.getRuntime();
            Process ps = rt.exec("java Emailcheck args");
            OutputStream os = ps.getOutputStream();
            InputStream is = ps.getInputStream();
            System.out.println("Codice mail eseguito; controlla il file eml");

            FileWriter writer = new FileWriter("test.csv");

            writer.append("ID");
            writer.append(',');
            writer.append("name");
            writer.append(',');
            writer.append("ss_x_gruppo");
            writer.append('\n');
            writer.flush();
            writer.close();
        }
        catch (SecurityException | IOException | IllegalArgumentException e)
        {
            System.out.println("Eccezione: " + e);
            e.printStackTrace(System.out);
        }
        catch (Exception e)
        {   // Questa parte va a catturare anche le eccezioni che NON dovrebbero essere catturate
            // quali il null pointer exception. Ma per ora siamo in analisi degli errori
            System.out.println("Eccezione generale: " + e);
            e.printStackTrace(System.out);
        }

    }
}
Attenzione ad una cosa:
Codice:
            Runtime rt = Runtime.getRuntime();
            Process ps = rt.exec("java Emailcheck args");
Qui vai ad eseguire un programma java il quale deve essere nella directory corrente. E' quello che vuoi fare?
Inoltre come argomenti passi "args". Passi proprio la stringa "args", non degli argomenti. Immagino non sia quello che vuoi fare.

Un'altra cosa importante che devi ricordare e' nel momento che esegui quell'istruzione, hai creato un nuovo processo! Questo significa che i due processi (i.e. il tuo programma Prova 2 e Emailcheck) saranno eseguiti in parallelo: non resterai bloccato li' fino al termine dell'esecuzione di Emailcheck, pertanto se hai bisogno di ottenere dei risultati da Emailcheck, dovrai essere sicuro di aspettare che la sua esecuzione sia completata.

Suggerimento: invece di usare FileWriter per scrivere il file csv, potrebbe essere piu' agevole usare la PrintWriter, per esempio:

Codice:
PrintWriter pw = new PrintWriter("test.csv");
pw.println("a,b,x,v");
Inoltre puoi trarre vantaggio dal try-with-resource introdotto dalla versione 8, cosi' non devi ricordarti di chiudere il file:

Codice:
try (PrintWriter pw = new PrintWriter("test.csv"))
{
    pw.println("Il vincitore e': " + vincitore);
}
// Una volta arrivati qui, il file e' automaticamente chiuso.
Quale ambiente di sviluppo stai usando? Gli ambienti di sviluppo piu' comuni generano automaticamente codice all'interno di un package mentre il tuo non lo e'. Inoltre generano automaticamente un file .jar mentre sembra di capire dalla tua exec() che non e' il tuo caso; stai usando direttamente il compilatore javac ed un editor di testo?
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2019, 18:03   #19
Axembled
Senior Member
 
L'Avatar di Axembled
 
Iscritto dal: May 2001
Messaggi: 1003
riparto dalle basi perché mi rendo conto di avere delle lacune importanti:

- la struttura è quella nell'immagine allegata;

- lancio Prova3.java con questo codice:
Codice:
package pack2;
import java.io.IOException;

public class prova3 {
    public static void main(String[] args) throws IOException {
        System.out.println( "ESITO_PROVA_3" );
    }
}
Risultato A :

run:
ESITO_PROVA_3
BUILD SUCCESSFUL (total time: 0 seconds)

- lancio Prova4.java con questo codice:
Codice:
package pack2;
import java.io.IOException;

public class prova4 {
    public static void main(String[] args) throws IOException {
        System.out.println( "ESITO_PROVA_4" ) ;
    }
}
Risultato:

run:
ESITO_PROVA_3
BUILD SUCCESSFUL (total time: 0 seconds)

Che.Diavolo.Gli.Prende?
Immagini allegate
File Type: png Schermata 2019-03-12 alle 18.52.03.png (12.6 KB, 3 visite)
__________________
Ho conluso affari con: Flory, Viktor, A.J, Bimbosta, 8310, Dr. Death, Gekker, Salsero71, Kaksa, BlueKnight.
Axembled è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2019, 18:09   #20
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
No, quello e' il tuo ambiente di sviluppo che probabilmente ha scritto da qualche parte che la classe di partenza (i.e. la classe dalla quale invocare il main() ) e' prova3.

Immagino che l'ambiente sia Netbeans. Se fai right-click sull'icona della classe prova4 e selezioni "Debug" dovrebbe andare.

Se hai tempo, puoi provare a rispondere alle domande del mio posto precedente?

Non scoraggiarti, mi raccomando! Stai andando bene
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Speciale TV in offerta su Amazon: Hisens...
Non c'è pace per Trezor: 347.000 e-mail ...
È un portatile Dell e li vale tut...
Apple iPhone 17 Pro Max 256GB a 1.195€ (...
GPT-6 Astra è davvero AGI o non s...
LG OLED G6S 48'' a 845€ e G6 55'' a 1368...
Mantax Otax: il malware Android che crip...
Musk incassa un altro maxi contratto IA:...
Le vendite di EV sono esplose in tutto i...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:03.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v