Effacer les filtres
Effacer les filtres

How to ignore or delete the last row of a text file when importing?

9 vues (au cours des 30 derniers jours)
Al
Al le 31 Mai 2015
Commenté : Star Strider le 31 Mai 2015
I am reading in data using textscan. Often times the last row of data is bad and throws an error. How can I ignore the last line? or is there code to delete the last row of data in the text file programmatically?

Réponse acceptée

Star Strider
Star Strider le 31 Mai 2015
It’s difficult to be specific without your file. If you know how many lines you want to read, you can set that limit as a parameter.
From the documentation:
  • C = textscan(fileID,formatSpec,N) reads file data using the formatSpec N times, where N is a positive integer. To read additional data from the file after N cycles, call textscan again using the original fileID. If you resume a text scan of a file by calling textscan with the same file identifier (fileID), then textscan automatically resumes reading at the point where it terminated the last read.
  2 commentaires
Al
Al le 31 Mai 2015
Modifié(e) : Al le 31 Mai 2015
I placed this code prior to texscan
fid = fopen('your_file.TXT','r');
fseek(fid, 0, 'eof');
chunksize = ftell(fid);
fseek(fid, 0, 'bof');
ch = fread(fid, chunksize, '*uchar');
nol = sum(ch == sprintf('\n')); % number of lines
fclose(fid)
Then I replaced the N in
C = textscan(fileID,formatSpec,N)
with
nol-2
This did it. Thank you.
Star Strider
Star Strider le 31 Mai 2015
My pleasure!

Connectez-vous pour commenter.

Plus de réponses (1)

Image Analyst
Image Analyst le 31 Mai 2015
Put it in a try catch block. Look it up in the help. You can just have your catch block be empty if you want to ignore any errors.

Catégories

En savoir plus sur Text Data Preparation dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by