
guardar un archivo txt a una matriz por columnas
Publicado por Jorge (2 intervenciones) el 29/10/2014 20:08:10
Tengo un archivo en txt con los siguientes datos:
13:17:50.551563 IP 192.168.1.16.137 > 192.168.1.255.137: UDP, length 50
13:17:51.301848 IP 192.168.1.16.137 > 192.168.1.255.137: UDP, length 50
13:17:51.611852 arp who-has 192.168.1.52 tell 192.168.1.254
13:17:52.221109 IP 192.168.1.25.49696 > 224.0.0.252.5355: UDP, length 22
13:17:52.321378 IP 192.168.1.25.49696 > 224.0.0.252.5355: UDP, length 22
13:17:52.533686 IP 192.168.1.25.137 > 192.168.1.255.137: UDP, length 50
13:17:52.635613 arp who-has 192.168.1.25 tell 192.168.1.11
13:17:52.650948 IP 192.168.1.25.63882 > 224.0.0.252.5355: UDP, length 22
13:17:52.753877 IP 192.168.1.25.63882 > 224.0.0.252.5355: UDP, length 22
13:17:53.046546 arp who-has 192.168.1.11 tell 192.168.1.25
13:17:57.858547 IP 192.168.1.11.57621 > 192.168.1.255.57621: UDP, length 44
13:17:58.157433 IP 192.168.1.4.61888 > 239.255.255.250.1900: UDP, length 125
13:17:58.159184 IP 192.168.1.4.61888 > 239.255.255.250.1900: UDP, length 123
13:17:58.437663 IP 192.168.1.16.54577 > 193.149.76.137.443: tcp 69
.
.
.
13:18:36.612028 IP 93.184.215.200.80 > 192.168.1.16.54584: tcp 395
Lo que quiero es poder guardarlos en una matriz, separados por columnas, y luego poder ir a una columna especifica como por ejemplo decir M [1:2] y que me muestre si es IP, IP6, arp, etc, al utilizar un código me lo guarda pero en una cell y toda la información me queda en una celda y no la puedo recorrer.
El Código utilizado es este:
clear;clc;
[Nombre_Arch, Dir_Arch] = uigetfile('*.txt', 'Seleccione un archivo de texto');
if isequal(Nombre_Arch,0)
return;
else
Archivo=fullfile(Dir_Arch, Nombre_Arch);
end
Dat = fopen(Archivo,'r');
n=1;
while ~feof(Dat)
leer_linea = fgetl(Dat);
if isempty(leer_linea) || ~ischar(leer_linea), break, end
C(n)= cellstr(leer_linea);
n=n+1;
end
fclose(Dat);
C=C';
disp(C);
13:17:50.551563 IP 192.168.1.16.137 > 192.168.1.255.137: UDP, length 50
13:17:51.301848 IP 192.168.1.16.137 > 192.168.1.255.137: UDP, length 50
13:17:51.611852 arp who-has 192.168.1.52 tell 192.168.1.254
13:17:52.221109 IP 192.168.1.25.49696 > 224.0.0.252.5355: UDP, length 22
13:17:52.321378 IP 192.168.1.25.49696 > 224.0.0.252.5355: UDP, length 22
13:17:52.533686 IP 192.168.1.25.137 > 192.168.1.255.137: UDP, length 50
13:17:52.635613 arp who-has 192.168.1.25 tell 192.168.1.11
13:17:52.650948 IP 192.168.1.25.63882 > 224.0.0.252.5355: UDP, length 22
13:17:52.753877 IP 192.168.1.25.63882 > 224.0.0.252.5355: UDP, length 22
13:17:53.046546 arp who-has 192.168.1.11 tell 192.168.1.25
13:17:57.858547 IP 192.168.1.11.57621 > 192.168.1.255.57621: UDP, length 44
13:17:58.157433 IP 192.168.1.4.61888 > 239.255.255.250.1900: UDP, length 125
13:17:58.159184 IP 192.168.1.4.61888 > 239.255.255.250.1900: UDP, length 123
13:17:58.437663 IP 192.168.1.16.54577 > 193.149.76.137.443: tcp 69
.
.
.
13:18:36.612028 IP 93.184.215.200.80 > 192.168.1.16.54584: tcp 395
Lo que quiero es poder guardarlos en una matriz, separados por columnas, y luego poder ir a una columna especifica como por ejemplo decir M [1:2] y que me muestre si es IP, IP6, arp, etc, al utilizar un código me lo guarda pero en una cell y toda la información me queda en una celda y no la puedo recorrer.
El Código utilizado es este:
clear;clc;
[Nombre_Arch, Dir_Arch] = uigetfile('*.txt', 'Seleccione un archivo de texto');
if isequal(Nombre_Arch,0)
return;
else
Archivo=fullfile(Dir_Arch, Nombre_Arch);
end
Dat = fopen(Archivo,'r');
n=1;
while ~feof(Dat)
leer_linea = fgetl(Dat);
if isempty(leer_linea) || ~ischar(leer_linea), break, end
C(n)= cellstr(leer_linea);
n=n+1;
end
fclose(Dat);
C=C';
disp(C);
Valora esta pregunta


0