Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Realizzato da Lenovo e installato presso il Cineca di Casalecchio di Reno, Pitagora offre circa 44 PFlop/s di potenza di calcolo ed è dedicato alla simulazione della fisica del plasma e allo studio dei materiali avanzati per la fusione, integrandosi nell’ecosistema del Tecnopolo di Bologna come infrastruttura strategica finanziata da EUROfusion e gestita in collaborazione con ENEA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Rullo di lavaggio dei pavimenti abbinato a un potente motore da 28.000 Pa e a bracci esterni che si estendono: queste, e molte altre, le caratteristiche tecniche di Z60 Ultra Roller Complete, l'ultimo robot di Mova che pulisce secondo le nostre preferenze oppure lasciando far tutto alla ricca logica di intelligenza artificiale integrata
Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-07-2009, 12:05   #21
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da ally Guarda i messaggi
...si è una soluzione...io sinceramente scorrerei ogni linea del file di testo e se rispetta le clausole di appartenenza ("administrator") la scriverei direttamente sul file di destinazione senza passare per una lista...anche se questo sistema puo' creare piu' problemi nella gestione di eccezioni...

...ciao Andrea...
Sì, sono d'accordo.
Io preferisco spezzare l'operazione e avere la copia dei dati sottomano tra le due operazioni; poi uno valuta che approccio usare anche a seconda della situazione.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 12:06   #22
Xizor
Member
 
L'Avatar di Xizor
 
Iscritto dal: Dec 2006
Messaggi: 185
Codice:
import java.io.*;
import java.lang.*;
import java.util.*;

class Log {
public static void main (String args[]) {

int i=0;														//indice dell'array di stringhe																
String s=null;			
List inputFile = new ArrayList();
						
try {
FileReader f = new FileReader("protezione2.txt");				//apro il file di input in lettura
BufferedReader fIN = new BufferedReader(f);

String line = fIN.readLine();

while(line != null) {
    inputFile.add(line);
    line = fIN.readLine();
}

Iterator iterator = inputFile.iterator();
while (iterator.hasNext()){
    String line = iterator.next();
    if (line.indexOf("administrator") != -1)
        iterator.remove();
}

}
catch(IOException e) {							
System.out.println("Si e' verificata un'eccezione "+e.getMessage());
}

}}

Ultima modifica di Xizor : 07-07-2009 alle 12:14.
Xizor è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 12:07   #23
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Sì, sono d'accordo.
Io preferisco spezzare l'operazione e avere la copia dei dati sottomano tra le due operazioni; poi uno valuta che approccio usare anche a seconda della situazione.
...assolutamente...spezzare la cosa in metodi diversi sarebbe cosa gradita...dipende appunto dalle situazioni e dalla complessità...

...ciao Andrea...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 12:20   #24
Xizor
Member
 
L'Avatar di Xizor
 
Iscritto dal: Dec 2006
Messaggi: 185
Codice:
import java.io.*;
import java.lang.*;
import java.util.*;

class Log {
public static void main (String args[]) {

int i=0;																												
String s=null;			
List inputFile = new ArrayList();
						
try {
FileReader f = new FileReader("protezione2.txt");				
BufferedReader fIN = new BufferedReader(f);

String line = fIN.readLine();

while(line != null) {
    inputFile.add(line);
    line = fIN.readLine();
}

Iterator iterator = inputFile.iterator();
while (iterator.hasNext()){
		line = (String) iterator.next();
    if (line.indexOf("administrator") != -1)
        iterator.remove();
}

}
catch(IOException e) {							
System.out.println("Si e' verificata un'eccezione "+e.getMessage());
}

}}
Ecco, va bene così?
Xizor è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 12:24   #25
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
...se funziona si...

...ciao Andrea...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 12:35   #26
Xizor
Member
 
L'Avatar di Xizor
 
