Lógica para extrair arquivo

7 respostas
danilovazb

Galera, preciso de ajuda com uma lógica.
Seguinte.

Meu programa funciona da seguinte forma, eu faço a leitura de um arquivo que contem dados na seguinte formatação.

2013-09-25 00:00:00.0|263
2013-09-26 00:00:00.0|5598
2013-09-27 00:00:00.0|5
2013-09-30 00:00:00.0|768

Eu separo por pipe e retiro o "00:00:00.0" deixando somente a data, ficando dessa maneira no programa.

[img]http://imageshack.com/scaled/large/23/l0o1.png[/img]

A primeira coluna é a data que tirei o HH:MM:SS e a quantidade de contratos com essa data, a terceira coluna é onde vou colocar a nova data para alterar no novo arquivo que vou gerar, no código, ele pega da minha outra classe DAO e faz uma consulta no SQL e cria um arquivo com os dados na seguinte formatação.

[telefone removido]|HC|2|66|66|18016/1403952060000|4|2|0|2013-09-26|1|||
[telefone removido]|HC|2|72|72|18016/1324512090000|4|2|0|2013-09-26|1|||
[telefone removido]|HC|2|67|67|18016/1363520340000|2|2|0|2013-09-26|1|||
[telefone removido]|HC|2|79|79|18016/1377307530000|10|2|0|2013-09-26|1|||
[telefone removido]|HC|2|69|69|18016/1325390720000|2|2|0|2013-09-26|1|||
[telefone removido]|HC|2|76|76|18016/1344820770000|24|2|0|2013-09-26|1|||
[telefone removido]|HC|2|78|78|18016/1376344640000|2|2|0|2013-09-26|1|||
[telefone removido]|HC|2|63|63|18016/1330851000000|10|2|0|2013-09-26|1|||
[telefone removido]|HC|2|73|73|18016/1327029910000|4|2|0|2013-09-26|1|||
[telefone removido]|HC|2|73|73|18016/1323733420000|2|2|0|2013-09-26|1|||
[telefone removido]|HC|2|80|80|18016/1402332630000|24|2|0|2013-09-26|1|||
[telefone removido]|HC|2|69|69|18016/1360443390000|4|2|0|2013-09-26|1|||
[telefone removido]|HC|2|77|77|18016/1371917020000|2|2|0|2013-09-26|1|||
[telefone removido]|HC|2|81|81|18016/1323334290000|6|2|0|2013-09-26|1|||

quando eu coloco a data para alterar, ele deveria substituir todas as datas iguais da coluna 0 para a data nova com a data da coluna 2, segue o código.

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.JLabel;
import java.awt.Choice;
import java.awt.Color;
import java.awt.Component;
import java.awt.Label;
import java.awt.Button;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.awt.Window.Type;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.regex.Pattern;
import javax.swing.border.BevelBorder;
import java.awt.Font;
import javax.swing.JButton;

public class arqParcelado extends JFrame {

	private JComboBox dia_ini = new JComboBox();
	private JComboBox mes_ini = new JComboBox();
	private JComboBox ano_ini = new JComboBox();
	private JComboBox dia_fim = new JComboBox();
	private JComboBox mes_fim = new JComboBox();
	private JComboBox ano_fim = new JComboBox();
	private JPanel contentPane;
	private JTable table;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					arqParcelado frame = new arqParcelado();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	public void preencheTabela(String arqTrat) throws SQLException,
			ClassNotFoundException, IOException {

		FileReader ler = new FileReader(arqTrat);
		BufferedReader leitor = new BufferedReader(ler);
		String linha, retira00;

		LineNumberReader qtdLinha = new LineNumberReader(
				new FileReader(arqTrat));
		qtdLinha.skip(arqTrat.length());
		int qtdLinhaArq = qtdLinha.getLineNumber();
		int i = 0;
		while ((linha = leitor.readLine()) != null) {
			String[] linhas = linha.split(Pattern.quote("|"));
			retira00 = linhas[0].replaceAll(" 00:00:00.0", "");
			// for(i = 0;i <= 5;i++){
			table.setValueAt(retira00, i, 0);
			table.setValueAt(linhas[1], i, 1);
			i++;
			// }
		}
		leitor.close();

		/*
		 * table.setValueAt("", 1, 2); table.setValueAt(result, linha, coluna);
		 * table.setValueAt(result, linha, coluna); table.setValueAt(result,
		 * linha, coluna); table.setValueAt(result, linha, coluna);
		 * table.setValueAt(result, linha, coluna); table.setValueAt(result,
		 * linha, coluna); table.setValueAt(result, linha, coluna);
		 * table.setValueAt(result, linha, coluna); table.setValueAt(result,
		 * linha, coluna); table.setValueAt(result, linha, coluna);
		 * table.setValueAt(result, linha, coluna); table.setValueAt(result,
		 * linha, coluna);
		 */
	}

