Ajuda numa pesquisa com arraylist

5 respostas
robson_duarte1
Olá amigos eu tenho o seguinte código.
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;

public class rotina_2 {

	public static void main(String[] args) {
		// faz o caminho até chegar aos arquivos txt.
		File fileCarregar = new File(
				"/opt/workspace/restaurante/rotina_restaurante/COLETA.txt");

		try {
			FileReader readerColeta = new FileReader(fileCarregar);
			BufferedReader inputColeta = new BufferedReader(readerColeta);
			// faz o caminho até chegar aos arquivos txt.

			String linhaColeta;
			String linhaCracha;
			String linhaData;

			ArrayList<String> coleta = new ArrayList<String>();//aki ele fica com a seguinte linha 99043591 codigo do cracha
			while ((linhaColeta = inputColeta.readLine()) != null) {//161110 data que ele passou o ponto
				coleta.add(linhaColeta.substring(18));
				coleta.add(linhaColeta.substring(2,8));
				Collections.sort(coleta);
			}

			// SimpleDateFormat dataFormatada = new
			// SimpleDateFormat("dd/MM/yy");
			// String data = linhaColeta.substring(2,8);

			fileCarregar = new File(
					"/opt/workspace/restaurante/rotina_restaurante/cracha.txt");
			FileReader readerCracha = new FileReader(fileCarregar);
			BufferedReader inputCracha = new BufferedReader(readerCracha);

			ArrayList<String> cracha = new ArrayList<String>();//nesse ele vai retornar 00200682	99043591	IGOR SOUZA SOARES
			while ((linhaCracha = inputCracha.readLine()) != null) {
				cracha.add(linhaCracha);
				Collections.sort(cracha);
			}
			
			fileCarregar = new File(
			"/opt/workspace/restaurante/rotina_restaurante/COLETA.txt");
			FileReader readerData = new FileReader(fileCarregar);
			BufferedReader inputData = new BufferedReader(readerData);

			ArrayList<String> data = new ArrayList<String>();//aki ele vai retornar a data 00200682
			while ((linhaData = inputData.readLine()) != null) {
				data.add(linhaData.substring(2, 8));
				Collections.sort(data);
			}

			int cont = 0;
			// StringBuffer pegaData = new StringBuffer();
			ArrayList<String> resposta = new ArrayList<String>();
			ArrayList<Integer> contador = new ArrayList<Integer>();
			ArrayList<String> pegaData = new ArrayList<String>();
			for (int i = 0; i < cracha.size(); i++) {//aki ele percorre todo o cracha
				cont = 0;
				for (int j = 0; j < coleta.size(); j++) {//aki ele percorre toda a coleta
					if (cracha.get(i).contains(coleta.get(j))) {//nesse if se o numero do cracha tiver armazenado na coleta ele add 1
						cont++;									//exemplo 00200682	99043591	IGOR SOUZA SOARES 5 ele passou 5 vezes
						for (int d = 0; d < data.size(); d++) {//aki esta o problema eu preciso adicionar a data que ele passou
							if (coleta.get(j).contains(data.get(d))) {//mas não está funcionando o que estaria de errado
								pegaData.add(data.get(d));//teria que ficar assim 00200682	99043591	IGOR SOUZA SOARES 5 021210 031210 041210 
							}																						//051210 061210
						}
					}
				}
				resposta.add(cracha.get(i));
				// System.out.println(pegaData);
				// resposta.add(cracha.get(i));
				contador.add(cont);
				pegaData.clear();
			}
			fileCarregar = new File(
					"/opt/workspace/restaurante/rotina_restaurante/resposta.txt");
			FileOutputStream carregarResposta = new FileOutputStream(
					fileCarregar);
			String texto = "";
			for (int k = 0; k < resposta.size(); k++) {
				texto = resposta.get(k) + "\t" + contador.get(k) + "\n";
				carregarResposta.write(texto.getBytes());
				System.out.println(resposta.get(k) + "\t" + contador.get(k));

			}
			inputColeta.close();
		} catch (IOException ioe) {
			System.out.println(ioe);

		}

	}

Alguem poderia me ajudar com esse problema que eu não estou conseguindo resolver?
desde já agradeço.

5 Respostas

robson_duarte1

Alguem no forum

gpd38

E estes arquivos, onde estão ?

coleta.txt
cracha.txt
resposta.txt

Qual o erro ou o que quer saber ?

robson_duarte1

O erro é que quando eu vou pesquisar as datas ele não faz a pesquisa e não me retorna nada.

robson_duarte1

gpd38:
E estes arquivos, onde estão ?

coleta.txt
cracha.txt
resposta.txt

Qual o erro ou o que quer saber ?


Os dois primeiros sao arquivos que ja estao carregados o terceiro
é o que vai gerar a resposta mas a minha duvida é como fazer a
pesquisa pela data?

robson_duarte1
robson__duarte:
Olá amigos eu tenho o seguinte código.
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;

public class rotina_2 {

	public static void main(String[] args) {
		// faz o caminho até chegar aos arquivos txt.
		File fileCarregar = new File(
				"/opt/workspace/restaurante/rotina_restaurante/COLETA.txt");

		try {
			FileReader readerColeta = new FileReader(fileCarregar);
			BufferedReader inputColeta = new BufferedReader(readerColeta);
			// faz o caminho até chegar aos arquivos txt.

			String linhaColeta;
			String linhaCracha;
			String linhaData;

			ArrayList<String> coleta = new ArrayList<String>();//aki ele fica com a seguinte linha 99043591 codigo do cracha
			while ((linhaColeta = inputColeta.readLine()) != null) {//161110 data que ele passou o ponto
				coleta.add(linhaColeta.substring(18));
				coleta.add(linhaColeta.substring(2,8));
				Collections.sort(coleta);
			}

			// SimpleDateFormat dataFormatada = new
			// SimpleDateFormat("dd/MM/yy");
			// String data = linhaColeta.substring(2,8);

			fileCarregar = new File(
					"/opt/workspace/restaurante/rotina_restaurante/cracha.txt");
			FileReader readerCracha = new FileReader(fileCarregar);
			BufferedReader inputCracha = new BufferedReader(readerCracha);

			ArrayList<String> cracha = new ArrayList<String>();//nesse ele vai retornar 00200682	99043591	IGOR SOUZA SOARES
			while ((linhaCracha = inputCracha.readLine()) != null) {
				cracha.add(linhaCracha);
				Collections.sort(cracha);
			}
			
			fileCarregar = new File(
			"/opt/workspace/restaurante/rotina_restaurante/COLETA.txt");
			FileReader readerData = new FileReader(fileCarregar);
			BufferedReader inputData = new BufferedReader(readerData);

			ArrayList<String> data = new ArrayList<String>();//aki ele vai retornar a data 00200682
			while ((linhaData = inputData.readLine()) != null) {
				data.add(linhaData.substring(2, 8));
				Collections.sort(data);
			}

			int cont = 0;
			// StringBuffer pegaData = new StringBuffer();
			ArrayList<String> resposta = new ArrayList<String>();
			ArrayList<Integer> contador = new ArrayList<Integer>();
			ArrayList<String> pegaData = new ArrayList<String>();
			for (int i = 0; i < cracha.size(); i++) {//aki ele percorre todo o cracha
				cont = 0;
				for (int j = 0; j < coleta.size(); j++) {//aki ele percorre toda a coleta
					if (cracha.get(i).contains(coleta.get(j))) {//nesse if se o numero do cracha tiver armazenado na coleta ele add 1
						cont++;									//exemplo 00200682	99043591	IGOR SOUZA SOARES 5 ele passou 5 vezes
						for (int d = 0; d < data.size(); d++) {//aki esta o problema eu preciso adicionar a data que ele passou
							if (coleta.get(j).contains(data.get(d))) {//mas não está funcionando o que estaria de errado
								pegaData.add(data.get(d));//teria que ficar assim 00200682	99043591	IGOR SOUZA SOARES 5 021210 031210 041210 
							}																						//051210 061210
						}
					}
				}
				resposta.add(cracha.get(i));
				// System.out.println(pegaData);
				// resposta.add(cracha.get(i));
				contador.add(cont);
				pegaData.clear();
			}
			fileCarregar = new File(
					"/opt/workspace/restaurante/rotina_restaurante/resposta.txt");
			FileOutputStream carregarResposta = new FileOutputStream(
					fileCarregar);
			String texto = "";
			for (int k = 0; k < resposta.size(); k++) {
				texto = resposta.get(k) + "\t" + contador.get(k) + "\n";
				carregarResposta.write(texto.getBytes());
				System.out.println(resposta.get(k) + "\t" + contador.get(k));

			}
			inputColeta.close();
		} catch (IOException ioe) {
			System.out.println(ioe);

		}

	}

Alguem poderia me ajudar com esse problema que eu não estou conseguindo resolver?
desde já agradeço.

alguem poderia me ajudar é que esse trabalho é para hoje.

Criado 24 de maio de 2011
Ultima resposta 25 de mai. de 2011
Respostas 5
Participantes 2