|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
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) |
|
|
|
|
|
|
#22 |
|
Member
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. |
|
|
|
|
|
#23 | |
|
Bannato
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
|
Quote:
...ciao Andrea... |
|
|
|
|
|
|
#24 |
|
Member
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());
}
}}
|
|
|
|
|
|
#25 |
|
Bannato
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
|
...se funziona si...
...ciao Andrea... |
|
|
|
|
|
#26 |
|
Member
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? |
|
|
|
|
|
#27 | |
|
Bannato
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
|
Quote:
...la cosa piu' semplice da fare è quella di scorrere l'array ottenuto e stampare a video ogni singola stringa contenuta... ...ciao Andrea... |
|
|
|
|
|
|
#28 | |
|
Member
Iscritto dal: Dec 2006
Messaggi: 185
|
Quote:
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();
}
|
|
|
|
|
|
|
#29 |
|
Bannato
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));
|
|
|
|
|
|
#30 |
|
Member
Iscritto dal: Dec 2006
Messaggi: 185
|
In output escono tutte le righe
|
|
|
|
|
|
#31 |
|
Bannato
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... |
|
|
|
|
|
#32 |
|
Member
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? |
|
|
|
|
|
#33 | |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
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. |
|
|
|
|
|
|
#34 |
|
Senior Member
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();
}
__________________
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) |
|
|
|
|
|
#35 |
|
Member
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'è? |
|
|
|
|
|
#36 | |||
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
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:
Quote:
__________________
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) |
|||
|
|
|
|
|
#37 |
|
Member
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 |
|
|
|
|
|
#38 | ||
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
Quote:
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:
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) |
||
|
|
|
|
|
#39 | |
|
Bannato
Iscritto dal: Jan 2003
Città:
Messaggi: 4421
|
Quote:
...ciao Andrea... |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:49.




















