Форум программистов, компьютерный форум, киберфорум
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 29.04.2021
Сообщений: 14

Ошибка: FormatException: Input string was not in a correct format

29.04.2021, 15:57. Показов 2821. Ответов 9

Студворк — интернет-сервис помощи студентам
Привет всем. Занимаюсь по книге "Unity и C#. Геймдев от идеи до реализации" и во время работы над прототипом игры Bartok появляется данная ошибка. Делаю всё по книге 1 в 1. Не получается решить эту проблему.

FormatException: Input string was not in a correct format.
System.Number.ParseSingle (System.String value, System.Globalization.NumberStyles options, System.Globalization.NumberFormatInfo numfmt) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Single.Parse (System.String s, System.Globalization.NumberStyles style, System.Globalization.NumberFormatInfo info) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.Single.Parse (System.String s, System.IFormatProvider provider) (at <695d1cc93cca45069c528c15c9fdd749>:0)
BartokLayout.ReadLayout (System.String xmlText) (at Assets/__Scripts/BartokLayout.cs:41)
Bartok.Start () (at Assets/__Scripts/Bartok.cs:36)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.04.2021, 15:57
Ответы с готовыми решениями:

Вылезает ошибка: FormatException: Input string was not in a correct format
Всем привет. Нужна помощь. Пытаюсь по книге &quot;Unity и C#. Геймдев от идеи до реализации&quot; написать пасьянс, но вылезает данная ошибка....

Ошибка System.FormatException: Input string was not in a correct format
Разбираю пример из Шилдта, но он у меня почему-то не компиллируется: выдает ошибку System.FormatException: Input string was not in a...

Ошибка System.FormatException:"Input string was not in a correct format."
Помогите пожалуйста решить эту проблему, вроде все правильно Но на этом моменте ...

9
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
29.04.2021, 16:03
Цитата Сообщение от renmaks Посмотреть сообщение
Bartok.Start () (at Assets/__Scripts/Bartok.cs:36)
36 строчка, сюда кинь, а лучше весь скрипт.
0
0 / 0 / 0
Регистрация: 29.04.2021
Сообщений: 14
29.04.2021, 16:19  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
 
 
public class Bartok : MonoBehaviour
{
    static public Bartok S;
 
    [Header("Set in Inspector")]
    public TextAsset deckXML;
    public TextAsset layoutXML;
    public Vector3 layoutCenter = Vector3.zero;
 
    [Header("Set Dynamically")]
    public Deck deck;
    public List<CardBartok> drawPile;
    public List<CardBartok> discardPile;
 
    public BartokLayout layout;
    private Transform layoutAnchor;
 
    void Awake()
    {
        S = this;
    }
 
    void Start()
    {
        deck = GetComponent<Deck>();
        deck.InitDeck(deckXML.text);
        Deck.Shuffle(ref deck.cards);
 
        layout = GetComponent<BartokLayout>();
        layout.ReadLayout(layoutXML.text);
 
        drawPile = UpgradeCardList(deck.cards);
    }
 
    List<CardBartok> UpgradeCardList(List<Card> lCD)
    {
        List<CardBartok> lCB = new List<CardBartok>();
        foreach (Card tCD in lCD)
        {
            lCB.Add(tCD as CardBartok);
        }
        return (lCB);
    }
}
Добавлено через 14 минут
Цитата Сообщение от 1max1 Посмотреть сообщение
36 строчка, сюда кинь, а лучше весь скрипт.
Скинул
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
29.04.2021, 17:58
Проверь правильно ли ты заполнил layoutXML, его содержимое тоже скинь. И скрипт BartokLayout заодно.
1
0 / 0 / 0
Регистрация: 29.04.2021
Сообщений: 14
29.04.2021, 18:38  [ТС]
Цитата Сообщение от 1max1 Посмотреть сообщение
Проверь правильно ли ты заполнил layoutXML, его содержимое тоже скинь. И скрипт BartokLayout заодно.
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<xml>
  <!-- Этот файл хранит информацию о раскладке карт в карточной игре Bartok. -->
  
  <!-- Элемент multiplier имеет атрибуты x и y с множителями. -->
  <!-- Множители определяют, насколько свободной или плотной будет раскладка. -->
  <multiplier х="1" у="1" />
 
  <!-- Позиция стопки свободных карт и смещение относительно друг друга -->
  <slot type="drawpile" х="1.5" у="0" xstagger="0.05" layer="l"/>
 
  <!-- Позиция стопки сброшенных карт и целевой карты -->
  <slot type="discardpile" х="-1.5" у="0" lауег="2"/>
 
  <!-- Позиция целевой карты -->
  <slot type="target" х="-1.5" у="0" lауег="4"/>
 
  <!-- Следующие слоты определяют позиции карт в руках каждого из 
четырех игроков -->
  <slot type="hand" х="0" у="-8" rot="0" player="l" lауег="3"/>
  <slot type="hand" х="-10" у="0" rot="270" player="2" lауег="3"/>
  <slot type="hand" х="0" у="8" rot="180" player="3" lауег="3"/>
  <slot type="hand" х="10" у="0" rot="90" player="4" lауег="3"/>
</xml>

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Globalization;
using System.Xml;
 
[System.Serializable]
public class SlotDef
{
    public float x;
    public float y;
    public bool faceUp = false;
    public string layerName = "Default";
    public int layerID = 0;
    public int id;
    public List<int> hiddenBy = new List<int>();
    public float rot;
    public string type = "slot";
    public Vector2 stagger;
    public int player;
    public Vector3 pos;
}
 
public class BartokLayout : MonoBehaviour
{
    [Header("Set Dynamically")]
    public PT_XMLReader xmlr;
    public PT_XMLHashtable xml;
    public Vector2 multiplier;
    public List<SlotDef> slotDefs;
    public SlotDef drawPile;
    public SlotDef discardPile;
    public SlotDef target;
 
    public void ReadLayout(string xmlText)
    {
        xmlr = new PT_XMLReader();
        xmlr.Parse(xmlText);
        xml = xmlr.xml["xml"][0];
 
        multiplier.x = float.Parse(xml["multiplier"][0].att("x"), CultureInfo.InvariantCulture);
        multiplier.y = float.Parse(xml["multiplier"][0].att("y"), CultureInfo.InvariantCulture);
 
        SlotDef tSD;
        PT_XMLHashList slotsX = xml["slot"];
 
        for (int i = 0; i < slotsX.Count; i++)
        {
            tSD = new SlotDef();
            if (slotsX[i].HasAtt("type"))
            {
                tSD.type = slotsX[i].att("type");
            }
            else
            {
                tSD.type = "slot";
            }
            tSD.x = float.Parse(slotsX[i].att("x"), CultureInfo.InvariantCulture);
            tSD.y = float.Parse(slotsX[i].att("y"), CultureInfo.InvariantCulture);
            tSD.pos = new Vector3(tSD.x * multiplier.x, tSD.y * multiplier.y, 0);
 
            tSD.layerID = int.Parse(slotsX[i].att("layer"));
            tSD.layerName = tSD.layerID.ToString();
 
            switch(tSD.type)
            {
                case "slot":
                    break;
 
                case "drawpile":
                    tSD.stagger.x = float.Parse(slotsX[i].att("xstagger"), CultureInfo.InvariantCulture);
                    drawPile = tSD;
                    break;
 
                case "discardpile":
                    discardPile = tSD;
                    break;
 
                case "target":
                    target = tSD;
                    break;
 
                case "hand":
                    tSD.player = int.Parse(slotsX[i].att("player"));
                    tSD.rot = float.Parse(slotsX[i].att("rot"), CultureInfo.InvariantCulture);
                    slotDefs.Add(tSD);
                    break;
            }
        }
    }
}
0
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10427 / 5157 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
29.04.2021, 19:00
Цитата Сообщение от renmaks Посмотреть сообщение
FormatException: Input string was not in a correct format.
Перед чтением XML нужно ставить такую строчку:
C#
1
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Цитата Сообщение от renmaks Посмотреть сообщение
А библиотеку какую подключить для этого нужно?
C#
1
2
using System.Globalization;
using System.Threading;
1
0 / 0 / 0
Регистрация: 29.04.2021
Сообщений: 14
29.04.2021, 19:03  [ТС]
Цитата Сообщение от Storm23 Посмотреть сообщение
Перед чтением XML нужно ставить такую строчку:
А библиотеку какую подключить для этого нужно?
А то "Имя не существует в текущем контексте"

Нашёл, поставил эту строчку, всё равно ошибка.
0
 Аватар для 1max1
3362 / 1775 / 1028
Регистрация: 26.10.2018
Сообщений: 5,204
29.04.2021, 21:42
Наверное парсить лучше в англ. культуре:
C#
1
2
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
// тут парсинг хмл
1
0 / 0 / 0
Регистрация: 29.04.2021
Сообщений: 14
30.04.2021, 07:48  [ТС]
Цитата Сообщение от 1max1 Посмотреть сообщение
Наверное парсить лучше в англ. культуре:
Попробовал, не помогло.
0
0 / 0 / 0
Регистрация: 29.04.2021
Сообщений: 14
01.05.2021, 10:08  [ТС]
ВСЁ! Спасибо всем, проблему решил.
Я просто заново переписал весь xml.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.05.2021, 10:08
Помогаю со студенческими работами здесь

Ошибка: System.FormatException: "Input string was not in a correct format."
Помогите когда в компиляторе ввожу 3 после: if (page == 1) { Console.WriteLine(); ...

Получение данных из combobox, ошибка System.FormatException: "Input string was not in a correct format."
Добрый день! Делаю первые шаги в освоении C#, поэтому не судите строго. Пытаюсь создать примитивный магазин. Есть combobox, варианты...

System.FormatException: "Input string was not in a correct format."
Найдите ошибку в коде, а то 20 минут чешу репу, понять всё не могу( После запуска кода, выдаёт ошибку в 26 строке. using System; ...

Ошибка Input string was not in a correct format
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using...

Ошибка времени выполнения: Input string was not in a correct format
Program tr; Var a,S:integer; begin writeln ('введите сторону квадрата'); readln (a); S:=a*a; writeln ('S=',S); end. ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru