Шифрование текста C#
Есть таблица, в заголовках столбцов стоят буквы, а в строке цифры, соответственно нужно зашифровать. Цикл работает, если для одной буквы существует одна цифра. А если я добавляю вторую строку с цифрами, т.е. для какой-то буквы может соответствовать одна цифра, а для какой-то две. Вот когда для буквы А скажем соответствует и 1, и 2. как каждый раз разную выбирать? Набросок цикла такой:
Код:
for (int i = 0; i < textBox1.Text.Length; i++)
{
foreach (DataGridViewColumn col in dataGridView1.Columns)
if (col.HeaderText == textBox1.Text[i].ToString())
{
result += dataGridView1.CurrentRow.Cells[col.Index].Value;
//result += rnd.Next();
}
}
listBox1.Items.Add(result);
{
foreach (DataGridViewColumn col in dataGridView1.Columns)
if (col.HeaderText == textBox1.Text[i].ToString())
{
result += dataGridView1.CurrentRow.Cells[col.Index].Value;
//result += rnd.Next();
}
}
listBox1.Items.Add(result);
Код:
var text = textBox1.Text;
for (int i = 0; i < text.Length; i++){
var letter = text[i].ToString();
foreach (var column in dataGridView1.Columns)
if (column.HeaderText == letter){
var cellValue = dataGridView1.CurrentRow.Cells[col.Index].Value.ToString();
var values = cellValue.Split(' ');// Если разделитель - пробел
var index = rnd.Next(values.Lenght);
result += values[index];
}
}
listBox1.Items.Add(result);
for (int i = 0; i < text.Length; i++){
var letter = text[i].ToString();
foreach (var column in dataGridView1.Columns)
if (column.HeaderText == letter){
var cellValue = dataGridView1.CurrentRow.Cells[col.Index].Value.ToString();
var values = cellValue.Split(' ');// Если разделитель - пробел
var index = rnd.Next(values.Lenght);
result += values[index];
}
}
listBox1.Items.Add(result);
Цитата: Олег Варламов
Насколько я понял необходимо что-то типа этого:
Код:
var text = textBox1.Text;
for (int i = 0; i < text.Length; i++){
var letter = text[i].ToString();
foreach (var column in dataGridView1.Columns)
if (column.HeaderText == letter){
var cellValue = dataGridView1.CurrentRow.Cells[col.Index].Value.ToString();
var values = cellValue.Split(' ');// Если разделитель - пробел
var index = rnd.Next(values.Lenght);
result += values[index];
}
}
listBox1.Items.Add(result);
for (int i = 0; i < text.Length; i++){
var letter = text[i].ToString();
foreach (var column in dataGridView1.Columns)
if (column.HeaderText == letter){
var cellValue = dataGridView1.CurrentRow.Cells[col.Index].Value.ToString();
var values = cellValue.Split(' ');// Если разделитель - пробел
var index = rnd.Next(values.Lenght);
result += values[index];
}
}
listBox1.Items.Add(result);
Спасибо просто самое большое, реально помогли!!! Только
Код:
foreach (DataGridViewColumn column in dataGridView1.Columns)
А еще можете один момент посмотреть с этим же кодом, давно не получается( такая ситуация, что есть несколько столбцов, в названиях которых стоит не одна буква, а несколько, например "NO". Тогда данный цикл рассматривается каждую букву в отдельности (например: n=1,o=2,no=3) и на выводе получается такой шифр:12, вместо просто 3...пытался как вариант делать что-то типа result += s1.Replace("no", "3");, но тогда получается эта 3 добавляется после каждой буквы, поскольку цикл...не знает как это исправить можно? или что придумать, заранее спасибо)
Очевидно же—проходи сначала по несколькобуквенным объектам,а потом переходи к однобуквенным.По уменьшению количества символов,т.е.
Цитата: @pixo $oft
Очевидно же—проходи сначала по несколькобуквенным объектам,а потом переходи к однобуквенным.По уменьшению количества символов,т.е.
а можете чуть-чуть накидать кожа, вообще не помойму( добавить условие в foreach или как?(