Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/29: Рейтинг темы: голосов - 29, средняя оценка - 4.76
4 / 4 / 0
Регистрация: 21.03.2010
Сообщений: 64

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

20.03.2011, 12:26. Показов 5518. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Хочу подсчитать определенные строки в файле, но ошибка чтения потока возникает.
m- это количество строк в файле, занести это количество в другой файл
newTp -это строковый тип. В чем может быть ошибка?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
m:=0;
 
 streamH:= TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
 
    StreamH.Seek(0, soFromEnd);
 
    Begin
     inc(m);
     SetLength(str,m*sizeof(newTp));
       StreamH.ReadBuffer(str[m], SizeOf(str[m]));
 End;
    k:=0;
  for i:=1 to m do
   Begin
 Комментарий модератора 
Код следует обрамлять тегами - это требование правил форума. Для оформления кода Delphi надо выделить этот код и на панели редактирования сообщения нажать кнопку "DELPHI".


Добавлено через 55 минут
Цитата Сообщение от stydentka Посмотреть сообщение
Здравствуйте. Хочу подсчитать определенные строки в файле, но ошибка чтения потока возникает.
m- это количество строк в файле, занести это количество в другой файл
newTp -это строковый тип. В чем может быть ошибка?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
m:=0;
 
 streamH:= TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
 
    StreamH.Seek(0, soFromEnd);
 
    Begin
     inc(m);
     SetLength(str,m*sizeof(newTp));
       StreamH.ReadBuffer(str[m], SizeOf(str[m]));
 End;
    k:=0;
  for i:=1 to m do
   Begin
Код следует обрамлять тегами - это требование правил форума. Для оформления кода Delphi надо выделить этот код и на панели редактирования сообщения нажать кнопку "DELPHI".
Нужно ли обнулять количество строк и захватывать память динамического массива?

У кого-нибудь есть пример с перенсом определенных строк в другой файл текстовый через поток?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.03.2011, 12:26
Ответы с готовыми решениями:

Подсчет количества абзацев в текстовом файле
здравствуйте!!помогите пожалуйста решить задачу!!мне дан текстовый файл,нужно посчитать в нем количество абзацев(абзац-это или пустая...

Подсчет и сравнение количества букв ‘А’ и ‘О’ в текстовом файле
Составить программу подсчета и сравнения количества букв ‘А’ и букв ‘О’ в заданном текстовом файле произвольной длины. Результат оформить...

Ограничение количества строк в файле
Здравствуйте. Скачиваю файл, в нем например 5000 строк. Как сделать что бы программа оставила только первые 1000 строк, а остальные удалила...

3
 Аватар для Darth_Vaider
58 / 57 / 28
Регистрация: 17.01.2011
Сообщений: 181
20.03.2011, 12:28
Может, лучше запихать файл в СтрингЛист, и посмотреть count?
0
Фрилансер
Эксперт С++
 Аватар для Dekio
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,373
Записей в блоге: 1
20.03.2011, 14:01
Darth_Vaider, при очень больших файлах стринг лист работает не корректно.
0
 Аватар для Mawrat
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
20.03.2011, 16:19
Подсчёт строк в файле можно выполнить так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
procedure TForm1.Button1Click(Sender: TObject);
var
  F : TextFile;
  S : String;
  Cnt : Integer;
  Od : TOpenDialog;
begin
  Od := OpenDialog1;
  if Od.InitialDir = '' then
    Od.InitialDir := ExtractFilePath( Application.ExeName )
  ;
  if not Od.Execute then Exit;
  if not FileExists(Od.FileName) then begin
    MessageDlg(
      'Файл с заданным именем не найден. Действие отменено.'
      ,mtWarning, [mbOK], 0
    );
    Exit;
  end;
 
  AssignFile(F, Od.FileName);
  Reset(F);
  Cnt := 0;
  while not Eof(F) do begin
    //Читаем строку.
    Read(F, S);
    //Eoln(F) возвращает True, если файловый указатель оказался
    //на позиции конца строки, либо на позиции конца файла.
    if Eoln(F) then Inc(Cnt);
    //Читаем знак конца строки (если он присутствует).
    Readln(F);
  end;
  CloseFile(F);
 
  //Ответ.
  ShowMessage('Всего строк в файле: ' + IntToStr(Cnt));
end;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.03.2011, 16:19
Помогаю со студенческими работами здесь

Подсчёт количества символов и количества строк в файле
Нужно написать программу, которая запрашивает у пользователя имя (адрес) текстового файла, далее открывает его и считает в нем количество...

Подсчёт количества строк в текстовом файле
Создать текстовый файл с произвольным текстом и через меню предусмотреть следующие действия: 1) просмотр содержимого файла; 2)...

Подсчет количества строк в файле в С++ (fstream)
Добрый день! Для подсчета строк в файле до сего момента использовал С'шные функции. Пожалуйста, подскажите, как это можно сделать,...

Подсчет количества строк в текстовом файле
Здравствуйте, есть 2 файлика Excel. Необходимо написать скрипт, который подсчитывал бы кол-во записей в 1 файлике и вставлял такое кол-во...

подсчет количества заданных строк в выбранном файле
скажите, мне требуется реализовать: 1. "подсчет количества заданных строк в выбранном файле, каждая строка ищется отдельным...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru