Hallo zusammen,
ich hoffe mir kann jemand helfen. ich verzweifel langsam.
Was ich machen möchte:
Es werden Dateinamen aus einem Ordner mit einer bestimmten Endung in ein Array gelesen. (funktioniert)
Anschließend wird das Array bearbeitet mit replace und es wird [InputScript =] an einer bestimmten Stelle hinzugefügt. (funktioniert)
Jetzt möchte ich an der Stelle, an der das Leerzeichen zwischen InputScript und dem Gleichzeichen steht, eine fortlaufende Nummer einfügen, die bis 1000 gehen kann.
Wie mache ich das am gescheitesten?
Mein Ansatz war mit einer while Schleife und indexOf() die Stellen zu suchen an die Leerzeichen stehen und dort dann im StringBuilder mit insert() und deleteCharAt() das Leerzeichen zu ersetzen.
Ich habe das in meinem Code gemacht allerdings für eine bestimmte Anzahl an Dateien funktioniert dies nur. Diese kann jedoch immer variieren!! Daher müsste dies über schleifen oder if anweisungen geschrieben werden mit dem int count der ja die Dateien im Ordner zählt ?!
Mein Code:
Bin Java Neuling und für Tipps und Ratschläge sehr dankbar. Hoffe es ist verständlich formuliert jemand hat einen Ansatz oder eine Idee für mich.
Habe nirgendswo was gefunden und weiß keinen Rat mehr.
Danke schonmal im Voraus
ich hoffe mir kann jemand helfen. ich verzweifel langsam.
Was ich machen möchte:
Es werden Dateinamen aus einem Ordner mit einer bestimmten Endung in ein Array gelesen. (funktioniert)
Anschließend wird das Array bearbeitet mit replace und es wird [InputScript =] an einer bestimmten Stelle hinzugefügt. (funktioniert)
Jetzt möchte ich an der Stelle, an der das Leerzeichen zwischen InputScript und dem Gleichzeichen steht, eine fortlaufende Nummer einfügen, die bis 1000 gehen kann.
Wie mache ich das am gescheitesten?
Mein Ansatz war mit einer while Schleife und indexOf() die Stellen zu suchen an die Leerzeichen stehen und dort dann im StringBuilder mit insert() und deleteCharAt() das Leerzeichen zu ersetzen.
Ich habe das in meinem Code gemacht allerdings für eine bestimmte Anzahl an Dateien funktioniert dies nur. Diese kann jedoch immer variieren!! Daher müsste dies über schleifen oder if anweisungen geschrieben werden mit dem int count der ja die Dateien im Ordner zählt ?!
Mein Code:
Java:
public class Dateiinhalt bearbeiten {
static String aS;
static String aS2;
static String aS3;
static String aS4;
static String aS5;
static int count;
public static void main(String[] args) throws IOException {
File liste = new File("c:/input/");
// wenn der ausgewählte Pfad ein Ordner ist dann...
if ( liste.isDirectory() )
{
//Liste alle Dateien auf
String[] list = liste.list(new FilenameFilter()
{
public boolean accept (File wbjob, String name)
{
return name.endsWith(".wbjs");
}
});
count = list.length;
for(int i =0; i<list.length; i++)
{
aS = Arrays.toString(list);
aS3 = aS.replace(", " , "\r\n"+"InputScript =");
aS4 = aS3.replace("]", "");
aS5 =aS4.replace("[","InputScript1=");
}
//Versuch mit der While Schleife ?!
int j = aS5.indexOf(" ");
while(j >0)
{
System.out.println(j);
j=aS5.indexOf(" ", j+1);
}
//wie würde es hier dann weiter gehen ?
//so funktioniert es mit einer vorher festgelegten Anzahl an Dateien
int index1 = aS5.indexOf(" ");
int index2 = aS5.indexOf(" ",index1 + 1);
int index3 = aS5.indexOf(" ",index2 + 1);
int index4 = aS5.indexOf(" ",index3 + 1);
int index5 = aS5.indexOf(" ",index4 + 1);
int index6 = aS5.indexOf(" ",index5 + 1);
StringBuilder sb = new StringBuilder(aS5);
sb.insert(index1, 2);
sb.deleteCharAt(index1+1);
sb.insert(index2, 3);
sb.deleteCharAt(index2+1);
sb.insert(index3, 4);
sb.deleteCharAt(index3+1);
sb.insert(index4, 5);
sb.deleteCharAt(index4+1);
//so würde es weitergehen wenn man die Anzahl der Dateien weiß
//sb.insert(index5, 6);
//sb.deleteCharAt(index5+1);
//sb.insert(index6, 7);
aS5 = sb.toString();
}
//in neue Datei schreiben
String ein = null;
String aus = null;
String ausneu = null;
int Zeile = 1;
try
{
BufferedReader input = new BufferedReader(new InputStreamReader(new FileInputStream("c:/Test.txt")));
FileOutputStream Fileoutput = new FileOutputStream("C:/test_neu.txt");
PrintStream outFile = new PrintStream (Fileoutput);
while(input.ready())
{
ein = input.readLine();
aus = ein.replace("InputScript1=CalculationScript.wbjs", aS5);
ausneu =aus.replace("=1", "="+count);
Zeile++;
outFile.println(ausneu);
}
input.close();
}
catch (Exception e)
{
System.out.println(e);
System.out.println("--------Exception laden/schreiben!");
System.exit(0);
}
}
}
Habe nirgendswo was gefunden und weiß keinen Rat mehr.
Danke schonmal im Voraus
Zuletzt bearbeitet von einem Moderator: