Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza
Motorola edge 70 porta il concetto di smartphone ultrasottile su un terreno più concreto e accessibile: abbina uno spessore sotto i 6 mm a una batteria di capacità relativamente elevata, un display pOLED da 6,7 pollici e un comparto fotografico triplo da 50 MP. Non punta ai record di potenza, ma si configura come alternativa più pragmatica rispetto ai modelli sottili più costosi di Samsung e Apple
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026
Sono molte le novità che ASUS ha scelto di presentare al CES 2026 di Las Vegas, partendo da una gamma di soluzioni NUC con varie opzioni di processore passando sino agli schermi gaming con tecnologia OLED. Il tutto senza dimenticare le periferiche di input della gamma ROG e le soluzioni legate alla connettività domestica
Le novità ASUS per il 2026 nel settore dei PC desktop
Le novità ASUS per il 2026 nel settore dei PC desktop
Molte le novità anticipate da ASUS per il 2026 al CES di Las Vegas: da schede madri per processori AMD Ryzen top di gamma a chassis e ventole, passando per i kit di raffreddamento all in one integrati sino a una nuova scheda video GeForce RTX 5090. In sottofondo il tema dell'intelligenza artificiale con una workstation molto potente per installazioni non in datacenter
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 28-02-2019, 16: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, 17: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, 21: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, 22: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, 22: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, 22: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, 22: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, 23: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, 23: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, 13: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, 14: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, 16: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, 16: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 17:12.
Axembled è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2019, 12: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 12:51.
Axembled è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2019, 13:27   #15
Kaya
Senior Member
 
Iscritto dal: Apr 2005
Messaggi: 3278
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, 14: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, 16: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, 16: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, 19: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, 19: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


Motorola edge 70: lo smartphone ultrasottile che non rinuncia a batteria e concretezza Motorola edge 70: lo smartphone ultrasottile che...
Display, mini PC, periferiche e networking: le novità ASUS al CES 2026 Display, mini PC, periferiche e networking: le n...
Le novità ASUS per il 2026 nel settore dei PC desktop Le novità ASUS per il 2026 nel settore de...
Le novità MSI del 2026 per i videogiocatori Le novità MSI del 2026 per i videogiocato...
I nuovi schermi QD-OLED di quinta generazione di MSI, per i gamers I nuovi schermi QD-OLED di quinta generazione di...
Prosegue lo sviluppo del telescopio spaz...
28 astronauti cinesi hanno condotto un'e...
Dal Padiglione Italia al mercato globale...
POCO M8: display AMOLED luminoso, batter...
ECOVACS, tante novità a Las Vegas...
Caso Galaxy Ring difettoso: Samsung chiu...
Targa e assicurazione per monopattini el...
AI Cloud Protect: la soluzione di Check ...
Nuovo spettacolare video del razzo spazi...
Hisense presenta a CES 2026 il display M...
XPeng P7+ è pronta per l'Europa: ...
IKEA nuove lampade Matter annunciate al ...
Il telescopio Hubble potrebbe andare dis...
Hisense introduce RGB MiniLED evo (a qua...
Deumidificatore De'Longhi in offerta su ...
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: 23:04.


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