	/**
	 * Create the frame.
	 */
	public arqParcelado() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setType(Type.POPUP);
		setTitle("Rob\u00F4 Parcelado");
		setBounds(100, 100, 450, 413);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		JLabel lblNewLabel = new JLabel("Dt. Recebimento Contrato");
		lblNewLabel.setBounds(10, 9, 134, 14);
		contentPane.add(lblNewLabel);

		Label label = new Label("\u00E0");
		label.setBounds(218, 52, 14, 22);
		contentPane.add(label);
		final String[] linha = new String[] { null, null, null };
		Button btQtdPrevDev = new Button("Qtd. por Prev. Devolu\u00E7\u00E3o");
		btQtdPrevDev.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {

				String diaIni = (String) dia_ini.getSelectedItem();
				String mesIni = (String) mes_ini.getSelectedItem();
				String anoIni = (String) ano_ini.getSelectedItem();
				String diaFim = (String) dia_fim.getSelectedItem();
				String mesFim = (String) mes_fim.getSelectedItem();
				String anoFim = (String) ano_fim.getSelectedItem();

				DAO dao = new DAO();

				try {
					// dao.exportParcelado(diaIni, mesIni, anoIni, diaFim,
					// mesFim, anoFim);
					String arquivo = "Quantidade_Robo_Parcelado_" + diaIni
							+ mesIni + anoIni + ".txt";

					// dao.qtdParcelado(diaIni, mesIni, anoIni, diaFim, mesFim,
					// anoFim);

					preencheTabela(arquivo);
				} catch (ClassNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

			}
		});
		btQtdPrevDev.setBounds(10, 87, 196, 22);
		contentPane.add(btQtdPrevDev);

		JScrollPane spTabela = new JScrollPane();
		spTabela.setBounds(10, 119, 422, 256);
		contentPane.add(spTabela);

		DefaultTableCellRenderer letras = new DefaultTableCellRenderer() {

			public void setValue(Object value) {
				setBackground(new Color(238, 238, 238));
				setForeground(Color.BLACK);
				setHorizontalAlignment(JLabel.CENTER);

				// outras alterações entram aqui...
				super.setValue(value);
			}
		};

		// TableColumn tc = table.getColumn("");
		// tc.setCellRenderer(letras);

		table = new JTable();
		table.setCellSelectionEnabled(true);
		table.setColumnSelectionAllowed(true);
		table.setFont(new Font("Calibri", Font.PLAIN, 13));
		table.setBackground(Color.WHITE);
		table.setBorder(null);
		table.setModel(new DefaultTableModel(new Object[][] {
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null }, }, new String[] {
				"Previs\u00E3o de Devolu\u00E7\u00E3o", "Quantidade",
				"Altera Data" }) {
			boolean[] columnEditables = new boolean[] { false, false, true };

			public boolean isCellEditable(int row, int column) {
				return columnEditables[column];
			}
		});
		spTabela.setViewportView(table);

		dia_ini.setModel(new DefaultComboBoxModel(new String[] { "01", "02",
				"03", "04", "05", "06", "07", "08", "09", "10", "11", "12",
				"13", "14", "15", "16", "17", "18", "19", "20", "21", "22",
				"23", "24", "25", "26", "27", "28", "29", "30", "31" }));
		dia_ini.setBounds(10, 52, 47, 22);
		contentPane.add(dia_ini);

		mes_ini.setModel(new DefaultComboBoxModel(new String[] { "01", "02",
				"03", "04", "05", "06", "07", "08", "09", "10", "11", "12" }));
		mes_ini.setBounds(67, 52, 47, 22);
		contentPane.add(mes_ini);

		ano_ini.setModel(new DefaultComboBoxModel(new String[] { "2013",
				"2014", "2015", "2016", "2017", "2018", "2019", "2020" }));
		ano_ini.setBounds(124, 52, 82, 22);
		contentPane.add(ano_ini);

		dia_fim.setModel(new DefaultComboBoxModel(new String[] { "01", "02",
				"03", "04", "05", "06", "07", "08", "09", "10", "11", "12",
				"13", "14", "15", "16", "17", "18", "19", "20", "21", "22",
				"23", "24", "25", "26", "27", "28", "29", "30", "31" }));
		dia_fim.setBounds(238, 52, 47, 22);
		contentPane.add(dia_fim);

		mes_fim.setModel(new DefaultComboBoxModel(new String[] { "01", "02",
				"03", "04", "05", "06", "07", "08", "09", "10", "11", "12" }));
		mes_fim.setBounds(295, 52, 47, 22);
		contentPane.add(mes_fim);

		ano_fim.setModel(new DefaultComboBoxModel(new String[] { "2013",
				"2014", "2015", "2016", "2017", "2018", "2019", "2020" }));
		ano_fim.setBounds(352, 52, 82, 22);
		contentPane.add(ano_fim);

		JButton btnGerarArquivoImportao = new JButton(
				"Gerar Arquivo Importa\u00E7\u00E3o");
		btnGerarArquivoImportao.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {

				String diaIni = (String) dia_ini.getSelectedItem();
				String mesIni = (String) mes_ini.getSelectedItem();
				String anoIni = (String) ano_ini.getSelectedItem();
				String diaFim = (String) dia_fim.getSelectedItem();
				String mesFim = (String) mes_fim.getSelectedItem();
				String anoFim = (String) ano_fim.getSelectedItem();

				DAO dao = new DAO();
				try {
					// dao.exportParcelado(diaIni, mesIni, anoIni, diaFim,
					// mesFim,anoFim);

					String arquivo = "Robo_Parcelado_" + diaIni + mesIni
							+ anoIni + ".txt";

					String nvArquivo = "IMPORTAR-Quantidade_Robo_Parcelado_"
							+ diaIni + mesIni + anoIni + ".txt";

					String qtdArq = "IMPORTAR-Quantidade_Robo_Parcelado_"
							+ diaIni + mesIni + anoIni + ".txt";

					FileReader ler = new FileReader(arquivo);
					BufferedReader leitor = new BufferedReader(ler);
					String linha;
					String retira00;
					// String retira0;

					PrintWriter out = new PrintWriter(nvArquivo);
					// int line = 0;
					// qdtLn =- 1;

					LineNumberReader linLeit = new LineNumberReader(
							new FileReader(qtdArq));
					linLeit.skip(qtdArq.length());
					int qtdLinha = linLeit.getLineNumber();

					while ((linha = leitor.readLine()) != null) {
						for (int line = 0; line <= qtdLinha + 3; line++) {
							String dtAnterior = (String) table.getValueAt(line,
									0);
							String dtNova = (String) table.getValueAt(line, 2);
							retira00 = linha.replaceAll(dtAnterior, dtNova);
							out.println(retira00);
							System.out.println(retira00);
							// System.out.println(retira00);

						}

					}
					out.close();
					leitor.close();

					// }

					// File arq = new File(arquivo);
					// arq.delete();

				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
		btnGerarArquivoImportao.setBounds(238, 87, 194, 22);
		contentPane.add(btnGerarArquivoImportao);
	}
}

Por favor, me ajudem, meu emprego está em jogo :(

7 Respostas

danilovazb

Agora o código está assim.

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.JLabel;
import java.awt.Choice;
import java.awt.Color;
import java.awt.Component;
import java.awt.Label;
import java.awt.Button;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.awt.Window.Type;
import javax.swing.JComboBox;
import javax.swing.DefaultComboBoxModel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.regex.Pattern;
import javax.swing.border.BevelBorder;
import java.awt.Font;
import javax.swing.JButton;

public class arqParcelado extends JFrame {

	private JComboBox dia_ini = new JComboBox();
	private JComboBox mes_ini = new JComboBox();
	private JComboBox ano_ini = new JComboBox();
	private JComboBox dia_fim = new JComboBox();
	private JComboBox mes_fim = new JComboBox();
	private JComboBox ano_fim = new JComboBox();
	private JPanel contentPane;
	private JTable table;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					arqParcelado frame = new arqParcelado();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	public void preencheTabela(String arqTrat) throws SQLException,
			ClassNotFoundException, IOException {

		FileReader ler = new FileReader(arqTrat);
		BufferedReader leitor = new BufferedReader(ler);
		String linha, retira00;

		LineNumberReader qtdLinha = new LineNumberReader(
				new FileReader(arqTrat));
		qtdLinha.skip(arqTrat.length());
		int qtdLinhaArq = qtdLinha.getLineNumber();
		int i = 0;
		while ((linha = leitor.readLine()) != null) {
			String[] linhas = linha.split(Pattern.quote("|"));
			retira00 = linhas[0].replaceAll(" 00:00:00.0", "");
			// for(i = 0;i <= 5;i++){
			table.setValueAt(retira00, i, 0);
			table.setValueAt(linhas[1], i, 1);
			i++;
			// }
		}
		leitor.close();

		/*
		 * table.setValueAt("", 1, 2); table.setValueAt(result, linha, coluna);
		 * table.setValueAt(result, linha, coluna); table.setValueAt(result,
		 * linha, coluna); table.setValueAt(result, linha, coluna);
		 * table.setValueAt(result, linha, coluna); table.setValueAt(result,
		 * linha, coluna); table.setValueAt(result, linha, coluna);
		 * table.setValueAt(result, linha, coluna); table.setValueAt(result,
		 * linha, coluna); table.setValueAt(result, linha, coluna);
		 * table.setValueAt(result, linha, coluna); table.setValueAt(result,
		 * linha, coluna);
		 */
	}

	/**
	 * Create the frame.
	 */
	@SuppressWarnings({ "serial", "unchecked", "rawtypes" })
	public arqParcelado() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setType(Type.POPUP);
		setTitle("Rob\u00F4 Parcelado");
		setBounds(100, 100, 450, 413);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		JLabel lblNewLabel = new JLabel("Dt. Recebimento Contrato");
		lblNewLabel.setBounds(10, 9, 134, 14);
		contentPane.add(lblNewLabel);

		Label label = new Label("\u00E0");
		label.setBounds(218, 52, 14, 22);
		contentPane.add(label);
		final String[] linha = new String[] { null, null, null };
		Button btQtdPrevDev = new Button("Qtd. por Prev. Devolu\u00E7\u00E3o");
		btQtdPrevDev.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {

				String diaIni = (String) dia_ini.getSelectedItem();
				String mesIni = (String) mes_ini.getSelectedItem();
				String anoIni = (String) ano_ini.getSelectedItem();
				String diaFim = (String) dia_fim.getSelectedItem();
				String mesFim = (String) mes_fim.getSelectedItem();
				String anoFim = (String) ano_fim.getSelectedItem();

				DAO dao = new DAO();

				try {
					// dao.exportParcelado(diaIni, mesIni, anoIni, diaFim,
					// mesFim, anoFim);
					String arquivo = "Quantidade_Robo_Parcelado_" + diaIni
							+ mesIni + anoIni + ".txt";

					// dao.qtdParcelado(diaIni, mesIni, anoIni, diaFim, mesFim,
					// anoFim);

					preencheTabela(arquivo);
				} catch (ClassNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}

			}
		});
		btQtdPrevDev.setBounds(10, 87, 196, 22);
		contentPane.add(btQtdPrevDev);

		JScrollPane spTabela = new JScrollPane();
		spTabela.setBounds(10, 119, 422, 256);
		contentPane.add(spTabela);

		DefaultTableCellRenderer letras = new DefaultTableCellRenderer() {

			public void setValue(Object value) {
				setBackground(new Color(238, 238, 238));
				setForeground(Color.BLACK);
				setHorizontalAlignment(JLabel.CENTER);

				// outras alterações entram aqui...
				super.setValue(value);
			}
		};

		// TableColumn tc = table.getColumn("");
		// tc.setCellRenderer(letras);

		table = new JTable();
		table.setCellSelectionEnabled(true);
		table.setColumnSelectionAllowed(true);
		table.setFont(new Font("Calibri", Font.PLAIN, 13));
		table.setBackground(Color.WHITE);
		table.setBorder(null);
		table.setModel(new DefaultTableModel(new Object[][] {
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null },
				{ null, null, null }, { null, null, null }, }, new String[] {
				"Previs\u00E3o de Devolu\u00E7\u00E3o", "Quantidade",
				"Altera Data" }) {
			boolean[] columnEditables = new boolean[] { false, false, true };

			public boolean isCellEditable(int row, int column) {
				return columnEditables[column];
			}
		});
		spTabela.setViewportView(table);

		dia_ini.setModel(new DefaultComboBoxModel(new String[] { "01", "02",
				"03", "04", "05", "06", "07", "08", "09", "10", "11", "12",
				"13", "14", "15", "16", "17", "18", "19", "20", "21", "22",
				"23", "24", "25", "26", "27", "28", "29", "30", "31" }));
		dia_ini.setBounds(10, 52, 47, 22);
		contentPane.add(dia_ini);

		mes_ini.setModel(new DefaultComboBoxModel(new String[] { "01", "02",
				"03", "04", "05", "06", "07", "08", "09", "10", "11", "12" }));
		mes_ini.setBounds(67, 52, 47, 22);
		contentPane.add(mes_ini);

		ano_ini.setModel(new DefaultComboBoxModel(new String[] { "2013",
				"2014", "2015", "2016", "2017", "2018", "2019", "2020" }));
		ano_ini.setBounds(124, 52, 82, 22);
		contentPane.add(ano_ini);

		dia_fim.setModel(new DefaultComboBoxModel(new String[] { "01", "02",
				"03", "04", "05", "06", "07", "08", "09", "10", "11", "12",
				"13", "14", "15", "16", "17", "18", "19", "20", "21", "22",
				"23", "24", "25", "26", "27", "28", "29", "30", "31" }));
		dia_fim.setBounds(238, 52, 47, 22);
		contentPane.add(dia_fim);

		mes_fim.setModel(new DefaultComboBoxModel(new String[] { "01", "02",
				"03", "04", "05", "06", "07", "08", "09", "10", "11", "12" }));
		mes_fim.setBounds(295, 52, 47, 22);
		contentPane.add(mes_fim);

		ano_fim.setModel(new DefaultComboBoxModel(new String[] { "2013",
				"2014", "2015", "2016", "2017", "2018", "2019", "2020" }));
		ano_fim.setBounds(352, 52, 82, 22);
		contentPane.add(ano_fim);

		JButton btnGerarArquivoImportao = new JButton(
				"Gerar Arquivo Importa\u00E7\u00E3o");
		btnGerarArquivoImportao.addActionListener(new ActionListener() {
			@SuppressWarnings({ "unused", "resource" })
			public void actionPerformed(ActionEvent arg0) {

				String diaIni = (String) dia_ini.getSelectedItem();
				String mesIni = (String) mes_ini.getSelectedItem();
				String anoIni = (String) ano_ini.getSelectedItem();
				@SuppressWarnings("unused")
				String diaFim = (String) dia_fim.getSelectedItem();
				@SuppressWarnings("unused")
				String mesFim = (String) mes_fim.getSelectedItem();
				@SuppressWarnings("unused")
				String anoFim = (String) ano_fim.getSelectedItem();

				@SuppressWarnings("unused")
				DAO dao = new DAO();
				try {
					/*
					 * try { dao.exportParcelado(diaIni, mesIni, anoIni, diaFim,
					 * mesFim,anoFim); } catch (ClassNotFoundException e) { //
					 * TODO Auto-generated catch block e.printStackTrace(); }
					 * catch (SQLException e) { // TODO Auto-generated catch
					 * block e.printStackTrace(); }
					 */

					String arquivo = "Robo_Parcelado_" + diaIni + mesIni
							+ anoIni + ".txt";

					String nvArquivo = "IMPORTAR-Quantidade_Robo_Parcelado_"
							+ diaIni + mesIni + anoIni + ".txt";

					String qtdArq = "Quantidade_Robo_Parcelado_" + diaIni
							+ mesIni + anoIni + ".txt";

					String linha;
					String retira00 = null;
					String retira0;

					PrintWriter out = new PrintWriter(nvArquivo);
					// int line = 0;
					// qdtLn =- 1;
					LineNumberReader linhaLeitura = new LineNumberReader(
							new FileReader(qtdArq));
					linhaLeitura.skip(qtdArq.length());
					int qtdArqLine = linhaLeitura.getLineNumber();

					int line, line2;
					for (line = 0; line <= qtdArqLine + 3; line++) {
						
						
						BufferedReader leitor = new BufferedReader(
								new FileReader(arquivo));
						
						while ((linha = leitor.readLine()) != null ) {

							String dtAnterior = (String) table.getValueAt(line, 0);
							String dtNova = (String) table.getValueAt(line, 2);
							retira00 = linha.replaceAll(dtAnterior, dtNova);
							out.println(retira00);
							System.out.println(line + " - " + retira00);
							
							// System.out.println(retira00);
						}
						leitor.close();
						out.close();

					}

					// }

					// File arq = new File(arquivo);
					// arq.delete();

				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
		btnGerarArquivoImportao.setBounds(238, 87, 194, 22);
		contentPane.add(btnGerarArquivoImportao);
	}
}

Eu anexei o arquivo de entrada para entenderem como é o processo.

Minha intenção é substituir todas as datas pelas novas que colocarei nas células da coluna 2 (Lembrando que a coluna começa com 0)

G

Cara, seu código tá confuso então nem li todo.

Mas o seguinte, diz exatamente o que você quer fazer com esse arquivo texto que tento te ajudar.

Diz se quer jogar em uma tela, refatorar, sei lá o que, enfim, de um exemplo. Pq ta duro entender o que vc quer por esse código

danilovazb

Gabriel Mantini, obrigado pela ajuda, estou suando frio aqui.

Eu não sou programador, apenas dou um de severino em Java.

Então, o que desejo fazer.

Eu vou setar data de entrada e data de saída, quando clicar no botão “Qtd. por Prov. Devolução” ele vai ler um arquivo que tenho na pasta do programa e ver quantas linhas tem, percorrer o arquivo e preencher ele de acordo com a imagem lá em cima.

Ficando:
±-------------------------±-------------+
|Previsão de Devolução | Quantidade |
±-------------------------±-------------+
|2013-10-07 | 191 |
±-------------------------±-------------+
|2013-10-04 | 3 |
±-------------------------±-------------+
|2013-09-23 | 1 |
±-------------------------±-------------+
|2013-10-02 | 2028 |
±-------------------------±-------------+
|2013-10-03 | 24053 |
±-------------------------±-------------+

Terá outro botão chamado “Gerar arquivo importação”, nele eu vou abrir um arquivo que estará na pasta do programa e vou ler linha por linha e substituir todas as datas que tiverem na jTable pela data que inserir também na jTable, e gravar ele em outro arquivo para importação.

Conseguiu entender o que eu quero? não sou muito bom para explicar as coisas.

G

Ok,

Vamos lá.

Então seu problema não está em nenhuma funcionalidade especifica do Java, certo?

Só precisa manipular os arquivos e recuperar os dados para variáveis e jogar esses dados na tela.

Primeiro, para encontrar e substituir dados em arquivos, procure sobre Regex java. Regex(ou expressões regulares) são formas simples para definir um padrão de um trecho de texto que deseja encontrar. Pelo documento que vc disponibilizou, isso vai te ajudar bastante.

Quanto a edição do documento, não posso te ajudar pq não conheço nada sobre a manipulação de arquivos em java, mas creio que consiga encontrar bons tutoriais sobre isso na internet.

Mas, outra dúvida sobre o que você quer fazer. Você quer setar 2 datas e clicar num botão que dispara um evento que busca, dentro do documento txt, as datas digitadas e a um outro valor(quantidades) relacionadas a essas datas?
Se for isso, pq usar um txt e não tabelas em um banco de dados?

Felipe_Pinto_da_Silv

Pelo que eu entendi, danilovazb, você está fugindo do banco de dados, certo?
Nunca precisei fazer substituição de texto em arquivo, mas um artifício que pode ser que te ajude e fica num meio termo entre gravar em arquivo e banco de dados seria a serialização de objetos, o que você acha?
Dá uma olhada aqui: http://felipealvesgnu.wordpress.com/2010/12/19/serializacao-e-desserializacao-de-objetos/
Qualquer classe que implementa a interface Serializable pode ser salva em arquivo!
Nesse caso, você lê o arquivo e passa a ter instâncias de um objeto, consequentemente consegue manipular via Java e fazer a operações que deseja.
Ao final, salva as instâncias em arquivo de novo.

Abraço

S

danilovazb:
Gabriel Mantini, obrigado pela ajuda, estou suando frio aqui.

Eu não sou programador, apenas dou um de severino em Java.

Então, o que desejo fazer.

Eu vou setar data de entrada e data de saída, quando clicar no botão “Qtd. por Prov. Devolução” ele vai ler um arquivo que tenho na pasta do programa e ver quantas linhas tem, percorrer o arquivo e preencher ele de acordo com a imagem lá em cima.

Ficando:
±-------------------------±-------------+
|Previsão de Devolução | Quantidade |
±-------------------------±-------------+
|2013-10-07 | 191 |
±-------------------------±-------------+
|2013-10-04 | 3 |
±-------------------------±-------------+
|2013-09-23 | 1 |
±-------------------------±-------------+
|2013-10-02 | 2028 |
±-------------------------±-------------+
|2013-10-03 | 24053 |
±-------------------------±-------------+

Terá outro botão chamado “Gerar arquivo importação”, nele eu vou abrir um arquivo que estará na pasta do programa e vou ler linha por linha e substituir todas as datas que tiverem na jTable pela data que inserir também na jTable, e gravar ele em outro arquivo para importação.

Conseguiu entender o que eu quero? não sou muito bom para explicar as coisas.

me desculpe mas eu ri quando falou severino…

primeira vez que vejo alguém falar assim em java

use o debug então e tenta ver se resolve teu problema, se não resolver
estude mais um pouco pois severino em java não existe, ou leva as coisas
a sério e estuda para trabalhar com java mesmo ou larga de vez.

Desculpa mas só de pensar que estão te fazendo de severino já fico furioso
pois na boa Java exige mais respeito.

Abra seu olho para onde está trabalhando.
Trabalho escravo é crime.

S

acho que já responderam sua pergunta lá no Guj Respostas

já conferiu lá?

Criado 23 de agosto de 2013
Ultima resposta 3 de set. de 2013
Respostas 7
Participantes 4