Iscritto dal: Dec 2006
Messaggi: 185
Si, non ci sono errori in compilazione.
Il problema è che non so da dove ricavare l'output, le linee dove sono salvate?
Xizor è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 12:38   #27
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
Quote:
Originariamente inviato da Xizor Guarda i messaggi
Si, non ci sono errori in compilazione.
Il problema è che non so da dove ricavare l'output, le linee dove sono salvate?
...le linee corrette dovrebbero essere all'interno dell'arrayList...sempre che la condizione usata per eliminare le stringhe errate non usi una logica sbagliata...e sempre che le linee eliminate siano state tolte dalla lista e non dall'iteratore usato per scorrerle...

...la cosa piu' semplice da fare è quella di scorrere l'array ottenuto e stampare a video ogni singola stringa contenuta...

...ciao Andrea...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 12:43   #28
Xizor
Member
 
L'Avatar di Xizor
 
Iscritto dal: Dec 2006
Messaggi: 185
Quote:
Originariamente inviato da ally Guarda i messaggi
...le linee corrette dovrebbero essere all'interno dell'arrayList...sempre che la condizione usata per eliminare le stringhe errate non usi una logica sbagliata...e sempre che le linee eliminate siano state tolte dalla lista e non dall'iteratore usato per scorrerle...

...la cosa piu' semplice da fare è quella di scorrere l'array ottenuto e stampare a video ogni singola stringa contenuta...

...ciao Andrea...
Codice:
String line = fIN.readLine();

while(line != null) {
    inputFile.add(line);
    line = fIN.readLine();
}

Iterator iterator = inputFile.iterator();
while (iterator.hasNext()){
		line = (String) iterator.next();
    if (line.indexOf("administrator") != -1)
        iterator.remove();
}
Facendo iterator.remove() mi sa che le cancello dall'iteratore ma non sono sicuro...Come posso scorrere ArrayList dato che non è un array dotato di indici?
Xizor è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 12:47   #29
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
...basta un ciclo for...

Codice:
for(int i=0;i<inputFile.size();i++)
                System.out.println(inputFile.get(i));
...ciao Andrea...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 12:52   #30
Xizor
Member
 
L'Avatar di Xizor
 
Iscritto dal: Dec 2006
Messaggi: 185
In output escono tutte le righe
Xizor è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 12:54   #31
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
...le linee corrette dovrebbero essere all'interno dell'arrayList...sempre che la condizione usata per eliminare le stringhe errate non usi una logica sbagliata...e sempre che le linee eliminate siano state tolte dalla lista e non dall'iteratore usato per scorrerle...

...ciao Andrea...
ally è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 13:05   #32
Xizor
Member
 
L'Avatar di Xizor
 
Iscritto dal: Dec 2006
Messaggi: 185
QUOTE=ally;28128253]...le linee corrette dovrebbero essere all'interno dell'arrayList...sempre che la condizione usata per eliminare le stringhe errate non usi una logica sbagliata...e sempre che le linee eliminate siano state tolte dalla lista e non dall'iteratore usato per scorrerle...

...ciao Andrea...[/quote]

Codice:
import java.io.*;
import java.lang.*;
import java.util.*;

class Log {
public static void main (String args[]) {
																											
String s=null;			
List inputFile = new ArrayList();
						
try {
FileReader f = new FileReader("protezione.txt");				
BufferedReader fIN = new BufferedReader(f);

String line = fIN.readLine();

while(line != null) {
    inputFile.add(line);
    line = fIN.readLine();
}

Iterator iterator = inputFile.iterator();
while (iterator.hasNext()){
		line = (String) iterator.next();
    if (line.indexOf("administrator") != -1)
        iterator.remove();								//inputFile.remove(line)
}

for(int i=0;i<inputFile.size();i++)
System.out.println(inputFile.get(i));

}
catch(IOException e) {							
System.out.println("Si e' verificata un'eccezione "+e.getMessage());
}

}}

inputFile.remove(line) dovrebbe cancellarle dalla lista e non dall'iteratore giusto?
Xizor è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 13:18   #33
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Xizor Guarda i messaggi
inputFile.remove(line) dovrebbe cancellarle dalla lista e non dall'iteratore giusto?
Non ha nessun senso fare una distinzione concettuale tra "le righe dell'iteratore" e "le righe della lista" poichè l'iteratore è restituito dalla lista e opera sulla lista stessa.

