IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Как найти максимальное число в тексте?
KljaGGsa
сообщение 5.07.2009 18:57
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Женский

Репутация: -  0  +


Если есть текстовый файл Т.txt , в тексте которого содержится несколько трехзначных чисел, как должна выглядеть процедура, с помощью которой можно было бы найти максимальное число и присвоить его целочисленной переменной i ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 6.07.2009 12:46
Сообщение #2


Гость






Цитата
и нужно элементарно определить количество меток и соответственно фрагментов текста.
Общее количество строк в файле...
var sL: TStringList;
begin
sL := TStringList.Create;
try
sL.LoadFromFile('t.txt');
ShowMessage(IntToStr(sl.Count)); // <--- ... вычисляется вот так ...
finally
sL.Free;
end;
end;
..., а если его поделить на 2 - получишь количество фрагментов текста. Естественно, если внутри фрагмента может быть перевод строки, то придется чуть-чуть изменить алгоритм:
  sL := TStringList.Create; // Создаем СтрингЛист
try
sL.LoadFromFile('t.txt'); // читаем текст в Стринглист
// при этом всё, что до первого перевода строки будет записано в первую строку СтрингЛиста,
// после первого, но до второго - во вторую строку СтрингЛиста и т.д.
// Т.е., текст разбивается по строкам...

cnt := 0; // Обнуляем счетчик
for i := 0 to sL.Count - 1 do // Проходим по всем строкам СтрингЛиста и проверяем их содержимое
// если попытка перевести содержимое строки в число (TryStrToInt делает именно это)
// удачна (функция TryStrToInt вернула True), значит это - метка, и счетчик меток увеличиваем
// В случае неудачной попытки перевода в число TryStrToInt вернет False, а раз нельзя перевести
// что-то в число, то это "что-то" не может быть меткой, это фрагмент текста
if TryStrToInt(sL.Strings[i], value) Then Inc(cnt);

ShowMessage(IntToStr(cnt)); // Показываем, чего насчитали
finally
sL.Free; // Удаляем СтрингЛист полностью, он нам не нужен больше
end;


Сообщение отредактировано: volvo - 6.07.2009 15:06
 К началу страницы 
+ Ответить 

Сообщений в этой теме
KljaGGsa   Как найти максимальное число в тексте?   5.07.2009 18:57
volvo   Что кроме чисел есть в файле, и чем отделяются сло...   5.07.2009 18:59
KljaGGsa   Вот образец содержимого файла: 001 фрагмент текс...   6.07.2009 6:06
volvo   Общее количество строк в файле... var sL: TStringL...   6.07.2009 12:46
KljaGGsa   Вот на эту строчку: if TryStrToInt(sL.Strings[i],...   6.07.2009 14:00
volvo   Ну, так переменную Value типа Integer надо описать...   6.07.2009 14:32
KljaGGsa   Владимир, а можно Вас попросить добавить комментар...   6.07.2009 14:51
volvo   Комментарии добавлены...   6.07.2009 15:04
KljaGGsa   Так хотелось бы с вашей помощью эти комментарии пр...   6.07.2009 15:13
volvo   KljaGGsa, я имел в виду, что я в свой код, выше (в...   6.07.2009 15:31
KljaGGsa   Есть целочисленная переменная r, значение которой ...   6.07.2009 15:49
volvo   Смотри: procedure TForm1.Button2Click(Sender: TObj...   6.07.2009 17:41
KljaGGsa   Ну да, мы изначально условились, что r входит в ди...   6.07.2009 19:02
youngDelphyGirl   p := 5; // Будем искать в файле фрагмент № ...   5.08.2009 3:17
volvo   А если мы даже приблизительно не знаем, сколько фр...   5.08.2009 8:15
youngDelphyGirl   А нам и не надо знать, сколько фрагментов в текст...   6.08.2009 9:39
volvo   В принципе, не вижу проблем, чтоб хранить в файле ...   6.08.2009 11:14
youngDelphyGirl   Единственное, на что надо обратить внимание при ...   6.08.2009 13:47
volvo   Очень просто... На форме - Мемо, и две кнопки, од...   6.08.2009 15:06
youngDelphyGirl   Спасибо, сейчас начну писать построчные комментари...   9.08.2009 8:25


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 14.07.2025 0:44
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"