Trying to delete lines that start with an alphabet on a text file

10 visualizzazioni (ultimi 30 giorni)
Hi folks,
I have a huge textfile right here with around 100k lines and I am trying to delete all the lines that start with an alphabet (not deleting the ones that start with numbers). Can anybody help? I am having trouble structuring the m file.
Thanks.

Risposta accettata

Guillaume
Guillaume il 20 Ott 2014
Modificato: Guillaume il 20 Ott 2014
Use fopen, fgetl, fclose to read your file into a cell array and discard the lines you don't want. Or if you want to write a new file, use fopen, fprintf, fclose and write as your read:
fidi = fopen('somefile.txt', 'rt');
fido = fopen('newfile.txt', 'wt');
tline = fgetl(fidi);
while ischar(tline)
if ~isempty(tline) && tline(1) >= '0' && tline(1) <= '9'
%line to keep
fprintf(fido, '%s\n', tline);
end
tline = fgetl(fidi);
end
fclose(fidi);
fclose(fido);
edit: forgot to read the next line!
  2 Commenti
mt
mt il 20 Ott 2014
I tried it with a smaller text file, but 'Run' never ends for this code. What could be wrong?
Guillaume
Guillaume il 20 Ott 2014
Yep, I forgot a
tline = fgetl(tline);
within the loop. (You could have found that out in the documentation of fgetl that I linked).
I've edited my answer.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by