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

> ВНИМАНИЕ!

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

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

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


Новичок
*

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

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


Если есть текстовый файл Т.txt , в тексте которого содержится несколько трехзначных чисел, как должна выглядеть процедура, с помощью которой можно было бы найти максимальное число и присвоить его целочисленной переменной i ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #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 -
 К началу страницы 
+ Ответить 

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


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

 





- Текстовая версия 6.09.2025 9:51
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name