Посчитать количество строк в файле и количество слов и символов в каждой строке
Авторgospodaretsva.comПросмотров9.7к.Обновлено
В текстовом файле посчитать количество строк, а также для каждой отдельной строки определить количество в ней символов и слов.
Подсчет строк: Ввести счетчик, присвоить ему 0. Пока не будет достигнут конец файла, считывать очередную строку файла и увеличивать счетчик на 1.
Подсчет символов в строке: Измерять длину очередной строки с помощью встроенный в язык программирования функции.
Подсчет слов в строке:
Ввести счетчик слов и присвоить ему 0.
Ввести флаговую переменную и присвоить ей 0 (сигнал нахождения вне слова).
Пока не будет достигнут конец строки:
Если очередной символ не пробел и флаг указывает на нахождение вне слова, то увеличить счетчик слов и присвоить флаговой переменной 1 (сигнал нахождения внутри слова).
Если же очередной символ пробел, то присвоить флагу 0.
Pascal
var
f: text;
s: string;
line, chr, wrd: word;
i: byte;
flag: boolean;
begin
assign(f,'text.txt');
reset(f);
line := 0;
while not EOF(f) do begin
readln(f,s);
write(s, ' - ');
line := line + 1;
chr := length(s);
write(chr, ' симв., ');
wrd := 0;
flag := false;
for i:=1 to chr do
if (s[i] <> ' ') and (flag = false) then begin
wrd := wrd + 1;
flag := true;
end
else
if s[i] = ' ' then flag := false;
writeln(wrd, ' сл.');
end;
close(f);
writeln(line,' стр.');
end.
Файл выполнен в среде GNU/Linux, компилятор FreePascal. Русские символы считаются за 2 символа. Например, в данном примере во второй строке 9 кириллических символа, пробел и восклицательный знак: 18 + 2 = 20 символов.
Язык Си
посчитать количество строк в файле си
#include < stdio.h>
#include < string.h>
#define N 255
main() {
FILE *f;
char s[N];
unsigned short line, word, flag, i;
line = 0;
f = fopen("text.txt","r");
while (fgets(s, N, f) != NULL) {
line += 1;
word = 0;
flag = 0;
for (i=0; i < strlen(s); i++)
if (s[i] != ' ' && flag == 0) {
word += 1;
flag = 1;
} else
if (s[i] == ' ') flag = 0;
Тот же "эффект", что и в Паскале: кириллический символ считается за 2.
Функция fgets() считывает строку вместе с символом перехода на новую строку. Аргумент N не позволяет считать больше указанного количества символов, но длина строки определяется по количеству считанных (т.е. фактической длиной строки).
Python
python количество строк в файле
f = open('text.txt')
line = 0
for i in f:
line += 1
flag = 0
word = 0
for j in i:
if j != ' ' and flag == 0:
word += 1
flag = 1
elif j == ' ':
flag = 0
использовать Файлы П
алг
нач
цел f, line, word, char, in, i
лит s
line := 0
word := 0
char := 0
f := открыть на чтение ("текст.txt")
нц пока не конец файла (f)
Фввод f, s
line := line + 1
вывод s, нс
char := char + длин(s)
in := 0
нц для i от 1 до длин(s)
если s[i] <> " " и in = 0 то
word := word + 1
in := 1
иначе
если s[i] = " " то in := 0 все
все
кц
кц
закрыть(f)
вывод нс, "строк - ", line, нс
вывод "слов - ", word, нс
вывод "символов - ", char
кон
Привет, Мир!
Hello World!
5, 4 ...
строк - 3
слов - 7
символов - 32
Здесь считается общее количество слов и символов.
Basic-256
open "text.txt"
ln = 0
while not eof
ln = ln + 1
s$ = readline
i = 1
word = 0
flag = 0
while i <= length(s$)
c$ = mid(s$,i,1)
if c$ <> " " and flag = 0 then
word = word + 1
flag = 1
else
if c$ = " " then flag = 0
endif
i = i + 1
endwhile
print s$ + length(s$) + ", " + word
endwhile
close
print "Строк: " + ln
Hello world!
13, 2
Привет мир!
12, 2
One, two, three
16, 3
Один, два, три
15, 3
Строк: 4
Переход на новую строку учитывается как символ.
Подписаться
1 Комментарий
Новые
СтарыеПопулярные
Межтекстовые Отзывы
Посмотреть все комментарии
Анна
1 год назад
здравствуйте! Python интересует в каждой строке учитывается переход на следующую строку, но в последней строке нет этого перехода, но все равно он будто есть(и в вашем варианте, и в моем)
f = open(‘dzfile.txt’,’r’) a = 0 for i in f.readlines(): a +=1 print(‘Количество символов в строке:’, len(i)) print(‘Количество строк:’, a)
либо полностью удалить подсчет перехода на новую строку
f = open(‘dzfile.txt’,’r’) a = 0 for i in f.readlines(): a +=1 print(‘Количество символов в строке:’, len(i.strip(‘\n’))) print(‘Количество строк:’, a)
а как убрать только в последней строке не понимаю
Pascal
var f: text; s: string; line, chr, wrd: word; i: byte; flag: boolean; begin assign(f,'text.txt'); reset(f); line := 0; while not EOF(f) do begin readln(f,s); write(s, ' - ');
line := line + 1;
chr := length(s); write(chr, ' симв., ');
wrd := 0; flag := false; for i:=1 to chr do if (s[i] ' ') and (flag = false) then begin wrd := wrd + 1; flag := true; end else if s[i] = ' ' then flag := false; writeln(wrd, ' сл.'); end; close(f); writeln(line,' стр.'); end.
Файл выполнен в среде GNU/Linux, компилятор FreePascal. Русские символы считаются за 2 символа. Например, в данном примере во второй строке 9 кириллических символа, пробел и восклицательный знак: 18 + 2 = 20 символов.
Язык Си
посчитать количество строк в файле си
#include < stdio.h> #include < string.h> #define N 255 main() { FILE *f; char s[N]; unsigned short line, word, flag, i; line = 0; f = fopen("text.txt","r"); while (fgets(s, N, f) != NULL) { line += 1;
word = 0; flag = 0; for (i=0; i < strlen(s); i++) if (s[i] != ' ' && flag == 0) { word += 1; flag = 1; } else if (s[i] == ' ') flag = 0;
Тот же "эффект", что и в Паскале: кириллический символ считается за 2.
Функция fgets() считывает строку вместе с символом перехода на новую строку. Аргумент N не позволяет считать больше указанного количества символов, но длина строки определяется по количеству считанных (т.е. фактической длиной строки).
Python
python количество строк в файле
f = open('text.txt') line = 0 for i in f: line += 1
flag = 0 word = 0 for j in i: if j != ' ' and flag == 0: word += 1 flag = 1 elif j == ' ': flag = 0
использовать Файлы П алг нач цел f, line, word, char, in, i лит s line := 0 word := 0 char := 0 f := открыть на чтение ("текст.txt") нц пока не конец файла (f) Фввод f, s line := line + 1 вывод s, нс char := char + длин(s) in := 0 нц для i от 1 до длин(s) если s[i] " " и in = 0 то word := word + 1 in := 1 иначе если s[i] = " " то in := 0 все все кц кц закрыть(f) вывод нс, "строк - ", line, нс вывод "слов - ", word, нс вывод "символов - ", char кон
Привет, Мир! Hello World! 5, 4 ...
строк - 3 слов - 7 символов - 32
Здесь считается общее количество слов и символов.
Basic-256
open "text.txt" ln = 0 while not eof ln = ln + 1 s$ = readline i = 1 word = 0 flag = 0 while i
здравствуйте! Python интересует
в каждой строке учитывается переход на следующую строку, но в последней строке нет этого перехода, но все равно он будто есть(и в вашем варианте, и в моем)
f = open(‘dzfile.txt’,’r’)
a = 0
for i in f.readlines():
a +=1
print(‘Количество символов в строке:’, len(i))
print(‘Количество строк:’, a)
либо полностью удалить подсчет перехода на новую строку
f = open(‘dzfile.txt’,’r’)
a = 0
for i in f.readlines():
a +=1
print(‘Количество символов в строке:’, len(i.strip(‘\n’)))
print(‘Количество строк:’, a)
а как убрать только в последней строке не понимаю