Итак, я создал программу на C #, которая в основном отслеживает статистику для игры в бейсбол / софтбол, и все, что я хочу сделать, это создать «игровой журнал», который выводит основные моменты в игре в файл. Так, например, хотя я хочу, чтобы вывод на консоль запрашивал мои команды и тому подобное (и хотя я все еще хочу, чтобы он также отображал события в игре), я также хочу записывать такие внутриигровые события, как поля, мячи включите в игру, кто забьет и т. д. в один конкретный файл, который я обозначу.
Я пытался использовать StreamWriter, но проблемы:
- Я могу только разрешить вывод текста на консоль или в файл.
- Я не хочу, чтобы весь моего текста выводился в файл, только определенные события.
Итак, вот как выглядит пример вывода моего кода на консоли (выделенные жирным шрифтом разделы - это то, чем я хочу быть в назначенном выходном файле AS WELL в качестве консоли, выделенные курсивом разделы - мой ввод). Обратите внимание, что этот макет работает не совсем так, как я хотел, но на моей консоли он выглядит отлично:
R H E LOB
Lady Sharks 0 0 0 0
Home Team 0 0 0 0
**Top 1**, 0 outs.
1B:
2B:
3B:
**1) K. Robinson #7** -- Today: 0 for 0
Count 0-0: *b*
**Ball.**
Count 1-0: *f*
**Foul Ball.**
Count 1-1: *p*
Ball is put in play.
Enter hit type (g/f): *g*
Enter hit zone (1-6): *4*
Enter result.
Choose from: 1b, 2b, 3b, hr, g, f, sh, sf, fc, e, gdp, di, bi
*1b*
Did the batter-runner advance any extra bases?
**In play, no out.
(1-1) K. Robinson singles on a ground ball to left field. 0 out.**
R H E LOB
Lady Sharks 0 1 0 0
Home Team 0 0 0 0
Top 1, 0 outs.
1B: K. Robinson #7
2B:
3B:
**2) S. Ribeiro #9** -- Today: 0 for 0
Count 0-0: *s*
**Swinging Strike.**
Count 0-1: *f*
**Foul Ball.**
Count 0-2: *s*
**Swinging Strike.**
Batter strikes out swinging. Confirm? (y/n)
*y*
Update status of runner on 1st, #7.
Batter may have reached base on exception. Indicate how many bases traveled with
"+" signs.
This will result in an out. Are you sure? (y/n)
*y*
**(0-2) S. Ribeiro strikes out swinging. 1 out.**
R H E LOB
Lady Sharks 0 1 0 0
Home Team 0 0 0 0
Top 1, 1 out.
1B: K. Robinson #7
2B:
3B:
**3) B. Sutton #11 -- Today: 0 for 0**
Count 0-0: *b*
**Ball.**
Count 1-0: *b*
**Ball.**
Count 2-0: *sb*
Select which base the runner attemped to steal from.
*1*
Runner steals second base. Confirm? (y/n)
*y*
**K. Robinson steals second base.**
R H E LOB
Lady Sharks 0 1 0 0
Home Team 0 0 0 0
Top 1, 1 out.
1B:
2B: K. Robinson #7
3B:
3) B. Sutton #11 -- Today: 0 for 0
Count 2-0: *p*
Ball is put in play.
Enter hit type (g/f): *g*
Enter hit zone (1-6): *3*
Enter result.
Choose from: 1b, 2b, 3b, hr, g, f, sh, sf, fc, e, gdp, di, bi
*sh*
Update status of runner on 2nd, #7.
*+*
Batter may have reached base on exception. Indicate how many bases traveled with
"+" signs.
This will result in an out. Are you sure? (y/n)
*y*
**In play, out(s).
(2-0) B. Sutton out on a sacrifice bunt. K. Robinson to 3rd. 2 outs.**
R H E LOB
Lady Sharks 0 1 0 0
Home Team 0 0 0 0
Top 1, 2 outs.
1B:
2B:
3B: K. Robinson #7
**4) S. Van Belleghem #29** -- Today: 0 for 0
Count 0-0: *p*
Ball is put in play.
Enter hit type (g/f): *f*
Enter hit zone (1-6): *5*
Enter result.
Choose from: 1b, 2b, 3b, hr, g, f, sh, sf, fc, e, gdp, di, bi
*f*
Update status of runner on 3rd, #7.
Middle of 1
**0 runs, 1 hit, 0 errors, 1 left on base**
Due up:
1) #1
2) #5
3) #3
Press enter to continue to Bottom 1.
Итак, еще раз, я хочу, чтобы эти полужирные части были записаны в файл, называемый, скажем, «Game 7 Log». Затем я сделаю по одному для каждой игры, чтобы я мог хранить эти записи каждой игры, шаг за шаг и тесто для теста. Если кто-нибудь знает, как я могу поместить эти выбранные тексты в файл, не вынимая никакой информации на моей консоли, спасибо!