Как узнать количество строк в файле паскаль

Обновлено: 05.07.2024

Assign(F, 'SomeTextFile.txt') ;
Reset(F);
Count := 0; // обнуляем счетчик
while not Eof(F) do begin
ReadLn(F, S); // читаем в S очередную строку из файла
// и делаем с ней все, что угодно, например, подсчитываем количество определенных символов
for i:= 1 to Length(S) do if S[i] = SomeCh then Inc(Count);
end;
Close(F);

С типами переменных разберитесь сами.

у меня все равно не получается. а текстовый файл должен быть с каким расширением? и создаем мы его как? в блокноте пишем и в папку паскаля закидываем или как? Gennady Гений (57663) Вообще-то тип файла определяется не расширением, а структурой. По определению текстовые файлы содержат цепочки символов различной длины, которые называются строками. Да, для удобства текстовым файлам присваивается расширение *.txt, чтобы сразу можно было понять с каким файлом мы имеем дело. Но, в принципе, расширение может быть любым и даже его вообще может не быть. Именно в блокноте и создается. И помещается туда, куда требуется пользователю. Да, говоря о паскале, указывайте версию. В PascalABC все это делается в пару строчек.


можно я еще спрошу? у меня программа работает только с первой строкой. а если в текстовом файле например 1000 символов хранится? как быть?
Gennady Гений (57663) Что значит "с первой строкой"? Текстовый файл по-определению состоит из строк. Цикл while not Eof(F) do выполняется до тех пор, пока не будет достигнут конец файла. При этом каждый раз процедурой ReadLn(F, S); считывается очередная строка, которая обрабатывается в цикле for для подсчета количества символов "Н". Если у вас файл состоит всего из одной строки, причем она длиной 1000 символов, то такой подход не прокатит, т. к. в паскале длина строки ограничена 255 символами. Значит, надо открывать этот текстовый файл как файл символов ( F : Filr of Char ), процедурой Read(F, Ch); считывать очередной символ в переменную Ch и проверять ее на интересующий символ. При совпадении наращивать счетчик. да цикл, это я и так понимаю, я не могу найти внятного образца работы с текстовым файлом. какой должен быть тип у переменных? в каком виде эта самая строка в файле должна быть записана (каждый элемент с новой или через пробел или как?) как выцепить из этой строки конкретный символ - никак не разберусь. пишу программу - нули какие-то выводит ((( помогите, пожалуйста! ALEX ALEX Оракул (55410) разницы нет как записан файл, однако желательна конкретика. а считывание с файла идет целой строкой, и уже она отрабатывается по символам, и там без разницы пробелы есть или нет.

Для pascal abc net наверное так
var
f: text;
n: integer = 0;
s: string;
c: char = 'a';

begin
assignfile(f, 'file.txt');
reset(f);
while not eof(f) do
begin
readln(f, s);
for var i := 1 to length(s) do
if s[i] = c then inc(n);
end;
closefile(f);
writeln('Count of symbol ', c, ' = ', n);
end.

не получается. суть программы понятна, но похоже есть какие-то ньюансы, на которые никто из профессионалов не обращает внимания, а мне они неизвестны, поэтому все никак ((( Вот скажите, как нужно создать этот самый текстовый файл? в блокноте или где? какой тип этого файла должен быть?


Скорее так:


Ну или так:

Доброго времени суток.
Мне нужно оформить программу,состоящая из 3ех функции.С 2умя я разобрался,но с 3 не могу понять.Нужно подсчитать кол-во строк в текстовом файле.
ПО сути,считает правильно,но не во всех случаях.Например:
При вводе
1
2
3
4
Он выдаст,что 4 строки, НО ,если после цифры "4" нажать <enter> - пояляется 5ая строка(пустая) и он ее не считает.Как быть?Вот код этой функции:

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь


Найти количество строк в текстовом файле
Напишите пожалуйста алгоритм нахождения кол-ва строк в текстовом файле

Найти количество строк в текстовом файле которые состоят из одних букв
Добрый день! Сильно не ругайтесь, я не слишком опытный :) Прошу помощи, есть задание: Описать.


Найти в текстовом файле количество строк, начинающихся и заканчивающихся одинаковыми символами
Помогите пожалуйста написать программу. Создать текстовый файл, содержащий символьные строки. Найти.

Найти количество строк в строковом файле
Помогите с решением задачи :Найти количество строк в строковом файле на прологе, заранее благодарен

НО ,если после цифры "4" нажать <enter> - пояляется 5ая строка(пустая) и он ее не считает Если ввести символ "A" и все,то он и покажет 1 строку,разве должно быть иначе? Если ввести символ "A" и все,то он и покажет 1 строку,разве должно быть иначе? Извини, я невнимательно посмотрел.
Все гораздо хуже. Ты, как и прежде, в конце инкрименируешь i..
А имеет смысл говорить с человеком, если он пропускает слова мимо ушей?
Хорошо, тогда поставим вопрос так: создай пустой файл. Например, в Проводнике кликни правой кнопкой и выбери Создать Текстовый Документ (извини, не знаю, как это в русской винде). В этом файле 0 символов. И значит ровно 0 строк. Твоя прога выдаст 1.
Это - ошибка. По поводу концовки: Да,я чего только не пробовал там изменить.
НО опять же,хотелось бы верить в то,что мне выведет "1" , но он выводит "0".Хоть там и стоит i+1.
Если даже создать файл и в нем нет ни символов,ничего,то 1 строка там присутствует.Это можно проверить при помощи функции "перейти" на какую-то строку.
Делая вывод из всего этого, "0" получить там невозможно,но у меня его выводит. отелось бы верить в то,что мне выведет "1" , но он выводит "0".Хоть там и стоит i+1.

Неправда. Выводит 1 на пустом файле. Извини, чудес не бывает, и я в них не поверю. Проверь внимательно, что запускаешь.

На мой взгляд - это неправильно. Ты, если хочешь, можешь считать, что это так и нужно (то есть, что НЕ БЫВАЕТ файлов, в которых 0 строк).

Я Вас понял,но я сам понимаю,что это глупо звучит и я понимаю.что он мне должен выводить "1" по моему коду,НО он не выводит ее,а выводит 0.
Но все равно спасибо за комментарии. он мне должен выводить "1" по моему коду,НО он не выводит ее,а выводит 0. Можете не верить,но я говорю как есть и вижу это своими глазами.Я Вам могу скинуть полностью всю свою программу с 3емя функциями и Вы можете в этом убедиться,но Вам это не зачем.
Но я говорю то , что я вижу.

Решение

Можете не верить,но я говорю как есть и вижу это своими глазами.Я Вам могу скинуть полностью всю свою программу с 3емя функциями и Вы можете в этом убедиться,но Вам это не зачем.
Но я говорю то , что я вижу

Скидывай.
Насчет незачем - так мне и вообще особо никому помогать незачем..
Ты не допускаешь, что можешь ошибаться? Или мне верить всему, что ты сказал видишь? и НЛО.
Короче, скидывай .

Добавлено через 35 минут
Так.
Короче, уважаемый AfterLife. Ты молчишь, а у меня время не резиновое.
Завтра я приду сюда и проверю.
Тот код, который у тебя в первом посте - он вообще не компилируется.
Если в нем закомментировать первую строку (и подкорректировать путь к файлу), то получится следующее:

В текстовом файле посчитать количество строк, а также для каждой отдельной строки определить количество в ней символов и слов.

Подсчет строк:
Ввести счетчик, присвоить ему 0.
Пока не будет достигнут конец файла, считывать очередную строку файла и увеличивать счетчик на 1.

Подсчет символов в строке:
Измерять длину очередной строки с помощью встроенный в язык программирования функции.

Подсчет слов в строке:

  1. Ввести счетчик слов и присвоить ему 0.
  2. Ввести флаговую переменную и присвоить ей 0 (сигнал нахождения вне слова).
  3. Пока не будет достигнут конец строки:
    1. Если очередной символ не пробел и флаг указывает на нахождение вне слова, то увеличить счетчик слов и присвоить флаговой переменной 1 (сигнал нахождения внутри слова).
    2. Если же очередной символ пробел, то присвоить флагу 0.

    Pascal


    Файл выполнен в среде GNU/Linux, компилятор FreePascal. Русские символы считаются за 2 символа. Например, в данном примере во второй строке 9 кириллических символа, пробел и восклицательный знак: 18 + 2 = 20 символов.

    Язык Си

    посчитать количество строк в файле си


    Тот же "эффект", что и в Паскале: кириллический символ считается за 2.

    Функция fgets() считывает строку вместе с символом перехода на новую строку. Аргумент N не позволяет считать больше указанного количества символов, но длина строки определяется по количеству считанных (т.е. фактической длиной строки).

    Python

    python количество строк в файле


    Символ перехода на новую строку учитывается.

    КуМир

    Здесь считается общее количество слов и символов.

    Basic-256


    Переход на новую строку учитывается как символ.


    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, ' - ');

    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.

    Hello world! - 12 симв., 2 сл.
    Привет мир! - 20 симв., 2 сл.
    One, two, three - 15 симв., 3 сл.
    Один, два, три - 24 симв., 3 сл.
    4 стр.


    Файл выполнен в среде GNU/Linux, компилятор FreePascal. Русские символы считаются за 2 символа. Например, в данном примере во второй строке 9 кириллических символа, пробел и восклицательный знак: 18 + 2 = 20 символов.

    посчитать количество строк в файле си

    word = 0;
    flag = 0;
    for (i=0; i

    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

    Hello world!
    13 симв. 2 сл.
    Привет мир!
    12 симв. 2 сл.
    One, two, three
    16 симв. 3 сл.
    Один, два, три
    15 симв. 3 сл.
    4 стр.

    Символ перехода на новую строку учитывается.

    использовать Файлы П
    алг
    нач
    цел 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
    кон

    Для участия в олимпиаде по информатике вы должны уметь работать с текстовыми файлами (считывать и записывать информацию). На олимпиадах, начиная с областных, они используются для ввода и вывода данных. Лучше всего попробовать работать с файлами до того, как Вы пойдете на олимпиаду.

    На этом уроке мы рассмотрим, как используются текстовые файлы для ввода и вывода данных в программе на языке Паскаль.

    Текстовые файлы – это файлы, содержащие символы, разделенные на строки. Причем в конце каждой строки стоит символ конца строки.

    Общая последовательность действий при работе с файлами в языке программирования Паскаль:

    1. описать переменную файлового типа;
    2. связать ее с конкретным физическим файлом процедурой Assign;
    3. открыть файл для чтения процедурой ReSet или для записи процедурой ReWrite;
    4. выполнить чтение или запись информации;
    5. по окончании работы с файлом закрыть файл процедурой Close.

    Описание переменной файлового типа

    С текстовым файлом на диске в программе должна быть связана файловая переменная, которая описывается с указанием стандартного типа Text:

    Связь переменной файлового типа с конкретным внешним файлом

    Для установления связи между файловой переменной и именем файла, присваиваемого операционной системой, имеется стандартная процедура Assign.

    Assign (<имя файловой переменной >, <имя внешнего файла>);

    Чтение из файла

    Под чтением из файла понимается ввод данных из внешнего файла, находящегося на диске, в оперативную память. Данные входного файла становятся доступными программе.

    Для чтения файла в программе необходимо выполнить следующие действия:

    Открыть файл для чтения:

    Reset (<имя файловой переменной >);

    Прочитать данные файла в программу с помощью процедуры Read или Readln .

    Процедура Read последовательно считывает все элементы строки:

    Read(<имя файловой переменной >,<элемент>)

    Процедура Readln – считывает элемент из текущей строки и переходит на следующую строку (независимо от того, достигнут конец строки или нет):

    Readln(<имя файловой переменной >,<элемент>)

    Если не указывать второй параметр, то произойдет переход в начало следующей строки без ввода данных:

    Readln (<имя файловой переменной>)

    Закрытие файла

    После завершения работы с файлом, его нужно закрыть и «освободить» файловую переменную . Это делается с помощью процедуры Сlose.

    Общий вид оператора:

    Close(<имя файловой переменной >)

    Общая форма чтения файла имеет вид:

    Reset(<имя файловой переменной >);

    Read(<имя файловой переменной >, <элемент>);

    Close(<имя файловой переменной >);

    Многоточием отмечено наличие других операторов в программе.

    Признак конца файла

    Так как, по определению, число элементов файла не задается заранее, то в языке Паскаль введена логическая функция Eof() для определения признака конца файла.

    Общий вид функции:

    Для определения конца файла используется оператор цикла, например, (пока не достигнут конец файла …):

    While Not EOF (<имя файловой переменной >) Do …

    Запись в файл

    Под записью файла понимается вывод результатов программы из оперативной памяти на диск, т.е. создание нового файла на внешнем устройстве.

    Для записи файла в программе необходимо выполнить следующие действия:

    Открыть файл для записи с помощью процедуры Rewrite:

    rewrite (<имя файловой переменной>);

    Записать данные в файл спомощью процедур Write или Writeln.

    Процедура Write производит запись поэлементно в текущую строку:

    Write (<имя файловой переменной >, <элемент>) ;

    Процедура WriteLn записывает элемент и переводит указатель в начало следующей строки:

    Writeln (<имя файловой переменной >,<элемент>);

    Если не указывать второй параметр процедуры, то в конце данной строки ставится признак конца файла и текущий указатель перемещается на начало следующей строки:

    WriteLn(<имя файловой переменной >);

    После завершения работы с файлом его закрытие обязательно.

    Общая форма записи файла имеет вид:

    ReWrite(<имя файловой переменной >);

    Write(<имя файловой переменной >,<элемент>) ;

    Close(<имя файловой переменной >);

    Логическая функция Eoln()

    Таким образом, для анализа конкретных символов строк файла можно применить вложенный цикл типа:

    Пример. Дан текстовый файл, содержащий только целые числа, в каждой строке может быть несколько чисел, которые разделяются пробелами. Вывести на экран все числа с учетом разбиения на строки и подсчитать количество элементов в каждой строке.

    Пусть в файле содержится следующая информация:

    -32 16 0 8 7
    4 5 9 13 11 -5 -8
    6 -8 0 12
    1 2
    -1 -2 -4
    -1 -2 4

    Этот файл можно создать в среде Паскаль следующим образом:

    1. Создать новый файл (команда Файл-Новый).
    2. Записать все числа в строке через пробелы.
    3. Сохранить его, например, как ‘primer1.dat’.
      Для этого в диалоговом окне сохранения файла в списке Тип файла выбрать Все файлы. В поле Имя файла ввести полное имя файла (имя с расширением).

    Программа будет иметь следующий вид:

    На этом уроке было рассмотрено, как использовать текстовые файлы для ввода и вывода данных в программе на языке Паскаль.
    На следующем уроке Вы узнаете, как использовать тип данных Bulean для представления данных логического типа.
    Следующий урок: Логический тип данных

    Урок понравился? Отзывы и замечания можно оставить в форме для комментариев, расположенной в нижней части страницы.

    Читайте также: