Wpis z mikrobloga

Siemanko mirki,
Jako jeden z punktów mojej magisterki mam do wykonania całkiem prosty program, który będzie pobierał pliki .csv (z dużą ilością danych), a następnie wykona operacje porównania danych ze sobą i wypluje plik .csv, który będzie spełniał funkcję raportu. Mam 2 koncepcje i nie wiem, która będzie szybciej wykonywać operacje na danych zawartych w plikach csv. Dodam, że narzucono mi C# wraz z MySQL lub sam C#.
Czy lepiej utworzyć bazę danych z plików .csv w MySQL i połączyć ją z C#, a następnie napisać kod, który będzie wykonywał porównania. Czy też bezpośrednio parsować pliki csv do C#(bez użycia MySQL) i dopiero wtedy wykonywać na nich operacje?
Dodam, że nie studiuję Informatyki ani Automy, także skill w programowaniu jest raczej marny.
#programowanie #csharp #mysql #magisterka #csv
  • 14
@kontaktron: no to ja bym się w bazę raczej nie bawił, tylko wczytał to w postaci listy struktur, obliczył i wypluł do innego pliku. Chyba, że obliczenia wymagają przeszukiwania tej listy tak, że mechanizmy bazodanowe przyspieszyłyby/ułatwiłyby całe zadanie.
@wnocy: Polegałoby to na tym, iż najpierw porównywane są ze sobą 2 pliki csv, a konkretnie sprawdzane jest czy dane zawarte w 4 kolumnach, zawierają się w kolejnym z plików csv, jeśli tak to operacja się kończy, jeśli nie to dochodzi do porównania z kolejnym plikiem .csv. Nie wiem czy wystarczająco jasno się wyraziłem, jeśli nie to daj znać ;)
@qweasdqweasd: Postaram się jak najjaśniej potrafię i z większą dokładnością wytłumaczyć:
Mam 3 pliki .csv, nazwijmy je CSV1, CSV 2, CSV 3,
W tych 3 plikach znajdują się kolumny o nazwach X1, Y1, Z1, K1 dla CSV1, analogicznie dla kolejnych 2 plików
Każda z kolumn zawiera około 20000 wierszy.
Dla pliku CSV1 wykonywana jest operacja, która ma na celu sprawdzenie czy argumenty dla kolumn X1, Y1, Z1, K1 , występują w
Pobierz kontaktron - @qweasdqweasd: Postaram się jak najjaśniej potrafię i z większą dokładno...
źródło: comment_2vzWHpbdTf7KbvqmUk9OzkWa0woZojfp.jpg
@kontaktron: rozumiem. W takiej sytuacji nie ma sensu angażować do tego bazy danych. Wczytaj sobie wszystkie pliki do list. Następnie iteruj po danych z tego CSV1 i dla każdego wiersza wywołuj sobie funkcję, która zwraca informację, czy rekord został odnaleziony czy nie.
@kontaktron: oczywiście funkcję sprawdzającą rozbij sobie na kolejne mniejsze. Jedna odpowiedzialna za sprawdzanie w jednej konkretnej liście. Druga odpowiedzialna za wywoływanie tej poprzedniej dla odpowiedniej listy, itd. ;]
@kontaktron: ja bym to widział tak:
1. tworzysz sobie klasę z takimi polami jakie masz kolumny w tym csv
2. overridujesz hashcode i equals
3. wczytujesz sobie wszystkie pliki do HashSetów
4. sprawdasz sobie normalnie po kolei te sety czy sobie zawierają i wypisujesz do raportu
5. gg easy