Kod w chwili obecnej ma sporo ponad 1000 linijek i ciągle rośnie

- dlatego chyba nie jest to dobry pomysł, by go zamieszczać.
Też myślałem o tym, że jakiś plik może się nie zamykać, ale operacje zapisywania do pliku (poza 1) wykonywane są funkcją, która dba o to, by na końcu zamknąć plik. Niestety mam kilka funkcji do zapisywania zmiennych - co również utrudnia pokazanie kodu.
W celu lepszego zobrazowania w czym tkwi problem poniżej taki pseudo podobny fragment kodu:
Kod: Zaznacz cały
#define series 100
#define var 10
int start() //to tylko prosty przykład!
{
//jakieś operacje np.
double array1[series][var];
double array2[series][var];
double array3[series];
jakas_funkcja(array,series,var); //zapisująca jakieś dane do tablicy
inna_funkcja(array2,series,var);
kolejna_funkcja(array3, series);
//zapisujemy do pliku
save_to_excel_2_dim(array1,series,var,"nazwa_pliku1.csv");
save_to_excel_2_dim(array2,series,var,"nazwa_pliku2.csv");
save_to_excel_1_dim(array3,series,"nazwa_pliku3.csv");
save_to_file(array1,series,var,"nazwa_plikux.bin"); //zapisywanie do pliku (binarnie)
//itd.
//wywołujemy funkcję x
funkcja_x(jakies_parametry); //funkcja m.in. tworzy około 7 plików (w tym 2 .bin)
return(0);
}
Powyższy kod sprawi, że w folderze pojawią się tylko pliki, które zostały utworzone w funkcji funkcja_x. Gdy odpalę kolejny raz skrypt to pojawią się brakujące pliki (nazwa_pliku1.csv, nazwa_pliku2.csv itd.) z pierwszego wywołania skryptu, ale będzie brakować tych plików z drugiego wywołania O_o
Natomiast jeśli zapisywanie do plików w skrypcie przerzucę na sam koniec tj. tak:
Kod: Zaznacz cały
#define series 100
#define var 10
int start() //to tylko prosty przykłąd
{
//jakieś operacje np.
double array1[series][var];
double array2[series][var];
double array3[series];
jakas_funkcja(array,series,var);
inna_funkcja(array2,series,var);
kolejna_funkcja(array3, series);
//itd.
//wywołujemy funkcję x
funkcja_x(jakies_parametry);
//zapisujemy do pliku
save_to_excel_2_dim(array1,series,var,"nazwa_pliku1.csv");
save_to_excel_2_dim(array2,series,var,"nazwa_pliku2.csv");
save_to_excel_1_dim(array3,series,"nazwa_pliku3.csv");
save_to_file(array1,series,var,"nazwa_plikux.bin");
return(0);
}
To po wywołaniu skryptu wszystkie pliki prawidłowo pojawią się w folderze...
Najdziwniejsze jest to, że pliki się zapisują prawidłowo, tylko moment ich ukazania się w folderze jest "kopnięty"...
-- Dodano: wt 18-12-2012, 15:44 --
Nie wiem o co kaman, ale dziś powróciłem z wyglądem skryptu do wczorajszej "wadliwej" postaci i dziś działa już prawidłowo... Jak widać, niektóre problemy same się rozwiązują :]
Pozostaje więc jeszcze tylko pytanie dlaczego MetaTrader nie ściąga historii od 13 stycznia 2012 r? Może zna ktoś odpowiedź na to pytanie?