mirror of
https://gitea.psi.ch/ELOG/elog.git
synced 2026-09-10 18:23:28 +00:00
Improved CSV date import
SVN revision: 2168
This commit is contained in:
parent
10f11e013e
commit
6cb8827af6
68
src/elogd.c
68
src/elogd.c
@ -14244,34 +14244,42 @@ void csv_import(LOGBOOK * lbs, const char *csv, const char *csvfile)
|
|||||||
strlcpy(date, list + datecol*NAME_LENGTH, sizeof(date));
|
strlcpy(date, list + datecol*NAME_LENGTH, sizeof(date));
|
||||||
ltime = date_to_ltime(date);
|
ltime = date_to_ltime(date);
|
||||||
if (ltime <= 0) {
|
if (ltime <= 0) {
|
||||||
strcpy(str, loc("Invalid date format"));
|
/* try other date formats */
|
||||||
strlcat(str, ": \"", sizeof(str));
|
ltime = convert_datetime(date);
|
||||||
strlcat(str, date, sizeof(str));
|
if (ltime <= 0)
|
||||||
strlcat(str, "\"", sizeof(str));
|
ltime = convert_date(date);
|
||||||
show_error(str);
|
if (ltime <= 0) {
|
||||||
return;
|
strcpy(str, loc("Invalid date format"));
|
||||||
} else {
|
strlcat(str, ": \"", sizeof(str));
|
||||||
if (!filltext) {
|
strlcat(str, date, sizeof(str));
|
||||||
/* submit entry */
|
strlcat(str, "\"", sizeof(str));
|
||||||
if (el_submit
|
show_error(str);
|
||||||
(lbs, 0, FALSE, date, attr_list,
|
return;
|
||||||
(char (*)[NAME_LENGTH]) (list + attr_offset * NAME_LENGTH), n_attr, "", "", "", "plain",
|
|
||||||
NULL, TRUE, NULL))
|
|
||||||
n_imported++;
|
|
||||||
} else {
|
|
||||||
strlcpy(line, list + textcol * NAME_LENGTH, 10000);
|
|
||||||
insert_breaks(line, 78, 10000);
|
|
||||||
|
|
||||||
for (i = textcol; i < n_attr + attr_offset; i++)
|
|
||||||
strlcpy(list + i * NAME_LENGTH, list + (i + 1) * NAME_LENGTH, NAME_LENGTH);
|
|
||||||
|
|
||||||
/* submit entry */
|
|
||||||
if (el_submit
|
|
||||||
(lbs, 0, FALSE, date, attr_list,
|
|
||||||
(char (*)[NAME_LENGTH]) (list + attr_offset * NAME_LENGTH), n_attr, line, "", "", "plain",
|
|
||||||
NULL, TRUE, NULL))
|
|
||||||
n_imported++;
|
|
||||||
}
|
}
|
||||||
|
/* convert back ltime to date */
|
||||||
|
get_rfc2822_date(date, sizeof(date), ltime);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!filltext) {
|
||||||
|
/* submit entry */
|
||||||
|
if (el_submit
|
||||||
|
(lbs, 0, FALSE, date, attr_list,
|
||||||
|
(char (*)[NAME_LENGTH]) (list + attr_offset * NAME_LENGTH), n_attr, "", "", "", "plain",
|
||||||
|
NULL, TRUE, NULL))
|
||||||
|
n_imported++;
|
||||||
|
} else {
|
||||||
|
strlcpy(line, list + textcol * NAME_LENGTH, 10000);
|
||||||
|
insert_breaks(line, 78, 10000);
|
||||||
|
|
||||||
|
for (i = textcol; i < n_attr + attr_offset; i++)
|
||||||
|
strlcpy(list + i * NAME_LENGTH, list + (i + 1) * NAME_LENGTH, NAME_LENGTH);
|
||||||
|
|
||||||
|
/* submit entry */
|
||||||
|
if (el_submit
|
||||||
|
(lbs, 0, FALSE, date, attr_list,
|
||||||
|
(char (*)[NAME_LENGTH]) (list + attr_offset * NAME_LENGTH), n_attr, line, "", "", "plain",
|
||||||
|
NULL, TRUE, NULL))
|
||||||
|
n_imported++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -18596,8 +18604,12 @@ time_t convert_datetime(char *date_string)
|
|||||||
} else
|
} else
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
if (!strchr(p, ' '))
|
||||||
|
return 0;
|
||||||
|
p = strchr(p, ' ')+1;
|
||||||
|
|
||||||
strlcpy(str, p, sizeof(str));
|
strlcpy(str, p, sizeof(str));
|
||||||
p = strtok(p, ":");
|
p = strtok(str, ":");
|
||||||
if (p) {
|
if (p) {
|
||||||
hour = atoi(p);
|
hour = atoi(p);
|
||||||
p = strtok(NULL, ":");
|
p = strtok(NULL, ":");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user