![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| r00t_aka_spin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 29.9.2007 Репутация: нет Всего: нет |
Есть текстовый файл содержащий числа с плавающей точкой
Требуется считать эти числа во float переменные. P.S. Знаю что можно выдернуть всё регексами, но каждый раз это делать надоедает. Не верю что нет встроеных распознавалок чисел на уровне считывания, как например в Delphi или в C++ |
|||
|
||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 22 Всего: 39 |
Ты имеешь в виду типа
? Да, думаю, таких функций нет. Но и - явный перебор по сложности, ведь можно читать построчно, а для выделения значений пользоваться Split-ом, как показано, например, здесь. Если совсем не годится использовать двоичные/типизированные файлы, то можно выкрутиться, используя Managed C++ (для них даже появились более надёжные версии с суффиксом _s - fscanf_s), написать обёртку и использовать в C#. Это сообщение отредактировал(а) marcusmae - 30.9.2007, 00:21 -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
| r00t_aka_spin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 29.9.2007 Репутация: нет Всего: нет |
да, именно это и имею в виду. Большое спасибо за Split, забыл про него. привык всё регексами делать. |
|||
|
||||
| marcusmae |
|
||||||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 22 Всего: 39 |
Хм, да не за что
Несмотря на то, что Вы уже вполне довольны, я таки осуществил свою угрозу по написанию обёртки :
Тут написан native класс NativeFile, в котором хранится дескриптор файла и его managed сателлит - класс File, в котором есть функция ScanF, которая делает частное применение fscanf для вещественных данных. Далее, тестовая программка уже на диезе :
Output для ваших данных :
Как и требовалось, считалась первая строчка файла Это решение, конечно, "не для прессы", между нами Impossible is nothing! В прикреплённом архиве - весь solution c двумя проектами. Тока скомпильте заново, а то пришлось подрезать бинарники из-за ограничения размера... Это сообщение отредактировал(а) marcusmae - 30.9.2007, 01:28 Присоединённый файл ( Кол-во скачиваний: 4 )
ScanExample.rar 102,57 Kb-------------------- ἀπὸ μηχανῆς θεός |
||||||
|
|||||||
| r00t_aka_spin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 29.9.2007 Репутация: нет Всего: нет |
я в C++ не особо силён, но постараюсь разобраться в работе класса, добавлю так же возможность считывать int и другие численные типы. ещё раз большое спасибо.
|
|||
|
||||
| okaton |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 213 Регистрация: 24.11.2006 Репутация: нет Всего: нет |
r00t_aka_spin, не знаю актуально для вас это сейчас или нет
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |