| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > чтение из файла float значений |
| Автор: r00t_aka_spin 29.9.2007, 23:47 | ||
Есть текстовый файл содержащий числа с плавающей точкой
Требуется считать эти числа во float переменные. P.S. Знаю что можно выдернуть всё регексами, но каждый раз это делать надоедает. Не верю что нет встроеных распознавалок чисел на уровне считывания, как например в Delphi или в C++ |
| Автор: marcusmae 30.9.2007, 00:19 | ||
Ты имеешь в виду типа
? Да, думаю, таких функций нет. Но и - явный перебор по сложности, ведь можно читать построчно, а для выделения значений пользоваться Split-ом, как показано, например, http://www.thescripts.com/forum/thread268853.html. Если совсем не годится использовать двоичные/типизированные файлы, то можно выкрутиться, используя Managed C++ (для них даже появились более надёжные версии с суффиксом _s - fscanf_s), написать обёртку и использовать в C#. |
| Автор: r00t_aka_spin 30.9.2007, 00:34 | ||
да, именно это и имею в виду. Большое спасибо за Split, забыл про него. привык всё регексами делать. |
| Автор: marcusmae 30.9.2007, 01:26 | ||||||
| Хм, да не за что Несмотря на то, что Вы уже вполне довольны, я таки осуществил свою угрозу по написанию обёртки :
Тут написан native класс NativeFile, в котором хранится дескриптор файла и его managed сателлит - класс File, в котором есть функция ScanF, которая делает частное применение fscanf для вещественных данных. Далее, тестовая программка уже на диезе :
Output для ваших данных :
Как и требовалось, считалась первая строчка файла Это решение, конечно, "не для прессы", между нами Impossible is nothing! В прикреплённом архиве - весь solution c двумя проектами. Тока скомпильте заново, а то пришлось подрезать бинарники из-за ограничения размера... |
| Автор: r00t_aka_spin 30.9.2007, 19:20 |
| я в C++ не особо силён, но постараюсь разобраться в работе класса, добавлю так же возможность считывать int и другие численные типы. ещё раз большое спасибо. |
| Автор: okaton 1.10.2007, 18:32 | ||
r00t_aka_spin, не знаю актуально для вас это сейчас или нет
|