Это сообщение о трудностях, с которыми я сталкиваюсь в C # (приложение Windows Forms в Visual Studio 2017, .NET Framework) в отношении использования словаря в формате "string, char".
Здесьвот что у меня есть:
Первый - словарь в формате
Dictionary<String, char> bintoascii = new Dictionary<String, char>()
{
{ "01000001" , 'A'},
{ "01000010" , 'B'},
//..................
{ "01111010" , 'z'},
{ "00100000" , ' ' },
};
И фактический код преобразования:
AsciiOutput.Text = "";
String binninput = Input.Text;
for (int i = 0; i < binninput.Length; i++)
{
if (i > 0)
AsciiOutput.Text = AsciiOutput.Text + " ";
else if (i == 0)
{
AsciiOutput.Text = AsciiOutput.Text + " ";
}
string b = binninput[i].ToString();
if (bintoascii.ContainsKey(b))
AsciiOutput.Text = AsciiOutput.Text + (bintoascii[b]);
}
Функция этого кода - преобразоватьиз двоичного в ASCII через входные и выходные текстовые поля (которые уже были успешно установлены в моем графическом интерфейсе).
По сути, он сначала объявляет словарь двоичных значений (представленных в виде строк) и соответствующие им значения ASCII (представленныекак символы).
Текстовое поле, в которое вводится двоичный файл, является Input.Text, а текстовое поле, из которого выводится ASCII, является AsciiOutput.Text (Примечание: строка binninput представляет Input.Text)
Существует цикл, основанный на длине Input (binninput / Input.Text), который помещает пробелы между каждой буквой двоичного файла.Так, например, это будет 01000001 01000010 вместо 0100000101000010.
Последняя часть цикла вставляет 8-значное двоичное представление каждой буквы отдельно (следовательно, почему оно повторяется в зависимости от длины ввода).
Visual Studio не отображает ошибок, но текстовое поле вывода (AsciiOutput.Text) пусто в моем графическом интерфейсе.Я не уверен в этом, но я думаю, что проблема заключается в строке кода
string b = binninput[i].ToString();
.Удаление функции .ToString () приводит к ошибкам преобразования.Я часами пытался возиться с заменой символов, целых и строк, думая, что это основная ошибка, но без решения, поэтому я и пришел сюда.
(Используя словарь в формате char, string, я получил ASCIIк бинарным преобразованиям работает отлично, и код выглядит очень похоже; если кто-то захочет, я тоже могу опубликовать это здесь)