Требуется сохранить код символа в файле

167
22 января 2019, 07:40

Есть интовый массив с кодами символов. Его нужно записать в файл. Но при записи он снова сам переводится в текст.

    ASKI = new int[word.Length];                  
    for (int j = 0; j < word.Length; j++)
    {
        ASKI[j] = word[j];
    }
    char[] word_1 = new char[ASKI.Length];
    for (int j = 0; j < ASKI.Length; j++)
    {
        word_1[j] = Convert.ToChar(ASKI[j]);
    }
    text[i] = new string (word_1);
    StreamWriter sw = new StreamWriter("Test.txt");
    foreach (var node in text)
    {
        sw.WriteLine(node);
    }
    sw.Close();

Подскажите как записать именно коды символов

Answer 1

В вашем случае вы конвертируете int в его эквивалентный символ Unicode, само собой в тексте будет выводиться символ-кракозябра.

Если необходимо вывести код символа, то преобразуйте int в строку:

   var string_arr = new string [ASKI.Length];
   ...
    string_arr[j] = ASKI[j].ToString();
Answer 2

Вам надо заменить вот этот весь ваш код

ASKI = new int[word.Length];                  
for (int j = 0; j < word.Length; j++)
{
    ASKI[j] = word[j];
}
char[] word_1 = new char[ASKI.Length];
for (int j = 0; j < ASKI.Length; j++)
{
    word_1[j] = Convert.ToChar(ASKI[j]);
}
text[i] = new string (word_1);
StreamWriter sw = new StreamWriter("Test.txt");
foreach (var node in text)
{
    sw.WriteLine(node);
}
sw.Close();

На вот это

using (StreamWriter sw = new StreamWriter("Test.txt"))
{
    for (int j = 0; j < word.Length; j++)
    {
        sw.WriteLine((int) word[j]);
    }
}

Чтобы просто вывести коды символов. Все те телодвижения и танцы с копированием из массива в массив вам не нужны.

READ ALSO
Контрольная сумма для заголовка IPv4

Контрольная сумма для заголовка IPv4

Был задан такой вопрос, но я вроде как приблизился к решению вопроса о своей задачеВ интернете найден мной такой метод:

190