Il metodo remove dell'iteratore rimuove dalla collezione sottostante (cioè quella che ha fornito l'iteratore stesso) l'ultimo elemento che è stato restituito dal metodo next dell'iteratore.

Se hai dubbi su qualche metodo consulta i javadoc

Il problema è un'altro: tu nel tuo codice fai tutto tranne che alla fine scrivere la lista filtrata sul file di output...
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)

Ultima modifica di banryu79 : 07-07-2009 alle 13:24.
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 13:23   #34
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Se comunque alla fine ti stampa tutte le righe vuol dire che c'è un problema con il controllo della condizione per la rimozione.

questa dovrebbe essere giusta:
Codice:
Iterator iterator = inputFile.iterator();
while (iterator.hasNext())
{
    line = (String) iterator.next();
    if (line.indexOf("Administrator") == -1)
        iterator.remove();							
}
Rimuovo la riga solo SE NON trovo la stringa "Administrator".
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 13:54   #35
Xizor
Member
 
L'Avatar di Xizor
 
Iscritto dal: Dec 2006
Messaggi: 185
Codice:
import java.io.*;
import java.lang.*;
import java.util.*;

class Log {
public static void main (String args[]) {
																											
String s=null;			
List inputFile = new ArrayList();
						
try {
FileReader f = new FileReader("protezione.txt");				
BufferedReader fIN = new BufferedReader(f);

String line = fIN.readLine();

while(line != null) {
    inputFile.add(line);
    line = fIN.readLine();
}

Iterator iterator = inputFile.iterator();
while (iterator.hasNext())
{
    line = (String) iterator.next();
    if (line.indexOf("Administrator") == -1)
        iterator.remove();							
}

for(int i=0;i<inputFile.size();i++)
System.out.println(inputFile.get(i));

}
catch(IOException e) {							
System.out.println("Si e' verificata un'eccezione "+e.getMessage());
}

}}

In esecuzione dice :

Exception in thread "main" java.lang OutOfMemoryError: Java heap space

cos'è?
Xizor è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 14:11   #36
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Xizor Guarda i messaggi
In esecuzione dice :

Exception in thread "main" java.lang OutOfMemoryError: Java heap space

cos'è?
E' un messaggio di errore della JVM; significa che la memoria allocata dal SO alla JVM è terminata (!).

Non so come mai: ma il file protezione.txt quanto grande è?

Comunque ho provato il codice che hai costruito fino a qui e postato con un file di input così fatto:
Quote:
Operazioni riuscite,06/07/2009,12.07.30,Security,Accesso/fine sess. ,540,Administrator,SERVER
Operazioni riuscite,06/07/2009,12.07.30,Security,Accesso/fine sess. ,576,Administrator,SERVER
Operazioni riuscite,06/07/2009,12.07.30,Security,Accesso/fine sess. ,540,Administrator,SERVER
Operazioni riuscite,06/07/2009,12.07.30,Security,Accesso/fine sess. ,576,Administrator,SERVER
Operazioni riuscite,06/07/2009,12.07.29,Security,Accesso/fine sess. ,538,MAGA02$,SERVER
Operazioni riuscite,06/07/2009,12.07.28,Security,Accesso/fine sess. ,540,FAR15$,SERVER
Operazioni riuscite,06/07/2009,12.07.28,Security,Accesso/fine sess. ,540,Administrator,SERVER
Operazioni riuscite,06/07/2009,12.07.28,Security,Accesso/fine sess. ,576,Administrator,SERVER
Operazioni riuscite,06/07/2009,12.07.24,Security,Accesso/fine sess. ,540,MAGA02$,SERVER
Operazioni riuscite,06/07/2009,12.07.20,Security,Accesso/fine sess. ,538,cbibiani,SERVER
e ottengo (correttamente) questo output:
Quote:
Operazioni riuscite,06/07/2009,12.07.30,Security,Accesso/fine sess. ,540,Administrator,SERVER
Operazioni riuscite,06/07/2009,12.07.30,Security,Accesso/fine sess. ,576,Administrator,SERVER
Operazioni riuscite,06/07/2009,12.07.30,Security,Accesso/fine sess. ,540,Administrator,SERVER
Operazioni riuscite,06/07/2009,12.07.30,Security,Accesso/fine sess. ,576,Administrator,SERVER
Operazioni riuscite,06/07/2009,12.07.28,Security,Accesso/fine sess. ,540,Administrator,SERVER
Operazioni riuscite,06/07/2009,12.07.28,Security,Accesso/fine sess. ,576,Administrator,SERVER
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 14:22   #37
Xizor
Member
 
L'Avatar di Xizor
 
Iscritto dal: Dec 2006
Messaggi: 185
Grazie 1000

Allora quelle righe sono soltanto una piccolissima parte del file "protezione.txt" , le ho prese come esempio.
Compilando il codice per queste poche righe in effetti funziona correttamente come testato da te.

Quando ho provato ad eseguirlo sul file intero mi ha dato che messaggio di errore. Il file protezione intero è grande 32 MB

Se esiste un metodo per evitare quel problema bene, altrimenti bene lo stesso perchè l'algoritrmo funziona. Sapevo che Java aveva una quantità impressionante di classi e metodi, infatti questi non li conoscevo. Grazie infinite lo stesso
Xizor è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 14:30   #38
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da Xizor Guarda i messaggi
Se esiste un metodo per evitare quel problema bene, altrimenti bene lo stesso perchè l'algoritrmo funziona.
Certo che esiste: basta istruire la JVM passandole un parametro apposito che ne fissa esplicitamente la memoria massima che può richiedere al sistema operativo.
Io con ste cose non ci azzecco: non mi ricordo mai di default quant'è: a te basterebbe specificare l'ordine di grandezza successivo (es: se è 32M ne chiedi 64M, se è 64M ne chiedi 128M e così via).

Quote:
Originariamente inviato da Xizor Guarda i messaggi
Sapevo che Java aveva una quantità impressionante di classi e metodi, infatti questi non li conoscevo. Grazie infinite lo stesso
Beh, oserei dire che usare Java per programmare senza avvalersi del JDK ha poco senso...

Trovi tutto online (con la possibilità di scaricarti in locale la documentazione che ti interessa); due sono le risorse più utili, secondo me:
1) i javadoc del JDK
2) Quella cosa chiamata "The Really Big Index" (compendio di tutorial della Sun su quasi tutto quello che vorresti sapere del linguaggio Java e del JDK).
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2009, 14:31   #39
ally
Bannato
 
L'Avatar di ally
 
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Non ha nessun senso fare una distinzione concettuale tra "le righe dell'iteratore" e "le righe della lista" poichè l'iteratore è restituito dalla lista e opera sulla lista stessa.

Il metodo remove dell'iteratore rimuove dalla collezione sottostante (cioè quella che ha fornito l'iteratore stesso) l'ultimo elemento che è stato restituito dal metodo next dell'iteratore.

Se hai dubbi su qualche metodo consulta i javadoc

Il problema è un'altro: tu nel tuo codice fai tutto tranne che alla fine scrivere la lista filtrata sul file di output...
...mio grosso errore...grazie per il chiarimento...

...ciao Andrea...
ally è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare Cineca inaugura Pitagora, il supercomputer Lenov...
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA Mova Z60 Ultra Roller Complete: pulisce bene gra...
Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Tesla aggiorna il camion Semi, e sposta ...
Come funziona la carta Klarna: tre livel...
I Funko Pop potrebbero sparire per sempr...
Windows 98 in crash davanti a migliaia d...
Samsung Smart TV 85'' Neo QLED Mini LED ...
TikTok rafforza la sicurezza degli acqui...
Samsung Galaxy S25 Ultra 256 GB a ...
Sanzione ridotta per TIM: l'azienda paga...
DJI Osmo 360 in super offerta su Amazon:...
Moto Watch Fit con Moto AI a metà prezzo...
Batterie ibride plug-in: la classifica d...
Ayaneo Next 2 è ufficiale: presta...
Windows 11 26H1 è ufficiale, ma &...
Archive.is nel mirino: l'FBI vuole saper...
CMF by Nothing Buds 2a: le cuffie ANC co...
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: 12:49.


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