Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/14: Рейтинг темы: голосов - 14, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 21.03.2010
Сообщений: 5
1

Чтение из файла числовых данных среди строковых.

05.04.2010, 16:02. Просмотров 2748. Ответов 4
Метки нет (Все метки)

Здравствуйте!
Есть файл, который мне надо пропарсить. он примерно такого вида:

v 0.123 -0.12 1.00
v 0.421 -0.1 0.4311
v 0.13 0.12 0.122

vn -1.0 0.0 -1.0
vn 1.0 1.0 1.0
......

нужно считать в соответствующую структуру числовые данные. То есть в каждой строке выделить 3 числа и записать их в числовые переменные. (не строковый тип мне нужен, естественно)
Как это можно реализовать? Возможно ли как-то при чтении из файла связать StreamReader c BinaryReader.ReadDoubl ?

Или, быть может, есть функция, корректно переводящая строку в число?
например float a = f("-0.3212"); //чтобы а как раз содержала в себе число -0.3212
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.04.2010, 16:02
Ответы с готовыми решениями:

Чтение числовых данных из файла
Надо прочесть как можно более простым способом файл с парой столбцов чисел в каждой строке...

Чтение числовых данных из файла
Привет всем. Поправьте пожалуйста код. Мне надо, чтобы из файла считывались численные данные. Вот...

Чтение из текстового файла строковых данных в двумерный массив java8
Собственно как это сделать? Scanner использовать или reader или что? Использовать...

Проверки числовых и строковых данных
Здравствуйте. Подскажите, таких проверок будет достаточно для обеспечения более менее неплохой...

__________________

Записывайтесь на профессиональные курсы С#-разработчиков‌
4
Злой няш
1949 / 1384 / 508
Регистрация: 05.04.2010
Сообщений: 2,627
05.04.2010, 16:22 2
Могут быть ошибки:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.IO;
 
class Program
{
    public static void Main()
    {
        StreamReader sr = new StreamReader("test.txt");
        while (!sr.EndOfStream)
        {
                string[] temp = sr.ReadLine().Split(' ');
                Console.WriteLine(Convert.ToDouble(temp[1]) + " " +
                    Convert.ToDouble(temp[2]) + " " + Convert.ToDouble(temp[3]));
        }
        sr.Close();
    }
}
Ну, как-то так!
0
0 / 0 / 0
Регистрация: 21.03.2010
Сообщений: 5
05.04.2010, 16:34  [ТС] 3
да, у самого получилось распознать по float a = (float)Convert.ToDouble("-31,21")

но вод дело в том, что внутри строки должна быть запятая, а не точка. неужели заменять каждый раз точку на запятую?
0
Злой няш
1949 / 1384 / 508
Регистрация: 05.04.2010
Сообщений: 2,627
05.04.2010, 16:45 4
Цитата Сообщение от MetallFoX Посмотреть сообщение
но вод дело в том, что внутри строки должна быть запятая, а не точка. неужели заменять каждый раз точку на запятую?
Ну, для точки у меня оно и не работает.

C#
1
2
3
4
string s = "3.5";
s = s.Replace('.', ',');
 
double d = Convert.ToDouble(s);
Не так уж и проблемно точку на запятую поменять.
1
0 / 0 / 0
Регистрация: 21.03.2010
Сообщений: 5
05.04.2010, 16:52  [ТС] 5
Да, спасибо, работает, примерно так же сам сделал. Только я считываю файл построчно и парсю строку посимвольно. Если наткнулся на число - сохраняю в отдельную строку до пробела. Меняю точку на запятую, потом превращаю в float.

Просто думал, может можно как-то считывать данные из строки по шаблону какому-нить..?

Вообще я считываю из obj файлика, созданного при помощи Blender3D (аналог 3DSMAX) вершины, их порядок и нормали. В перспективе программа должна будет строить(в том числе и графически) по файлу obj 3D объекты с возможностью вращения =)) Вот такая вот штука.. =)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.04.2010, 16:52

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

FilteStream: считывание строковых и числовых данных
Доброго времени суток! Помогите пожалуйста решить следующую задачу: Есть поток FileStream....

Как мне организовать чтение из файла числовых данных (не текста) и записать в переменную
Как мне организовать чтение из файла числовых данных (не текста) и записать в переменную

Не работает чтение из файла числовых переменных
Добрый день. Написал вот такую программу: #include<conio.h> #include<stdio.h> int main()...

Ввод-вывод числовых и строковых переменных
Напишите программу, которая запрашивает данные (сначала число, затем месяц) вашего дня рождения,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.