2016-08-03 46 views
1
public class ScriptCreator { 

    public static void main(String[] args) throws IOException { 
     #Choose the CSV file that I am importing the data from 
     String fName = "C:\\Users\\MyUser\\Downloads\\CurrentApplications (1).csv"; 
     String thisLine; 
     int count = 0; 
     FileInputStream fis = new FileInputStream(fName); 
     DataInputStream myInput = new DataInputStream(fis); 
     int i = 0; 
     #Prints the List of names in the CSV file 
     while((thisLine = myInput.readLine()) != null){ 
      String strar[] = thisLine.split(","); 
      Printer(strar[0]); 
     } 

    } 

    public static void Printer(String arg) throws IOException{  
     #Want to pull from the String strar[0] from above 
     #Says that it cannot be resolved to a variable  
      String name = arg; 
      String direc = "C:/Users/MyUser/Documents/"; 
      String path = "C:/Users/MyUser/Documents"; 
      Iterable<String> lines = Arrays.asList("LOGIN -acceptssl ServerName","N " + name + " " + direc ,"cd " + name,"import " + path + "*.ppf" + " true","scan", "publishassessase -aseapplication " + name,"removeassess *","del " + name); 
      Path file = Paths.get(name + ".txt"); 
      Files.write(file, lines, Charset.forName("UTF-8")); 

    } 

} 

Hallo an alle und vielen Dank im Voraus für jede Hilfe, die Sie mir geben können. Ich versuche, ein Java-Programm zu erstellen, das Namen aus einer CSV-Datei extrahiert und diese Namen verwendet, um benutzerdefinierte Ausgaben für Textdateien zu generieren. Mir fällt es schwer, eine Variable zu setzen, die ich verwenden kann, um die Namen zu drucken, die gedruckt werden, und sie zu verwenden, um eine Textdatei zu erzeugen, indem ich die Namensvariable setze. Ich werde auch Hilfe benötigen, um sicherzustellen, dass die Menge an Skripten für die Anzahl der Namen in der CSV-Datei erstellt wird. Ex. 7 Namen in CSV erstellt 7 benutzerdefinierte. Txt-Dateien, jede mit dem entsprechenden Namen.Generieren von benutzerdefinierten Textdateien in Java

Jede Hilfe wird sehr geschätzt!

Bearbeiten: Ich habe meinen Code aktualisiert, um die Korrektur, die benötigt wurde, um den Code arbeiten zu können.

Antwort

0

Es sieht so aus, als ob Sie einige Probleme mit dem Scoping haben. Wann immer Sie eine Variable deklarieren, existiert sie nur innerhalb der Grenzen ihrer nächsten geschweiften Klammer. Wenn Sie strar in Ihrer Hauptmethode deklarieren, können Sie sie nur innerhalb Ihrer Hauptmethode explizit verwenden. Ihre printer() -Methode hat keine vorherige Erwähnung von strar, und die einzige Möglichkeit, sie zu kennen, ist, sie als Argument an die Funktion zu übergeben.

dh

Printer(String[] args) 

Oder, noch besser:

Printer(String arg) 

und es dann in Ihrer while-Schleife ruft mit

Printer(strar[0]); 

Auch beginnt Ihre Drucker-Methode mit einem „für Jede "Schleife" hat strar [0] aufgerufen, was sowieso kein gültiges Ziel für eine foreach-Schleife ist, denn wenn ich mich richtig erinnere, ist String kein iterables Objekt. Wenn Sie die Printer-Funktion wie von mir empfohlen implementiert haben, brauchen Sie für jede Schleife sowieso keine Schleife, da immer nur ein Name übergeben wird.

+1

Sie gehören gerade zu meinen Lieblingsleuten. Es funktionierte!! Ich habe versucht, zu stimmen, aber dafür habe ich keinen guten Ruf. – Dom

+0

Keine Sorgen! Froh, dass ich helfen konnte :) – Daniel