Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 118

Вывод текста из label в txt

29.04.2022, 19:23. Показов 2465. Ответов 59
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я написал код для вывода текста из lable в txt, но есть проблема. У меня игра пятнашки, есть таймер который записывает время прохождение игры, таймер пишется в lable, каждый раз когда я побеждаю таймер останавливается и записывается txt файл 1 раз, но когда я нажимаю играть снова, то старый результат не сохраняется, а записывается новый, что нужно добавить чтобы записывалися все результаты?
Вот сам код вывода из lable в txt :
File.WriteAllText("C:\\Users\\Kiki\\Desk top\\txt.txt", label1.Text);
Что же нужно еще дописать?
Миниатюры
Вывод текста из label в txt  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.04.2022, 19:23
Ответы с готовыми решениями:

Вывод текста Label из залитого txt на FTP
Привет! Мне нужно чтобы на форме было: Label1 - Вывод текста из залитого txt на фтп Button - Кнопка обновить!(По её нажатию...

Сортировка текста из text.txt вывод в label
сделал оконное приложение для опроса данных c устройства. Приложение сохраняет его в текстовый файл. Теперь надо нужные элементы в тексте...

Вывод текста из файла .txt на label
Здравствуйте. У меня есть файл в котором есть такая последовательность строк: Заголовок 1 Пункт 1 Пункт 2 Пункт 3 Заголовок...

59
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
29.04.2022, 21:05
Лучший ответ Сообщение было отмечено Yury Komar как решение

Решение

Цитата Сообщение от Kiki2018 Посмотреть сообщение
Что же нужно еще дописать?
Для начала открыть документацию и убедиться, что ваш метод вам не подходит: https://docs.microsoft.com/ru-... mework-4.8
File.WriteAllText Метод

Создает новый файл, записывает в него содержимое и затем закрывает файл. Если целевой файл уже существует, он будет переопределен.
Далее там же найти более подходящий вариант: https://docs.microsoft.com/ru-... mework-4.8
File.AppendAllText Метод

Добавляет указанную строку в файл, создавая файл, если он не существует.
В итоге это будет так:
C#
1
File.AppendAllText("C:\\Users\\Kiki\\Desktop\\txt.txt", label1.Text);
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 118
30.04.2022, 13:06  [ТС]
John Prick, А как сделать чтобы оно было не в ряд а в столбец
0
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
30.04.2022, 13:58
Цитата Сообщение от Kiki2018 Посмотреть сообщение
John Prick, А как сделать чтобы оно было не в ряд а в столбец
Добавить перенос строки
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 118
30.04.2022, 15:49  [ТС]
John Prick, Cпасибо, а не подскажете, как мне отсортировать результат, от худшего к лучшему?

Добавлено через 10 минут
John Prick, Не пойму просто как можно отсортировать таймер
0
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
30.04.2022, 21:44
Цитата Сообщение от Kiki2018 Посмотреть сообщение
John Prick, Cпасибо, а не подскажете, как мне отсортировать результат, от худшего к лучшему?

Добавлено через 10 минут
John Prick, Не пойму просто как можно отсортировать таймер
Сохранять время в какую-нибудь коллекцию и вызывать у неё метод Sort().
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 118
30.04.2022, 21:56  [ТС]
John Prick, Сортировку времени я уже решил, а вот я не могу сделать количество шагов, я сделал только так, что если нажимать просто на кнопку, то оно будет щитать это как за шаг.

Добавлено через 29 секунд
Это основной клас
using Timer = System.Windows.Forms.Timer;
using System.IO;

namespace Курсова_робота
{
public partial class FormGame : Form
{
Game game;
DateTime date;

public FormGame()
{
InitializeComponent();
game = new Game(4);
}

int count = 0;

private void button7_Click(object sender, EventArgs e)
{
int position = Convert.ToInt16(((Button)sender).Tag);
game.shift(position);
label2.Text = ("Кількість кроків: ", ++count).ToString();
refresh();
if (game.check_numbers())
{
timer1.Stop();
count = 0;
MessageBox.Show("Ви перемогли!", "Вітання");
MessageBox.Show(
" Час: " + label1.Text + "\n" + "Кроків: " + label2.Text,
"Статистика гри "
);
;
String path = "C:\\Users\\Kiki\\Desktop\\txt.txt";
File.AppendAllText(path, label1.Text + "\n");
}
}

private Button button(int position)
{
switch (position)
{
case 0:
return button0;
case 1:
return button1;
case 2:
return button2;
case 3:
return button3;
case 4:
return button4;
case 5:
return button5;
case 6:
return button6;
case 7:
return button7;
case 8:
return button8;
case 9:
return button9;
case 10:
return button10;
case 11:
return button11;
case 12:
return button12;
case 13:
return button13;
case 14:
return button14;
case 15:
return button15;
default:
return null;
}
}

private void tickTimer(object sender, EventArgs e)
{
long tick = DateTime.Now.Ticks - date.Ticks;
DateTime stopWatch = new DateTime();
stopWatch = stopWatch.AddTicks(tick);
label1.Text = string.Format("{0:HH:mm:ss:fff}", stopWatch);
}

private void Menu_start_Click(object sender, EventArgs e)
{
start_game();
count = 0;
label2.Text = null;
}

private void start_game()
{
date = DateTime.Now;
timer1.Interval = 10;
timer1.Enabled = true;
game.start();
for (int j = 0; j < 5; j++)
game.shift_random();
refresh();
}

private void refresh()
{
for (int position = 0; position < 16; position++)
{
int nr = game.get_number(position);
button(position).Text = nr.ToString();
button(position).Visible = (nr > 0);
}
}

private void FormGame_Load(object sender, EventArgs e)
{
start_game();
}

public TimeSpan Check()
{
String path = "C:\\Users\\Kiki\\Desktop\\txt.txt";
string[] lines = File.ReadAllLines(path);

List<TimeSpan> time = lines
.Select(x => TimeSpan.ParseExact(x, @"hh\:mm\:ss\:fff", null))
.ToList();
var max = time.Max();
var min = time.Min();
return min;
}

private void статистикаToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Найкращий час: " + Check());
}
}
}

