pobranie liczby z pliku :(

0

Witam. Mam plik tekstowy a w nim dane. Format to:
dana1 spacja dana2 spacja liczba.
Liczba to wartość notowania giełdowego np. 2.4567.
Próbowałem tą wartość pobrać z pliku a następnie przekazać do funkcji.
Potrzebuje jej jako decimal.
Ściągam ją sobie jako string, bo czytam całą linię na potem kroję na kawałki, mam tego stringa reprezentujacego tą liczbę
i potem:
decimal robocza = Decimal.Parse(ten_string_wspomniany_wyzej);
Błąd to z tego co mi tutaj się pojawia : DataFormatException.
Jak to zrobić?? :/
dzięki z góry za pomoc...

0

Postaw BreakPoint w trybie debugowania, albo dodaj ten_string_wspomniany_wyzej do AddWatch, będzie wiadomo co robisz źle.

0

hmmmm...na razie zrobiłem tak:

if (Decimal.TryParse(rob, out wynik))
{
Console.WriteLine("SUKCES");

        }
        else
        {
            Console.WriteLine("NIE UDALO SIE");
        }

gdzie rob to ten string pobrany z pliku, a wynik...to by byl użyty jakby się udało ale się nie udaje :(
a normalnie jeśli robie to tak jak opisałem w pierwszej wypowiedzi rzuca błąd:
Unhandled Exception: System.FormatException: Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseDecimal(String value, NumberStyles options, NumberFormatInfo numfmt)
at System.Decimal.Parse(String s)

0

No i sam rozwiązałem jednak problem. Przepraszam za tak zwane zawracanie gitary, ale to dziwaczne troche. Z tego co ustaliłem C# konwertuje z stringa do decimala ciągi postaci: cośtam,cośtam.
Ja miałem zapisane w pliku cośtam,cośtam. Ale po wczytaniu przez program do stringa było to już
postaci cośtam.cośtam. Rozwiązanie to zamienić w tym stringu już w programie przecinek na kropkę.
Działa. Ale hmmmm dziwne :/

0

Zerknij na NumberFormat.NumberDecimalSeparator klasy CultureInfo przypisana do obecnego watka. Ta dziwnoscia moga byc wlasnie ustawienia globalizacji w Twoim systemie... w niektorych kulturach ',' jest separatorem czesci dziesietnej, w innych kropka :)

0

Dlatego mogłeś od razu zrobić jak napisałem, ale nie uczyniłeś tego [glowa]

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.