Я хотел бы сохранить значение int (увеличивается при каждом нажатии кнопки) в файле .txt для каждого человека.
Я не знаю, как сохранить значение кнопки каждого человека при нажатии. Это то, что я придумал. Нужна помощь в этом.
Актуальный вопрос: Каждый, кто голосует, должен иметь возможность видеть общее количество голосов, а также голос каждого кандидата. Вы должны использовать файл для записи голосования.
@{
var dataFile = Server.MapPath(@"~/App_Data/data.txt");
string[] votesArr = File.ReadAllText(dataFile).Split(','); // your path
string toWrite = "";
for (int i = 0; i < votesArr.Length; i += 2)
{
if (votesArr[i].Equals("Harry")) // Equals here is hardcoded, replace with parameter
{
votesArr[i + 1] = "" + (Int32.Parse(votesArr[i + 1]) + 1);
}
else if (votesArr[i].Equals("John")) // Equals here is hardcoded, replace with parameter
{
votesArr[i + 1] = "" + (Int32.Parse(votesArr[i + 1]) + 1);
}
else if (votesArr[i].Equals("May")) // Equals here is hardcoded, replace with parameter
{
votesArr[i + 1] = "" + (Int32.Parse(votesArr[i + 1]) + 1);
}
else if (votesArr[i].Equals("Jane")) // Equals here is hardcoded, replace with parameter
{
votesArr[i + 1] = "" + (Int32.Parse(votesArr[i + 1]) + 1);
}
toWrite += votesArr[i] + votesArr[i + 1];
}
File.WriteAllText(dataFile, toWrite);
}<!DOCTYPE html>
<html>
<head>
<title>Elections</title>
</head>
<body>
<p id = "1">Harry</p>
<input id = "1" type = "submit" value = "Vote Harry">
<p id = "2">John</p>
<input id = "2" type = "submit" value = "Vote John">
<p id = "3">May</p>
<input id = "3" type = "submit" value = "Vote May">
<p id = "4">Jane</p>
<input id = "4" type = "submit" value = "Vote Jane">
</body>
</html>


![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать, например, формат для текста.
Гарри, 0, Джон, 1, 2 мая, Джейн, 3 года
Затем вы можете разделить запятыми, и нечетные значения будут именами, а пара будет голосами.
Таким образом, вы можете использовать нечетный для поиска совпадения кандидатов, а затем нечетный + 1, чтобы получить значение голосов. Вам нужно переписать это новое голосование на свою позицию и снова написать строчку.
Вам нужно искать.
string[] votesArr = File.ReadAllText("path").Split(','); // your path
string toWrite = "";
for (int i = 0; i < votesArr.Length -2; i += 2)
{
if (votesArr[i].Equals("May")) // Equals here is hardcoded, replace with parameter
votesArr[i + 1] = "" + (Int32.Parse(votesArr[i + 1]) + 1);
toWrite += votesArr[i] + votesArr[i+1];
}
File.WriteAllText("path", toWrite);
я отредактировал свой пост. Можете ли вы помочь мне увидеть, если это где-то вдоль линии?
Если вы хотите проверить, пуста ли строка, я думаю, вы можете сохранить ее в строке и проверить ее длину перед разделением.
я сделал еще несколько изменений. Однако, когда я компилирую... он говорит System.IndexOutOfRangeException: "Индекс был за пределами массива".
Я обновил эту строку for(int i = 0; i < votesArr.Length -2; i += 2) Это может быть причиной OutOfRangeException. Если вы хотите, вы можете поделиться своим кодом, чтобы проверить его лучше :)
Это похоже на домашнее задание, если это так, пожалуйста, просмотрите meta.stackoverflow.com/questions/334822/… для некоторой коллективной мудрости сайта.