Nakladka graficzna na progam dosowy

Odpowiedz Nowy wątek
2006-08-16 16:27
0

Witam ma program w dos-ie i jego algorytm jest skompliowany. A wiec postanowilem zrobic tylko nakladke graficzna na ten program. Program po wpisaniu komedy oddaje mi wszystkie potrzebne info. :-P a wiec jest dobrze. I teraz zaczynam wyjasnienie z czym mam problem.
Program taki bedzie dolaczony jako proces poprzez
Runtime r = Runtime.getRuntime();
Process proc = null;
try {
proc = r.exec("play.exe");
} catch (IOException e) {
System.out.println("Nie mozna uruchomic tego programu");
return;
}
dane czytane z konosli sa poprzez
BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
while(true){
try {
while((line = in.readLine()) != null){
System.out.println(line);
}
} catch (IOException e) {}
}
i teraz nie wiem jak zrobic zeby wpisywac komendy probowalem
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(proc.getOutputStream()));
out.write("komeda progamu");
Nie wiem czy sie do tego dobrze zabieram a wiec prosze o jakies rady lub linki. Najlepiej by bylo jakby ktos napias komplety programik zeby pobieral dane wej. i wypisaywa odp. z gory thx

Pozostało 580 znaków

2006-08-16 20:30
0

BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
while(true){
try {
while((line = in.readLine()) != null){
System.out.println(line);
}
} catch (IOException e) {}
}

Napisz dokladnie gdzie, co ma wypisywac i skad, bo troche niejasno napisales, ale jeszcze w tym fragmencie powyzej jest blad, bo masz tam while(true) z tej petli program nigdy nie wyjdzie,ta petla nie jest potrzeba ona pozna zatrzymaniem programu w tym miejscu to nic nie robi, wiec moze o to chodzi?

Pozostało 580 znaków

2006-08-16 22:53
0

napisalem troche nie jasno bo mam malo info. jak by zrobic ten program. :/
petla o ktorej mowisz jest nie skonczona bo tak ma byc.

Runtime r = Runtime.getRuntime();
Process proc = null;
try {
    proc = r.exec("play.exe");
 } catch (IOException e) {
          System.out.println("Nie mozna uruchomic tego programu");
          return;
}

BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
wyjpetla:
while(true){ // petla nie skonczona
    try {
            while((line = in.readLine()) != null){ // informacje z konsoli
                    System.out.println(line); // wypisanie info. [np textarea]
            }
            //  << w tym miejsciu powinna byc mozliwosc wypisywanie komendy i wlasnie nie wiem w jaki            
            //sposob to osiagnac
            // a jak sie pytasz jak bede wychodzil z petli to tak 
            if(wyjscie)
                     break wyjpetla;
    } catch (IOException e) {}                

}
program w okienku konsowlowym wypisuje jakies dane a pozniej trzeba wpisac komende zeby uzyskac nastepne dane a wiec musi byc petla nieskonczona [to juz chyba wyjasnilem]. a wiec prosilbym zeby ktos mi napisal to co ma byc w petli while.

Pozostało 580 znaków

2006-08-17 00:02
0

ok wszystko co bylo pisane wczesniej jest juz przeszloscia i nie czytajcie tego :-)
tutaj jest taki maly programik ktory pokazuje jak mozna przechwytywac inputstream i wpiswyca outputstream :)
import java.lang.;
import java.io.
;
class Trial{
public static void main(String args[]){
try{
int a=0;
Runtime r;
Process p;
r = Runtime.getRuntime();
p = r.exec("cmd.exe");
DataOutputStream dos = new DataOutputStream(p.getOutputStream());
dos.writeBytes("dir\n");
dos.flush();
DataInputStream dis = new DataInputStream(p.getInputStream());
String s = null;
while( (s=dis.readLine()) != null)
{
System.out.println(s);
}
p.destroy();
System.out.println("after destroy");

} catch (Exception e){
e.printStackTrace();
}
}
}

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0