[RESOLVIDO]Passagem de Parametro!

4 respostas
D

Galera,

preciso saber como que faço para passar mais de um parametro.

por exemplo a planilha possui 4 abas…o usuario digitara o nome das abas e esses nomes serao passados como parametro para que o programa leia as abas!

obs… me disseram para usar "split", mas se tiver outra forma eu ficaria grato!!!
vlwww!!!

4 Respostas

drsmachado

Passe os 4 parâmetros, oras.
Você espera que nós adivinhemos a estrutura do que você está fazendo?

marlonjke

talvez eu esteja enganado, talvez seja isso:

public void trataAbas(String...nome){ //faz o que tem que fazer; }
e quando for invocar o método envie os parâmetros separando por vírgula

trataAbas("aba1", "aba2", "aba3");
D

desculpa nao deixei claro o que preciso..

seguinte...

as planilhas que serao enviadas para leitura iram vir com "n" abas.. preciso que seja gerado o numero de argumentos referentes a quantidade de abas das planilhas.

String sheetName = args[1]; << eu quero que em vez de um argumento só .. sejam passados "n" argumentos.. pq as planilhas nao possuem sempre o mesmo numero de abas.

public class CheckInfo {

	private static final Logger log = Logger.getLogger(CheckInfo.class
			.getSimpleName());

	private static String[] FILE_NAMES = null;

	/**
	 * @param args
	 * @throws IOException
	 * @throws BiffException
	 */
	public static void main(String[] args) throws IOException {

		try {
			if (args != null) {

				/*
				 * Faz a leitura da planilha
				 */
				String fileName = args[0];
				WorkbookSettings ws = new WorkbookSettings();
				ws.setEncoding("ISO-8859-1");

				Workbook workbook = Workbook
						.getWorkbook(new File(fileName), ws);
				
                        
					String sheetName = args[1];
				
					
					
					

					StringBuilder validationErrors = new StringBuilder();
					Sheet sheet = workbook.getSheet(sheetName);

					int rows = sheet.getRows();

					FILE_NAMES = new String[rows];
					for (int i = 1; i < rows; i++) {
						Cell sheetFileName = sheet.getCell(0, i);

						if (sheetFileName.getContents() != null
								&& sheetFileName.getContents().length() > 0)
							FILE_NAMES[i - 1] = sheetFileName.getContents();

					}

					Map<String, List<String>> mapFiles = extractMapRevisions();

					checkFileNames(validationErrors, mapFiles);

					String dirGravacao = args[2];

					log.log(Level.INFO, "Gerando arquivo de validacao");

					FileUtils.writeStringToFile(new File(dirGravacao
							+ File.separatorChar + "validation.txt"),
							validationErrors.toString());

					log.log(Level.INFO,
							"Arquivo de validacao gerado com sucesso.");
				

			}
		} catch (IOException e) {
			log.log(Level.SEVERE,
					"Erro ao gerar o arquivo de log: " + e.getMessage());
		} catch (BiffException e) {
			log.log(Level.SEVERE,
					"Erro ao ler planilha excel: " + e.getMessage());

		}

	}

	/**
	 * Ordena os arquivos para verificao
	 * 
	 * @return Map
	 */
	  private static Map<String, List<String>> extractMapRevisions() {
	        Map<String, List<String>> mapFiles = new HashMap<String, List<String>>();

	        String curr = null;

	        List<String> filesList = null;
	        for (int i = 0; i < FILE_NAMES.length; i++) {
	            curr = FILE_NAMES[i];
	            if (curr != null && curr.contains("_R")) {
	                curr = curr.substring(0, curr.indexOf("_R"));
	                int count = StringUtils.countMatches(FILE_NAMES[i], "_");
	                if (FILE_NAMES[i].contains("R000")) {
	                    filesList = new ArrayList<String>();
	                   
	                    if(count ==1)
	                    mapFiles.put(curr, filesList);
	                }
	                filesList.add(curr);
	            }
	        }
	        return mapFiles;
	    }


	/**
	 * Verifica o nome dos arquivos.
	 * 
	 * @param validationErrors
	 * @param mapFiles
	 */
	private static void checkFileNames(StringBuilder validationErrors,
			Map<String, List<String>> mapFiles) {
		validationErrors.append("Validando nomes de arquivos.... \n\n");

		for (Entry<String, List<String>> entry : mapFiles.entrySet()) {
			validationErrors.append("Validando arquivo " + entry.getKey()
					+ "\n\n");

			List<String> fileNames = entry.getValue();
			if (fileNames.size() > 1) {
				for (int i = 1; i < fileNames.size(); i++) {

					String currFileName = fileNames.get(1);
					String fileName = fileNames.get(i);

					int distance = StringUtils.getLevenshteinDistance(
							currFileName, fileName);

					if (distance > 0) {
						validationErrors
								.append("Nome de arquivo diferente:\n - R000: "
										+ currFileName + " \n - R00" + i + ": "
										+ fileName + " \n");
						validationErrors
								.append("---------------------------------------------------------------------------------------------------\n\n");
					}
				}
			}
		}
	}
}
D
Consegui!!
public class CheckInfo {

	private static final Logger log = Logger.getLogger(CheckInfo.class
			.getSimpleName());
	private static int j;

	private static String[] FILE_NAMES = null;

	/**
	 * @param args
	 * @throws IOException
	 * @throws BiffException
	 */
	public static void main(String[] args) throws IOException {

		try {
			if (args != null) {

				/*
				 * Faz a leitura da planilha
				 */
				String fileName = args[0];
				WorkbookSettings ws = new WorkbookSettings();
				ws.setEncoding("ISO-8859-1");

				Workbook workbook = Workbook
						.getWorkbook(new File(fileName), ws);

				for (j = 1; j < args.length; j++) {

					String sheetName = args[j];

					StringBuilder validationErrors = new StringBuilder();
					Sheet sheet = workbook.getSheet(sheetName);

					int rows = sheet.getRows();

					FILE_NAMES = new String[rows];
					for (int i = 1; i < rows; i++) {
						Cell sheetFileName = sheet.getCell(0, i);

						if (sheetFileName.getContents() != null
								&& sheetFileName.getContents().length() > 0)
							FILE_NAMES[i - 1] = sheetFileName.getContents();

					}

					Map<String, List<String>> mapFiles = extractMapRevisions();

					checkFileNames(validationErrors, mapFiles);

					log.log(Level.INFO, "Gerando arquivo de validacao");
					for (int k = 2; k < args.length; k++) {
						String dirGravacao = args[k];
						FileUtils.writeStringToFile(new File(dirGravacao
								+ File.separatorChar + "validation_" + args[j]
								+ ".txt"), validationErrors.toString());
					}
					log.log(Level.INFO,
							"Arquivo de validacao gerado com sucesso.");

				}
			}
		} catch (IOException e) {
			log.log(Level.SEVERE,
					"Erro ao gerar o arquivo de log: " + e.getMessage());
		} catch (BiffException e) {
			log.log(Level.SEVERE,
					"Erro ao ler planilha excel: " + e.getMessage());

		}

	}
Criado 12 de dezembro de 2012
Ultima resposta 12 de dez. de 2012
Respostas 4
Participantes 3