Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Spiegazioni riguardo programmino java

    Ciaoa tutti vi allego due file uno contenente il testo del problema e l'altro contenente la soluzione del problema voi guardatelo per favore e poi cercate di rispondere a queste domande per darmi dei piccoli chiarimenti.

    1)Da dove saltano fuori le variabili fname count e riga dichiarate nel metodo writeScreen
    e le variabili precRiga corrRiga e prissRiga del metodo writeRecords? Non sono mai state diachiarate prima e non sono state assegnate ne prima ne dopo a niente;

    2)Nella classe trova.java cioè l'eseguibile a cosa serve precisamente quel metoso usage()?
    E POI l'array args che passano come argomento all'oggetto indi a quale array corrisponde nella classe Individua? nemmeno lui è stato assegnato precedentemente

    Oh mamma mia per favore ragazzi spiegatemi queste cose non riesco proprio a capire.

    Ciao e Grazie anticipatamente

    Il problema consiste nel creare un'applicazione che cerca una stringa fornita in input all'interno di alcuni file anch'essi forniti in input.
    Il numero dei nomi di file non è noto a priori
    lunghezza file non nota apriori


    Ogni volta che il progr individua una occorrenza della string deve
    -visualizzare la riga del file che la contiene nella finestra di output video con ò'indicazione del nome file e la riga di esso in cui si trova la stringa
    -scrivere la riga sul file testo risultati.txt che non esste prima dell'es. del progr insime con la riga precedente e la successiva.


    2 classi individua e trova(che contiene il main)




    Problema:
    // non fate caso a qualche errore lo sto ricopiano tanto per ma il problema è scritto bene senza errori in un foglio

    import java.util.Scanner;
    import.java.io.*

    public class Individua

    private String stringa; //stringa da cercare
    private String[] nomiFile; // nomi file da analizzare
    private int numFile; // numero di file da analizzare
    private Scanner in;
    private FileReader r;


    public Individua(String[] st)
    {
    sringa=st[0];
    numFile=st.length -1;
    nomiFile=st; nomiFile[0] nontiene la stringa da cerc, i nomi file vanno da nomiFile[1] in poi
    }

    public void esegui() throws IOException
    {
    int countRighe; //contatore righe file
    int pos; // posizione di inizio della stringa nela riga file
    String currentRiga;
    String previousRiga;
    String nextRiga;

    FileWriter outFile = new FileWriter("Risultati.txt");
    PrintWriter buf = new PrintWriter(outFile);

    for(int i=1; <= numFile; i++)
    {
    openFle(nomiFile[i]);
    countRighe=0;
    pos= -1;

    previousRiga="";
    currentRiga="";
    nextRiga=in.nextLine();

    while (in.hasNext())
    {
    countRighe++;
    previousRiga=currentRiga;
    currentRiga=nextRiga;
    nextRiga=in.nextLine();
    pos=currentRiga.indexof(stringa);

    if(pos>=0)
    {
    writeScreen(nomiFile[i], countRighe, currentRiga);
    writeRecords(buf, previousRiga, currentRiga, nextRiga);

    }
    if(countRighe==0)
    {
    pos=nextRiga.indexof(stringa);
    if(pos>=0)
    {
    writeScreen(nomiFile[i], 1, nextRiga);
    writeRecords(buf,"",nextRiga,"");
    }
    }closeFile(r);
    }
    outFile.close();

    }



    public void openFile(String fname) throws IOException
    {
    r=new FileReader (fname);
    in= new Scanner (r);
    }
    public void closeFile(FileReader r) throws IOException
    {
    r.close();
    }

    public void writeScreen(String fname, int count, String riga)
    {
    System.out.printf("%s : %d : %s\n", fname, count,riga)
    }

    public void writeRecords (PrintWriter out, String precRiga, String corrRiga, String prossRiga) throws IOEXceprtion
    {

    out.printf("Riga precedente: %s\n" precRiga);
    //lo stesso per riga corrente e successiva
    }

    }







    Classe Trova.java

    import java.io.*;
    public class Trova[
    public static void main( String[] args);

    {
    if(args.length<2) usage();

    Individua indi = new Individua(args);

    indi.esegui();

    }
    public static void usage()
    {System.out.println("Us del programma: java Trva stringa nome1 nome2 ....");
    System.exit(1);
    }}
    }

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Non è il modo di utilizzare il forum questo: non è un corso on-line di Java.

    Inoltre ci sono delle regole per il posting del codice, ben scritte nel Regolamento.

    Ad ogni modo, la risposta alla prima domanda la trovi su qualunque mini-guida per inesperti di Java: dici che non sono mai state dichiarate... mai sentito parlare dei "parametri" di un metodo? Notato che sono scritti là?

    Il metodo usage() serve a stampare all'utente i comandi che sono necessari all'esecuzione.

    Ripeto: apri un libro di Java, prima di postare qui... questa è un'area tecnica in cui si discute di problemi di programmazione, non un corso di Java on-line.


    Devo chiudere.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.