Чтение и вывод данных из файла .txt

Стартовая страница Форумы Понять, как работает ПО Чтение и вывод данных из файла .txt

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)
  • Автор
    Записи
  • #16178
    vg
    Участник

    Здравствуйте.

    Задача состоит в получении данных из текстового файла и вывода этих данных на экран построчно.

    Для тестирования этой возможности написал следующий метод:
    public string qReadFile()
    {
    string[] result = System.IO.File.ReadAllLines(path, Encoding.ASCII);
    return result[0];
    }

    У входного канала, использующего эту формулу, установил формат «Текст ASCII».
    В веб-приложении абракадабра.
    Тоже самое наблюдается с «Текст Unicode» и Encoding.UTF8 соответственно. Разве что абракадабра из других символов.
    Кодировку файла .txt также пробовал менять.

    Подскажите пожалуйста, как это забороть?

    #16179
    manjey73
    Участник

    Вы хотите в тег строку записать ? К сожалению не более 8 символов Ascii, так как канал имеет представление double.

    Чтобы сработал параметр Формата «Текст ASCII», надо вашу строку, точнее первые (или нужные вам) 8 символов превратить в double. То есть берете 8 байт строки и BitConverter.ToDouble(bute[] массив, 0) в туда 🙂 Ну соответственно байты строки должны быть в ASCII коде.

    • Ответ изменён 6 лет, 2 месяца назад пользователем manjey73.
    #16183
    vg
    Участник

    Понял, благодарствую!

    #16308
    vg
    Участник

    Встал вопрос:

    Использую следующий код для формулы

    string path = @»какой то путь к файлу.txt»;

    public double ReadFile()
    {
    string[] result = System.IO.File.ReadAllLines(path, Encoding.UTF8);
    byte[] byteArray = new byte[8];
    byteArray = System.Text.Encoding.UTF8.GetBytes(result[0]);
    double res = BitConverter.ToDouble(byteArray, 0);
    return res;
    }

    1) Английские символы отображаются, но отображаются при формате входного канала «Текст ASCII». Если ставлю формат «Текст Unicode» как было бы правильно, то отображается 4 иероглифа.

    2) Так как в кодировке юникода кириллица занимает 2 байта на символ, то передать удастся только 4 символа из файла, но они предстают в виде восьми вопросов «????????» в формате «Текст ASCII». В формате «Текст Unicode» также иероглифы.

    Если в коде изменить Encoding.UTF8 на Encoding.ASCII, то всё останется также, только иероглифы изменятся.

    • Ответ изменён 6 лет, 2 месяца назад пользователем vg.
    #16316
    Mikhail
    Модератор

    Добрый день!
    У Вас может быть высокая нагрузка на файловую систему, т.к. формулы выполняются постоянно. Хотя бы сохраняйте и проверяйте время предыдущего чтения, чтобы читать файл с каким-то интервалом.

    #16318
    Mikhail
    Модератор

    Кириллицу можно отобразить только в Unicode, но не более 4 символов на канал.
    Если у Вас имеется ограниченный набор строк, то входной канал лучше использовать как число, а выбирать строку из перечисления (задаётся в таблице Размерности).

    #16324
    vg
    Участник

    Понял Вас, спасибо.

Просмотр 7 сообщений - с 1 по 7 (из 7 всего)
  • Для ответа в этой теме необходимо авторизоваться.