Leer archivo de fecha-hora y generar fichero formato fechas YYYYMMDD H:MM
Publicado por Jorge (5 intervenciones) el 16/11/2017 14:22:40
Hola, tengo el siguiente drama, tengo que leer un archivo .TXT generado desde una BD, que entrega, en una misma columna, la fecha en formato DD-MM y en la siguiente linea, datos cada 1 hora desde las 00:50 a las 23:50 hasta el siguiente dia. Estoy hace poco tiempo programando en Matlab y me faltan experiencia por adquirir
Me explico, el archivo viene asi, en una misma linea
16-09 (Dia)
0:50
1:50
.
.
23:50
17:09 (dia sgte), etc
Debo generar un archivo de salida con el siguiente formato, asumiendo que año es 2017, que lo asigno previamente
20170916 00:50 + "Datos"
20170916 01:50 + "Datos"
.
.
20170916 23:50 + "Datos"
20170917 + "Datos"
etc
Estuve intentando con ImportData y tratando de separar la lectura cuando el digito sea "-" para el dia y ":" hora pero la verdad es que se me ha complicado,
Estos son algunas de las lineas del algoritmo que cree.
En el caso del Datevec puedo estar utilizandolo incorrectamente.
Por eso acudo a ustedes, amigos.
Muchas gracias por su ayuda
Saludos
Me explico, el archivo viene asi, en una misma linea
16-09 (Dia)
0:50
1:50
.
.
23:50
17:09 (dia sgte), etc
Debo generar un archivo de salida con el siguiente formato, asumiendo que año es 2017, que lo asigno previamente
20170916 00:50 + "Datos"
20170916 01:50 + "Datos"
.
.
20170916 23:50 + "Datos"
20170917 + "Datos"
etc
Estuve intentando con ImportData y tratando de separar la lectura cuando el digito sea "-" para el dia y ":" hora pero la verdad es que se me ha complicado,
Estos son algunas de las lineas del algoritmo que cree.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
for i=2: length(fechahora)
A=fechahora(i);v=0;
v=strfind(A,'-');
x=datevec(fechahora(i));
if v{1} == 3 % el digito "-" va en la 3ra posicion
v_ano=ano_ini; %(se asigna previamente)
v_mes=x(:,2);v_dia=x(:,3);
if v_mes(i) == 12 && v_dia(i) == 31
ano_ini = ano_ini + 1;
end
else
e=strfind(A,':'); % Busca la hora
if e{1} == 2
v_hora=x(:,1);v_min=x(:,3);
elseif e{1} == 3
v_hora=x(:,2);v_min=x(:,4);
end
end
En el caso del Datevec puedo estar utilizandolo incorrectamente.
Por eso acudo a ustedes, amigos.
Muchas gracias por su ayuda
Saludos
Valora esta pregunta


0