Einzelnen Beitrag anzeigen

moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Das b(l)ockige ReadLn einer Konsolenanwendung - Workaround?

  Alt 31. Mär 2010, 12:58
Moin !

Zum Testen nutze ich dann und wann gerne Konsolenanwendungen. Die sind schnell geschrieben und bei einigen Dingen ganz praktisch.

Jüngst habe ich mir eine Konsolenanwendung geschrieben mit einem TIdTCPClient. Im Grund soll die Anwendung Kommandos an den Server senden und das Feedback des Servers ausgeben.

Das Auslesen des Server Feedbacks geschieht in einem eigenen Thread und funktioniert auch ganz gut. In der Anwendung gibt es dann diese Stelle hier:
Delphi-Quellcode:
    while Input <> 'qdo begin
      Write('--> ');
      Readln(Input);
      Client.IOHandler.WriteLn(Input);
    end;
Ich lese was ein und schreibe es weg zum Server. Auch das funktioniert. ABER ... Das Readln blockt die Ausgabe in die Console. Selbst wenn der Thread Daten zum Auslesen bekommt, so werden diese nicht dargestellt. Letztlich macht der Thread ein WriteLn(Msg);.

Gibt es einen Weg um dieses ReadLn Dilemma zu umgehen?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat