Springen naar inhoud

C# process, pipe


  • Log in om te kunnen reageren

#1

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 10 maart 2008 - 16:58

Ik zou een schaakcomputer (winboard engine) moeten sturen vanuit C# door gebruik te maken van de Process class.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;

namespace testWB
{
	class Program
	{
		static void Main(string[] args)
		{
			Process Crafty = new Process();

			Crafty.StartInfo.FileName = "D:\\simon.exe";
			Crafty.StartInfo.UseShellExecute = false;
			Crafty.StartInfo.RedirectStandardOutput = true;
			Crafty.Start();
		}
	}
}

Nu geraak ik echter niet verder dan deze regels code. Ik zou nu dus invoer naar het proces moeten kunnen geven, en hiervan terug uitlezen. Weet er iemand hoe het verder moet, of waar ik iets kan vinden op het internet?
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

Bart

    Bart


  • >5k berichten
  • 7224 berichten
  • VIP

Geplaatst op 10 maart 2008 - 19:58

http://www.thescript...read751243.html
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

#3

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 10 maart 2008 - 20:02

Bedankt Bart. Tot nu toe lukt het al wel.
Ik heb uiteraard ineens een volgende vraag :D
Hoe kan ik weten of mijn pipe klaar is voor een nieuwe invoer?
Ik zie niet echt een functie die hier voor kan dienen

Veranderd door jhnbk, 10 maart 2008 - 20:03

Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

#4

Bart

    Bart


  • >5k berichten
  • 7224 berichten
  • VIP

Geplaatst op 10 maart 2008 - 20:11

Misschien dit? http://www.developer...uk/show/4519/2/

Sorry dat ik je niet meer kan helpen, maar ik heb maar beperkte ervaring in C#
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

#5

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 10 maart 2008 - 20:20

toch bedankt. De laatste link die je gaf was niet verduidelijkend

{
				s = reader.ReadLine();
				Console.WriteLine("{0}", s);
			} while (s != null);

Iets in deze stijl heb ik toegevoegd, maar het probleem is dat (althans zo denk ik) dat reader.Readline blijft wachten op een nieuwe lijn, die er helaas niet komt omdat de invoer terug moet starten
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

#6

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 11 maart 2008 - 18:53

Ik heb nog van alles geprobeerd, maar ik geraak er niet uit.

Ik heb nu:
StreamReader reader = p.StandardOutput;
StreamWriter writer = p.StandardInput;

toe gevoegd, maar nu zou ik nog moeten weten, tot waar ik mag inlezen, en wanneer het proces klaar is voor invoer
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.

#7

jhnbk

    jhnbk


  • >5k berichten
  • 6905 berichten
  • VIP

Geplaatst op 16 maart 2008 - 15:12

Ik heb mijn code aangepast door een nieuwe thread aan te maken die constant gegevens uitleest via een streamreader. Dit loopt allemaal heel vlot tot ik mijn code heb aangepast om te communiceren met maxima en GNU octave. Als ik een error maak voor octave bijvoorbeeld dan gaat die thread niets meer uitlezen, buiten lege strings (De thread stopt ook niet)
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures