1. Mam na dysku plik csv.
2. Napisałem klasę która czyta go do Stringa i przetwarza, odpowiednie pola z arkusza (którym jest plik csv) odwzorowując w tablicy dwuwymiarowej. To jakbyś miał wirtualnego Excela, tylko bez wyświetlania. Np to co było w pliku w 10 wierszu a kolumnie 3, będzie w tablica[10,3]. Jako że nagłówki kolumn są w osobnej tablicy, w praktyce numer wiersza to zarazem numer obiektu, a numer kolumny to numer pola, przykładowo Gwiazda[Słońce, Kolor] = Żółty;
Albo inaczej: gwiazdy nie są u mnie obiektami, tylko wierszami w tablicy je zawierającej. To co widać na ekranie, to powiązane numerem z tymi wierszami... sześciany (model będzie do zmiany). Edytor po wybraniu gwiazdy na ekranie ładuje i zapisuje dane do tablicy (a docelowo do pliku). Innym rozwiązaniem które rozważałem oprócz tablicy dwuwymiarowej była tablica tablic (każda gwiazda byłaby tablicą, a jej komórki polami), jednak to rozwiązanie byłoby mniej wydajne.
Po prostu odwzorowywanie gwiazd w formie obiektów w runtime byłoby zbyt skomplikowane (mniej więcej tak działała pierwsza wersja którą opracowałem), bo przecież nie znam ani ilości pól w klasie do jakiej należą ładowane obiekty, ani ich typów. Dlatego zamiast robić to, oddzielnie ładuję dane do tablicy (większość jest czysto abstrakcyjna), i oddzielnie tworzę proste obiekty na mapie odwzorowując wybrane parametry wizualne.
Żadnych plików wsadowych nie używam. Aktualnie po prostu polecenie ładowania jest w tymczasowej funkcji "Startup" którą wywołuję po załadowaniu aplikacji, można też korzystać z wbudowanej konsoli (której kod udostępniłem na forum). Docelowo będzie interface wyboru pliku i opcji importu.
//edit: w zasadzie klasę obsługującą bazę danych mogę ci pokazać na pw, na wypadek gdyby to co napisałem nie było zbyt jasne/formalnie poprawne.