#include <default.c>
#include <stdio.h>
#include <windows.h>
typedef struct SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME;
int _stdcall SystemTimeToVariantTime(SYSTEMTIME *lpSystemTime, DATE *pvtime);
DATE ConvertTime(int year, int month, int day, int hour, int minute, int second)
{
SYSTEMTIME Time;
DATE vTime;
memset(&Time, 0, sizeof(SYSTEMTIME));
Time.wYear = year;
Time.wMonth = month;
Time.wDay = day;
Time.wHour = hour;
Time.wMinute = minute;
Time.wSecond = second;
SystemTimeToVariantTime(&Time, &vTime);
return vTime;
}
function main()
{
char line[64];
int year, month, day, hour, minute, second, bars = 0, errors = 0;
float open, high, low, close;
FILE *in, *out;
TICK tick;
if (!(out = fopen("export.bar", "wb"))) {
printf("\ncan't open output file");
return;
}
if (!(in = fopen("EURUSD_M1_201312.csv", "r"))) {
printf("\ncan't open input file");
fclose(out);
return;
}
while (fgets(line, 64, in)) {
bars++;
if (sscanf(line, "%4d%2d%2d %2d%2d%2d;%f;%f;%f;%f;",
&year, &month, &day, &hour, &minute, &second,
&tick.fOpen, &tick.fHigh, &tick.fLow, &tick.fClose) == 10) {
tick.time = ConvertTime(year, month, day, hour, minute, second);
if (!fwrite(&tick, sizeof(tick), 1, out)) {
printf("\nwrite error");
fclose(in);
fclose(out);
return;
}
} else {
errors++;
}
}
fclose(in);
fclose(out);
printf("\nConverted: %d bars, %d errors", bars, errors);
}