ďťż

Ładny brzuch

Ponieważ dużo pisze programow, ktore czesto wymagaja duzej ilosc ilosci sprawdzen pod roznymi testami, czy daja dobre wyniki, to postanowiłem sobie te czynnosc zautomatyzowac. Mianowicie postanowilem napisac w Delphi program ktory odpali program do przetestowania z ustalonymi danymi wejsciowymi, a nastepnie wypisze czy i ktore testy nie zostaly spelnione (czyli ktore nie beda sie zgadzaly z wzorcem). Jednak napotkałem na problem: mianowicie jak pobrac to co w danej chwili zostaje wyswietlone w konsoli?



link 1, link 2
Może Ci się przyda :)

Ok przydało sie thx :)
Ale pojawił sie nowy problem, o ktorym myslalem ze go wogole nie bedzie :P Mianowicie jak uruchomic ten program tak, by pobierał dane wejsciowe np. z pliku 1.txt? Bo jak mialem normalnie program uruchamiany w konsoli to pisalem 1.exe<1.txt i bylo... A jak teraz dorzucilem jako parametr linijke "<1.txt" to nie dziala, nie pobiera tych danych.

link
procedure TForm1.FormCreate(Sender: TObject); begin if ParamCount > 0 then Memo1.Lines.LoadFromFile(ParamStr(1)); end;




link
procedure TForm1.FormCreate(Sender: TObject); begin if ParamCount > 0 then Memo1.Lines.LoadFromFile(ParamStr(1)); end;


Nie, nie o to mi chodziło. Chyba nie dokładnie wyjasnilem o co mi biega... Mianowicie chodzi mi o to, że ten program który pisze w Delphi to on ma robic jako tester do programow napisach obojetnie w jakich jezykach (w moim przypadku C++). Ten tester ma wczytac z zadanego pliku dane wejsciowe (to umiem zrobic :D ) i puszczac je na ten program ktory chce przetestowac czyli ten w C++. Normalnie to ja to robie tak, ze odpalam konsolke a w niej odpalam ten program w c++ w np. taki sposob: program.exe<dane.txt. Wtedy ten progs zamiast z klawiatury pobiera dane z pliku dane.txt. Żeby sobie te czynnosc zautomatyzowac (czyli nie wlaczac i pisac duzo w konsoli) to robie tego testera w Delphi. I teraz jak przy pomocy funkcji, ktora mi podales w pierwszym poscie odpalam ten program (ten w c++), dopisujac jako parametr <dane.txt. Ale niestety wtedy ten progs nie czyta tych danych.

czyli chcesz po prostu uruchomić zewnętrzny, konsolowy program z parametrem? :) Do uses dodaj sobie ShellAPI i użyj wywołania ShellExecute, z odpowiednią wartością w lpParameters. :)
--
Sorry, nie tak:D
Użyj tej funkcji, na końcu masz napisane:

{ przykład }
// C: - lokalizacja programu konsolowego w tym przypadku dysk C:
// cmd.exe - nazwa programu w tym przypadku cmd.exe
// /c dir - parametr dla danego programu
// raport.txt - nazwa pliku raportującego
// true - po zakończeniu nie usuwaj plik raportujący

czyli spróbuj po prostu bez "<" :)
Użytkownik bl4ckh4t edytował ten post 30 styczeń 2008, 21:37
Probowalem juz tak i na kilka innych sposobow ale dalej nie dziala :(

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •