Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido)Gravação em um arquivo texto


Victor_DF

Pergunta

Oi pessoal...

O meu problema é, eu estou querendo criar um programa que leia outros programas em java, gravados em texto, e substitua o "for" por "while", fazendo as modificações necessárias automaticamente.

A lógica eu já sei, o meu problema é em fazer a comparação para achar o "for" e substitui-lo.

O código que eu fiz é esse:

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

public class Ler{

    public static void main(String args[]){
    
        try{

            Scanner sc = new Scanner(System.in);
        
            System.out.print("Digite o diretorio do arquivo receptor: ");
            String dir1 = sc.nextLine();
            
            System.out.print("Digite o diretorio do arquivo a ser lido: ");
            String dir2 = sc.nextLine();
            
            File arquivo = new File(dir1);
            File arquivo2 = new File(dir2);
            FileInputStream in = new FileInputStream(arquivo2);
            FileOutputStream fos = new FileOutputStream(arquivo);
            Scanner read = new Scanner(in);
            
            boolean ok = arquivo.createNewFile();
            
            if (! ok){
            
                while (read.hasNext()){
                
                    String readline = read.nextLine();
                    String parte = readline.substring(0,3);
                    if (parte == null){
                    
                        fos.write(System.getProperty("line.separator").getBytes());
                    
                    }
                    else{
                    
                        if (parte.equals("for")){
                    
                            String t = "Oi for";
                            fos.write(readline.getBytes());
                    
                        }
                        else{
                        
                            fos.write(readline.getBytes());
                            fos.write(System.getProperty("line.separator").getBytes());
                        
                        }
                        
                    }

                }
            
            }
            else{
            
                System.out.print("não foi possivel criar o arquivo");
            
            }

        }
        catch(IOException e){
        
            // nada
        
        }
    
    }

}

Agradeço a atenção.

Editado por Victor_DF
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Opa Resolvi o problema, o código ficou assim:

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

public class Ler{

    public static void main(String args[]){
    
        try{

            Scanner sc = new Scanner(System.in);
        
            System.out.print("Digite o diretorio do arquivo receptor: ");
            String dir1 = sc.nextLine();
            
            System.out.print("Digite o diretorio do arquivo a ser lido: ");
            String dir2 = sc.nextLine();
            
            int valor = 0;
            File arquivo = new File(dir1);
            File arquivo2 = new File(dir2);
            FileInputStream in = new FileInputStream(arquivo2);
            FileOutputStream fos = new FileOutputStream(arquivo);
            Scanner read = new Scanner(in);
            
            boolean ok = arquivo.createNewFile();
            
            if (! ok){
            
                while (read.hasNext()){
                
                    String readline = read.nextLine();
                    String parte = "for";
                    if (parte == null){
                    
                        fos.write(System.getProperty("line.separator").getBytes());
                    
                    }
                    else{
                    
                        if (readline.matches(".*" + parte + ".*")){
                    
                            valor = 0;
                            fos.write("int i;".getBytes());
                            fos.write(System.getProperty("line.separator").getBytes());
                            String t = "while";
                            fos.write(t.getBytes());
                            String parte1 = readline.substring(readline.indexOf(";")+1);
                            String parte2 = parte1.substring(0,parte1.indexOf(";"));
                            String text = "("+parte2+"){";
                            fos.write(text.getBytes());
                    
                        }
                        else{
                        
                            if ((readline.matches(".*"+"}"+".*")) && (valor == 0)){
                            
                                fos.write("i++;".getBytes());
                                valor++;
                                fos.write(System.getProperty("line.separator").getBytes());
                            
                            }
                            fos.write(readline.getBytes());
                            fos.write(System.getProperty("line.separator").getBytes());
                        
                        }
                        
                    }

                }
            
            }
            else{
            
                System.out.print("não foi possivel criar o arquivo");
            
            }

        }
        catch(IOException e){
        
            // nada
        
        }
    
    }

}

Obrigado pela atenção

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...