Hallo zusammen,
ich stehe gerade vor einem Problem mit einer while-Schleife. Das Java-Skript ist Teil eines Projektes mit der CFD-Software STAR CCM+.
Ziel ist es, zu testen, ob eine Datei im Ordner vorhanden ist, und wenn nicht, zu warten, bis die Datei vorhanden ist und dies bei jeder Iteration des Berechnungsprozesses.
Wenn die Datei bereits vorhanden ist, gibt es einige Anweisungen zu befolgen.
Mit dem obigen Code funktioniert das Makro so lange, bis sich der benötigte Code nicht im Ordner befindet, und dann wartet die Software auf die Datei
Wenn ich die benötigte Datei in den Ordner kopiere, sollte der Java-Code fortgesetzt werden und bei jeder Iteration denselben Prozess durchlaufen.
Das Problem ist, die "InterruptedException" zu setzen, um den Prozess innerhalb der For-Schleife fortzusetzen, wenn die benötigte Datei in den Ordner kopiert wird.
Der Code lautet wie folgt:
Vielen Dank im Voraus,
Max
ich stehe gerade vor einem Problem mit einer while-Schleife. Das Java-Skript ist Teil eines Projektes mit der CFD-Software STAR CCM+.
Ziel ist es, zu testen, ob eine Datei im Ordner vorhanden ist, und wenn nicht, zu warten, bis die Datei vorhanden ist und dies bei jeder Iteration des Berechnungsprozesses.
Wenn die Datei bereits vorhanden ist, gibt es einige Anweisungen zu befolgen.
Mit dem obigen Code funktioniert das Makro so lange, bis sich der benötigte Code nicht im Ordner befindet, und dann wartet die Software auf die Datei
Wenn ich die benötigte Datei in den Ordner kopiere, sollte der Java-Code fortgesetzt werden und bei jeder Iteration denselben Prozess durchlaufen.
Das Problem ist, die "InterruptedException" zu setzen, um den Prozess innerhalb der For-Schleife fortzusetzen, wenn die benötigte Datei in den Ordner kopiert wird.
Der Code lautet wie folgt:
Java:
package macro;
import java.util.*;
import java.io.*;
import star.common.*;
import star.base.neo.*;
import star.energy.*;
import star.vis.*;
public class Exchange_Table_TimeStep_with_wait extends StarMacro {
public void execute() {
execute0();
}
synchronized private void execute0() {
Simulation simulation_0 = getActiveSimulation();
double Time_step = 1.0;
double Maximum_Physical_Time = 4.0;
double n = Maximum_Physical_Time/Time_step;
// Load the data (table)
for (int i=0; i <= n-1; i++){
// Get the file in the folder
File f = new File("V:\\FOLDER\\Temperature_Grid1_"+i+".csv");
while (!f.isFile())
{
try {
wait();
}
catch (InterruptedException e){
e.printStackTrace();
}
}
simulation_0.println("File available");
FileTable fileTable_0 =
(FileTable) simulation_0.getTableManager().createFromFile(resolvePath("Temperature_Grid1_"+i+".csv"));
simulation_0.getSimulationIterator().run(1,true);
simulation_0.println("Value of i is "+i);
}
}
}
Vielen Dank im Voraus,
Max