Job description
Szukam programisty, który napisałby skrypt (w dowolnym języku), który scalałby kilkadziesiąt plików tekstowych w formacie csv (takich jak załączone AM-ADVIS.CSV oraz ND-TOTIS.CSV) w jeden, również w formacie csv. Wszystke pliki zawierają kolumny danych, z których pierwsza jest datą, pozostałe to wartości liczbowe. Ilość kolumn jest różna dla różnych plików - czasami jest to 1 kolumna, a czasami 4 (poza datą), ponieważ są to dane giełdowe. 4 kolumny oznaczają dane z:
otwarcia (O - open),
najwyższej (H - high)
najniższej (L - low)
zamknięcia (C - close)
Widziałbym to tak: istniałby plik „sterujący”, w którym jak (edytując go) podawałbym nazwy plików do scalenia (wraz ze ścieżką dostępu), a skrypt scalałby to wszystko razem. Nazwa pliku wynikowego też podawana byłaby w pliku „sterującym”.
Scalanie polegałoby na dopisywaniu/dodawaniu wartości znajdujące się w kolumnach następujących po dacie w kolejnych plikach. Czyli do nowego pliku (wynikowego) byłaby wpisywana kolumna z datą oraz następująca po niej kolumna z danymi (przykładowo z pliku AM-ADVIS.CSV), a następnie dopisywana byłaby kolumna z samymi danymi z następnego pliku (ND-TOTIS.CSV) . W efekcie powinien powstać „Plik-wynikowy.csv” - jego przykład załączyłem.
Ponieważ niektóre pliki zawierają 4 kolumny danych (SP500.csv), w pliku sterującym określane byłoby którą kolumnę lub kolumny należy pobrać. Te kolumny chciałbym określić jako: O, H, L, C (Open, High, Low, Close – ba takie są dane giełdowe). Czyli przykładowy plik sterujący (w formacie csv) wyglądałby tak:
D:\DATA\IDXDATA\, H, L, C
D:\DATA\IDXDATA\AM-ADVIS.CSV, C
D:\DATA\IDXDATA\ND-TOTIS.CSV, C
D:\DATA\FOREX\ AUDCAD.CSV, O, C
….itd.
Nazwy poszczególnych kolumn w pliku wynikowym byłyby takie same jak nazwy plików z których pobierane są dane z dodaną końcówką: _O, _H, _L lub _C, czyli w naszym przypadku: SP500_O; SP500_H; SP500_L; SP500_C; AM-ADVIS_C ; ND-TOTIS_C . Pierwsza kolumna zawsze będzie miała nazwę: data. Pokazałem to w „Plik-wynikowy.csv”
Zenon Koszorz
zenek.koszorz@icloud.com