Стартовая страница › Форумы › Понять, как работает ПО › Чтение и вывод данных из файла .txt
- В этой теме 6 ответов, 3 участника, последнее обновление 6 лет, 2 месяца назад сделано
vg.
-
АвторЗаписи
-
22.05.2020 в 19:06 #16178
vg
УчастникЗдравствуйте.
Задача состоит в получении данных из текстового файла и вывода этих данных на экран построчно.
Для тестирования этой возможности написал следующий метод:
public string qReadFile()
{
string[] result = System.IO.File.ReadAllLines(path, Encoding.ASCII);
return result[0];
}У входного канала, использующего эту формулу, установил формат «Текст ASCII».
В веб-приложении абракадабра.
Тоже самое наблюдается с «Текст Unicode» и Encoding.UTF8 соответственно. Разве что абракадабра из других символов.
Кодировку файла .txt также пробовал менять.Подскажите пожалуйста, как это забороть?
22.05.2020 в 19:11 #16179
manjey73УчастникВы хотите в тег строку записать ? К сожалению не более 8 символов Ascii, так как канал имеет представление double.
Чтобы сработал параметр Формата «Текст ASCII», надо вашу строку, точнее первые (или нужные вам) 8 символов превратить в double. То есть берете 8 байт строки и BitConverter.ToDouble(bute[] массив, 0) в туда 🙂 Ну соответственно байты строки должны быть в ASCII коде.
-
Ответ изменён 6 лет, 2 месяца назад пользователем
manjey73.
22.05.2020 в 21:58 #16183vg
УчастникПонял, благодарствую!
01.06.2020 в 23:42 #16308vg
УчастникВстал вопрос:
Использую следующий код для формулы
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.
02.06.2020 в 17:50 #16316
MikhailМодераторДобрый день!
У Вас может быть высокая нагрузка на файловую систему, т.к. формулы выполняются постоянно. Хотя бы сохраняйте и проверяйте время предыдущего чтения, чтобы читать файл с каким-то интервалом.02.06.2020 в 17:52 #16318
MikhailМодераторКириллицу можно отобразить только в Unicode, но не более 4 символов на канал.
Если у Вас имеется ограниченный набор строк, то входной канал лучше использовать как число, а выбирать строку из перечисления (задаётся в таблице Размерности).02.06.2020 в 18:16 #16324vg
УчастникПонял Вас, спасибо.
-
Ответ изменён 6 лет, 2 месяца назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.