• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Error, c#, SFML: System.FormatException: „Nieprawidłowy format ciągu wejściowego.”

0 głosów
2,280 wizyt
pytanie zadane 28 października 2019 w C# przez PrkLe Początkujący (300 p.)
przywrócone 28 października 2019 przez adrian17

Witam, gdy kompilowałem program, wystąpił mi pewien błąd i nie wiem jak go rozwiązać. Kompiluje na platformie x64

 

Kod w którym występuje błąd:

int id = Convert.ToInt32(items[x]);

Błąd:

System.FormatException: „Nieprawidłowy format ciągu wejściowego.”

Cały kod:

using SFML.Graphics;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Pifpaf
{
    class mapa
    {
        Sprite[,] tiles;
        int MapWidth = 100;
        int MapHeight = 100;

        public mapa()
        {
            int TitleMapWidth = 21;
            int TitleMapHeight = 23;
            int TileSize = 32;

            Texture texture = new Texture("Maps/sheet.png");
            Sprite[] titlemap = new Sprite[TitleMapWidth * TitleMapHeight];

            for (int y = 0; y < TitleMapHeight; y++)
            {
                for(int x = 0; x < TitleMapWidth; x++)
                {
                    IntRect rect = new IntRect(x * TileSize, y * TileSize, TileSize, TileSize);

                    titlemap[(y * TitleMapWidth) + x] = new Sprite(texture, rect);
                }
            }

            tiles = new Sprite[MapWidth, MapHeight];
            StreamReader reader = new StreamReader("Maps/mapa2.tmx");

            for(int y = 0; y < MapHeight; y++)
            {
                string line = reader.ReadLine();
                string[] items = line.Split(',');


                for (int x = 0; x < MapWidth; x++)
                {
                    int id = Convert.ToInt32(items[x]);
                    tiles[x,y] = new Sprite(titlemap[id]);
                    tiles[x, y].Position = new SFML.System.Vector2f(TileSize * x, TileSize * y);
                }

            }
            reader.Close();
        }
        public void Draw(RenderWindow window)
        {
            for(int y = 0; y < MapHeight; y++)
            {
                for(int x = 0; x < MapWidth; x++)
                {
                    window.Draw(tiles[x, y]);
                }
            }
        }
    }
}

 

komentarz 28 października 2019 przez adrian17 Mentor (354,120 p.)
Na ślepo, bez wejścia raczej nic ciekawego nie powiemy. A jaką wartość items[x] pokazuje debugger gdy rzucany jest wyjątek?
komentarz 28 października 2019 przez PrkLe Początkujący (300 p.)
Pokazuje mi wartość "0".
komentarz 28 października 2019 przez adrian17 Mentor (354,120 p.)
Dasz proszę screenshot okna Visuala?
komentarz 28 października 2019 przez PrkLe Początkujący (300 p.)
komentarz 28 października 2019 przez adrian17 Mentor (354,120 p.)
Jeśli faktycznie items[0] to "0", to... nie wiem. Sorry.
komentarz 29 października 2019 przez draghan VIP (106,230 p.)
(w okienku ze zmiennymi nie widać wartości zawartych w items[], a tam powinniśmy szukać)
komentarz 29 października 2019 przez adrian17 Mentor (354,120 p.)

(uwierzyłem na słowo tutaj:

Pokazuje mi wartość "0".

)

1 odpowiedź

0 głosów
odpowiedź 29 października 2019 przez Babbage Obywatel (1,630 p.)
edycja 29 października 2019 przez Babbage

x = 0 (bo zaczyna od 0)

id = 0 (bo jeszcze nic nie przypisano)

Raczej items[0] to coś innego niż "0" może "0.0", " ", null lub  "".

Img

komentarz 29 października 2019 przez PrkLe Początkujący (300 p.)
Czyli co mam zrobić? Bo nie rozumiem..
komentarz 29 października 2019 przez Babbage Obywatel (1,630 p.)
Pokaż zawartość całego items[x] to rozwikłamy jednoznacznie pewne wątpliwości.

Daj breakpoint na tym wierszu i po najechaniu kursorem na tą tablice pokaże się co w niej jest.
komentarz 30 października 2019 przez PrkLe Początkujący (300 p.)
Wartość wynosi {string[1]}

Podobne pytania

0 głosów
0 odpowiedzi 349 wizyt
0 głosów
2 odpowiedzi 784 wizyt
pytanie zadane 29 stycznia 2021 w C i C++ przez Maciek Pestka Nowicjusz (220 p.)
0 głosów
1 odpowiedź 880 wizyt

93,426 zapytań

142,421 odpowiedzi

322,647 komentarzy

62,787 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...