Добавлено через 33 секунды
John Prick,
Это клас гейм
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Курсова_робота
{
internal class Game
{
int size;
int[,] map;
int space_x, space_y;
static Random rand= new Random();
public Game(int size)
{
if (size < 2) size = 2;
if (size > 5) size = 5;
this.size = size;
map = new int[size, size];
}
public void start()
{
for (int x = 0; x < size; x++)
for (int y = 0; y < size; y++)
map[x, y] = coords_to_position(x, y) + 1;
space_x = size - 1;
space_y = size - 1;
map[space_x, space_y] = 0;
}


public void shift(int position)
{
int x, y;
position_to_coords(position, out x, out y);
if (Math.Abs(space_x - x) + Math.Abs(space_y - y) != 1)
return;
map[space_x, space_y]=map[x, y];
map[x,y] = 0;
space_x = x;
space_y= y;
}
public void shift_random()
{
int a = rand.Next(0, 4);
int x = space_x;
int y = space_y;
switch (a)
{
case 0:x--; break;
case 1:x++; break;
case 2:y--; break;
case 3:y++; break;
}
shift(coords_to_position(x,y));
}
public bool check_numbers ()
{
if(!(space_x==size-1 &&
space_y==size-1))
return false;
for (int x=0; x<size ; x++)
for(int y=0; y<size ; y++)
if(!(x == size-1 && y == size-1))
if(map[x, y] != coords_to_position(x, y) + 1)
return false;
return true;
}
public int get_number(int position)
{
int x, y;
position_to_coords(position, out x, out y);
if (x < 0 || x >= size) return 0;
if (y < 0 || y >= size) return 0;
return map[x, y];
}



private int coords_to_position(int x, int y)
{
if(x<0) x = 0;
if(x>size-1) x=size-1;
if(y<0) y = 0;
if(y>size-1) y=size-1;
return y * size + x;
}
private void position_to_coords(int position, out int x, out int y)
{
if(position<0) position=0;
if(position>size*size-1) position=size=size*size-1;
x = position % size;
y = position / size;
}
}
}

