2010-07-30 6 views
1

Je dois écrire un fichier dans STDIN. Ce FILE va être accédé par un autre EXE qui va écrire le flux STDIN dans un microcontrôleur.Comment écrire un fichier sur STDIN Stream en utilisant DELPHI?

Pourriez-vous m'aider à écrire le fichier sur STDIN en utilisant Delphi 2010?

Merci beaucoup! Je pense que vous voulez dire STDOUT.

+1

Vous pouvez * lire STDIN * et * écrire sur STDOUT *. –

+0

@Andreas: Je crois qu'il veut dire "écrire sur une sortie qui sert de STDIN pour un autre processus." –

+0

@Mason: Oh, oui, très possible, en effet. –

Répondre

2

Il semble que vous essayez d'écrire sur un type de sortie que l'autre EXE verra comme son flux STDIN. Dans ce cas, la réponse d'Allen Bauer mentionnée par Serg est proche, mais ça ne suffira pas pour vous.

Il ya quelques sample code on MSDN qui explique comment faire cela, mais tout est en C et difficile à lire. La partie importante est la suivante:

Appelez CreatePipe, qui est déclaré dans Windows.pas. Les deux premiers paramètres sont les paramètres var aux variables THandle que CreatePipe remplira avec le handle de lecture et le handle d'écriture du tube. Ensuite, vous devez configurer un enregistrement TStartupInfo. Affectez le handle de lecture à votre canal au champ hStdInput du TStartupInfo.

Vous transmettez TStartupInfo à CreateProcess pour engendrer le deuxième EXE, puis vous pouvez créer un THandleStream comme dans l'exemple d'Allen, en lui passant le handle d'écriture du canal. De cette façon, tout ce que vous écrivez dans le flux est redirigé vers l'extrémité de lecture pour être lu par l'autre fichier EXE.

Espérons que cela aide ...

+0

Si la question concerne les tuyaux, regardez les réponses à la question SO http://stackoverflow.com/questions/512366/how-do-i-send-a-string-from-one-instance-of-my-delphi -programme-à-un autre – kludg

Questions connexes