Добавлено через 1 минуту
John Prick, Этим я щитаю так скажем коилчество кликов
label2.Text = ("Кількість кроків: ", ++count).ToString();

Добавлено через 1 минуту
John Prick, Но мне надо коиличество перемищений, я знаю что у меня перемищение это game.shift(position), но как бы я не писал через if этот game.shift(position) мне выдает ошибку, я типо хочу написать то, что если планки двигаються, то оно должно считать мне шаги
0
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
30.04.2022, 22:11
Добавь в класс Game событие
C#
1
public event Action OnShift;
и вызывай его, когда происходит перемещение:
C#
1
2
3
4
5
6
public shift(int position)
{
    // ...
    if (OnShift != null)
        OnShift();
}
На форме после создания game добавь обработчик этого события:
C#
1
2
game = new Game();
game.OnShift += () => { ++count; }
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 118
30.04.2022, 22:20  [ТС]
Вот такое выдает
Миниатюры
Вывод текста из label в txt  
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 118
30.04.2022, 22:22  [ТС]
John Prick, Ошбики только в последних двох строках
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 118
30.04.2022, 22:32  [ТС]
Я чот попытался исравить, но вот что выдает
Миниатюры
Вывод текста из label в txt  
0
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
30.04.2022, 22:36
Ну ошибку с точкой с запятой уж можно самому исправить? А game создавайте как и раньше, там какой-то параметр был, я не заметил.
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 118
30.04.2022, 22:38  [ТС]
Мне надо было его в game.load? или после game=new Game(4);?
John Prick,
using Timer = System.Windows.Forms.Timer;
using System.IO;

namespace Курсова_робота
{
public partial class FormGame : Form
{
Game game;
DateTime date;

public FormGame()
{
InitializeComponent();
game = new Game(4);

}

int count = 0;

private void button7_Click(object sender, EventArgs e)
{
int position = Convert.ToInt16(((Button)sender).Tag);
game.shift(position);
label2.Text = ("Кількість кроків: ", ++count).ToString();
refresh();
if (game.check_numbers())
{
timer1.Stop();
count = 0;
MessageBox.Show("Ви перемогли!", "Вітання");
MessageBox.Show(
" Час: " + label1.Text + "\n" + "Кроків: " + label2.Text,
"Статистика гри "
);
;
String path = "C:\\Users\\Kiki\\Desktop\\txt.txt";
File.AppendAllText(path, label1.Text + "\n");
}
}

private Button button(int position)
{
switch (position)
{
case 0:
return button0;
case 1:
return button1;
case 2:
return button2;
case 3:
return button3;
case 4:
return button4;
case 5:
return button5;
case 6:
return button6;
case 7:
return button7;
case 8:
return button8;
case 9:
return button9;
case 10:
return button10;
case 11:
return button11;
case 12:
return button12;
case 13:
return button13;
case 14:
return button14;
case 15:
return button15;
default:
return null;
}
}

private void tickTimer(object sender, EventArgs e)
{
long tick = DateTime.Now.Ticks - date.Ticks;
DateTime stopWatch = new DateTime();
stopWatch = stopWatch.AddTicks(tick);
label1.Text = string.Format("{0:HH:mm:ss:fff}", stopWatch);
}

private void Menu_start_Click(object sender, EventArgs e)
{
start_game();
count = 0;
label2.Text = null;
}

private void start_game()
{
date = DateTime.Now;
timer1.Interval = 10;
timer1.Enabled = true;
game.start();
for (int j = 0; j < 5; j++)
game.shift_random();
refresh();
}

private void refresh()
{
for (int position = 0; position < 16; position++)
{
int nr = game.get_number(position);
button(position).Text = nr.ToString();
button(position).Visible = (nr > 0);
}
}

private void FormGame_Load(object sender, EventArgs e)
{
start_game();
game= new Game();
game.OnShift += () => { ++count; };

}

public TimeSpan Check()
{
String path = "C:\\Users\\Kiki\\Desktop\\txt.txt";
string[] lines = File.ReadAllLines(path);

List<TimeSpan> time = lines
.Select(x => TimeSpan.ParseExact(x, @"hh\:mm\:ss\:fff", null))
.ToList();
var max = time.Max();
var min = time.Min();
return min;
}

private void статистикаToolStripMenuItem_Click(object sender, EventArgs e)
{
MessageBox.Show("Найкращий час: " + Check());
}
}
}
0
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
30.04.2022, 22:41
C#
1
2
3
4
5
6
public FormGame()
{
InitializeComponent();
game = new Game(4);
// Вот сюда
}
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 118
30.04.2022, 22:43  [ТС]
John Prick,
Ну я сделал так как вы написали, при нажатии на любую кнопку оно начинает счет с 5, и даже при нажатии на любую кнопку итак считает как клик а не как перемещение((

Добавлено через 27 секунд
John Prick, Я так и сделал, но не работает
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 118
30.04.2022, 22:44  [ТС]
John Prick,
Я кликаю на любую кнопку 1 раз и...
Миниатюры
Вывод текста из label в txt  
0
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
30.04.2022, 22:52
Цитата Сообщение от Kiki2018 Посмотреть сообщение
John Prick, Этим я щитаю так скажем коилчество кликов
label2.Text = ("Кількість кроків: ", ++count).ToString();

Добавлено через 1 минуту
John Prick, Но мне надо коиличество перемищений, я знаю что у меня перемищение это game.shift(position), но как бы я не писал через if этот game.shift(position) мне выдает ошибку, я типо хочу написать то, что если планки двигаються, то оно должно считать мне шаги
Я ориентировался на это. Думал, вам надо посчитать сколько раз вызывалась game.shift.
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 118
30.04.2022, 22:59  [ТС]
John Prick, Мне нужно колисество шагов, типо когда я делаю ход, то мне должно считать его, но когда я нажимаю на кнопку которая не может никуда походить, то оно не должно считать ходы.

Добавлено через 41 секунду
Нужен одним словом счётчик перемещений на пустое место кнопки
0
2394 / 1923 / 763
Регистрация: 27.07.2012
Сообщений: 5,567
30.04.2022, 23:12
Цитата Сообщение от Kiki2018 Посмотреть сообщение
John Prick, Мне нужно колисество шагов, типо когда я делаю ход, то мне должно считать его, но когда я нажимаю на кнопку которая не может никуда походить, то оно не должно считать ходы.

Добавлено через 41 секунду
Нужен одним словом счётчик перемещений на пустое место кнопки
Значит вызывайте это событие только тогда, когда кнопка переместилась.

Добавлено через 9 минут
Все остальные изменения счётчика уберите. Если надо его выводить каждый раз при изменении, то там же, в обработчике события OnShift, выводите счётчик в label.
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 118
30.04.2022, 23:20  [ТС]
John Prick, Как єто програмно написать, не понял просто как (Извините что туплю, я не совсем просто программист, а курсовая у нас по программированию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.04.2022, 23:20
Помогаю со студенческими работами здесь

Вывод в Label с ограничением количества символов и переносом остатка текста в следующий Label
Добро :senor: У меня на форме есть три Labela, расположены они в разных местах и имеют ограничения по количеству символов (Label1 - 5...

Считывание текста из txt-файла в Label
просмотрел разные темы на форуме, но к сожалению ничего не нашёл ИМЕННО по моему вопросу, а необходимо сделать следующее: есть 5...

Вывод в Label нужной строки .*txt
как вывести в label например строку 18 и именно выделенный текст.. в данном случаи ip?

Поиск текста в .txt и вывод этого текста в консоль
Доброе время суток! Задали в универе написать программу (база данных книг) которая сохраняет вводимую информацию в .txt файле. Функцию...

Вывод текста в Label
Помогите доделать код, необходимо чтобы в label поместилось слово супер + след строчка. Как сделать что бы во все label помещались разные...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru