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

Поиск мин. и макс. значения по третьему столбцу в тхт файле

01.07.2019, 19:51. Показов 670. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Прошу помощи у знающих. Есть код, представленный ниже, в нем поиск мин. и макс. значения по третьему столбцу в тхт файле, он приложен. Проблема в том, что ищет только целые числа, без десятых. Как сделать, что поиск происходил не только по целым, а по всему столбцу.

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
var
  List: TStringList;
  i, min, max: integer;
begin
  List := TStringList.Create;
  List.LoadFromFile('0001.txt');
 
  //поиск минимального
  min := StrToInt(Copy(List[0], 22, 24));
  for i := 1 to List.Count - 1 do
    if StrToInt(Copy(List[i], 22, 24)) < min then
      min := StrToInt(List[i]);
 
  //поиск максимального
  max := StrToInt(Copy(List[0], 22, 24));
  for i := 1 to List.Count - 1 do
    if StrToInt(Copy(List[i], 22, 24)) > max then
      max := StrToInt(List[i]);
 
  //вывод
  Label1.Caption := 'Минимальное = ' + IntToStr(min);
  Label2.Caption := 'Максимальное = ' + IntToStr(max);
  List.Free;
end;
И еще вопросик. В одной версии файла txt столбцы разделены пробелом #9 и после столбца третьего еще #9 , как принудительно сделать перевод #9 в ' ' (в обычный пробел) ... это для удобного отображения содержимого файла.
Вложения
Тип файла: txt 0001.txt (168 байт, 5 просмотров)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.07.2019, 19:51
Ответы с готовыми решениями:

Нахождение макс/мин значения в текстовом файле
var a:array of char; f1,f2:text; j,g;integer; begin assign (f1,'f11.txt'); reset(f1); ...

Чтение из файла,поиск макс и мин значения
Помогите доделать программу, файл заполняется случайными числами от 1 до 100, кол-во указывает...

Мин. и макс. элементы в файле
Не находит мин. и макс. элементы. Где ошибка? int max=0,min=0;...

Найти макс/мин в файле
Доброго времени суток. У меня есть три колонки чисел в файле, я их читаю вот так...

7
3584 / 2194 / 692
Регистрация: 29.05.2013
Сообщений: 9,368
01.07.2019, 21:51 2
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
var
  Rows, Cols: TStringList;
  i: Integer;
  MinValue, MaxValue: Real;
begin
 Rows := TStringList.Create;
 Rows.LoadFromFile('0001.txt');
 for i := 0 to Rows.Count - 1
 do begin
    Cols := TStringList.Create;
    Cols.Delimiter := #32;
    Cols.DelimitedText := Rows.Strings[i];
    if i = 0
    then begin
         MinValue := StrToFloat(Cols.Strings[2]);
         MaxValue := MinValue;
         end;
    MinValue := Min(MinValue, StrToFloat(Cols.Strings[2]));
    MaxValue := Max(MaxValue, StrToFloat(Cols.Strings[2]));
    Cols.Free;
    end;
 Label1.Caption := 'Минимальное = ' + FloatToStr(MinValue);
 Label2.Caption := 'Максимальное = ' + FloatToStr(MaxValue);
end;
0
0 / 0 / 0
Регистрация: 16.03.2019
Сообщений: 15
01.07.2019, 22:21  [ТС] 3
Благодарю добрый человек, буду пробовать )))
0
Житель Земли
3002 / 3004 / 391
Регистрация: 26.07.2011
Сообщений: 11,463
Записей в блоге: 1
08.07.2019, 15:28 4
Цитата Сообщение от Антон 89 Посмотреть сообщение
столбцы разделены пробелом #9
это не пробел, а символ табуляции. пробел имеет код #32

Цитата Сообщение от Антон 89 Посмотреть сообщение
для удобного отображения содержимого файла
как раз для удобного отображения более удобен символ табуляции
0
0 / 0 / 0
Регистрация: 16.03.2019
Сообщений: 15
08.07.2019, 17:36  [ТС] 5
Согласен с Вами, но у меня на форме компонент ListBox и в нем отображается содержимое txt файла, в файле столбцы разделены табуляцией #9, а в ListBoxе всё слитно, вот я и хотел разделить для удобного просмотра. Подскажите как это сделать...
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm2.Button1Click(Sender: TObject);
begin
 if not OpenDialog1.Execute then Exit;
 if OpenDialog1.FileName = '' then Exit;
 if TXTData = nil then TXTData:= TStringList.Create else TXTData.Clear;
 TXTData.LoadFromFile(OpenDialog1.FileName);
 ListBox1.Items:=TXTData;
 Button2.Enabled:=True;
end;
Вложения
Тип файла: txt 0001.txt (163 байт, 1 просмотров)
0
3584 / 2194 / 692
Регистрация: 29.05.2013
Сообщений: 9,368
08.07.2019, 17:53 6
Вы если второе сообщение внимательно посмотрите обнаружите там загадочную строчку:
Delphi
1
Cols.Delimiter := #32;
так если написать
Delphi
1
Cols.Delimiter := #9;
может чудо и свершится
0
0 / 0 / 0
Регистрация: 16.03.2019
Сообщений: 15
08.07.2019, 18:20  [ТС] 7
Возможно и случится)))), спасибо
0
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,140
09.07.2019, 10:56 8
Антон 89, зачем заморачиваться с пробелами
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
VAR
list,num:TStringList;
i:Integer;
min,max:Double;
s:String;
begin
if not OpenDialog1.Execute then exit;
list := TStringList.Create;
num  := TStringList.Create;
list.LoadFromFile(OpenDialog1.FileName);
 
for i := 0 to list.Count-1 do begin
    s := list[i];
    s := Copy(s,LastDelimiter(#9,s)+1,Length(s)-LastDelimiter(#9,s)+1);
    s := Trim(s);
    num.Add(s);
    //Memo1.Lines.Add(s);
    end;
list.Free;
 
min := StrToFloat(num[0]);
max := StrToFloat(num[0]);
 
for i := 1 to num.Count-1 do begin
    if StrToFloat(num[i]) < min then min := StrToFloat(num[i]);
    if StrToFloat(num[i]) > max then max := StrToFloat(num[i]);
    end;
num.Free;
 
Memo1.Lines.Add('Min=' + FloatToStr(min));
Memo1.Lines.Add('Max=' + FloatToStr(max));
end;
0
09.07.2019, 10:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.07.2019, 10:56
Помогаю со студенческими работами здесь

Поиск макс и мин
Знайти найбільше та найменше значення цільової функції 2*xˆ3-8*yˆ2+7*z+1=f(x,y,z) ...

Макс и мин значения в двумерном массиве.
Дан массив 10*15. Надо найти максимальное и минимальное значение каждого столбца и строки....

Rand(); рамки мин/макс значения
Не могу разобраться, в учебники да и на сайте идёт такой пример // автоматическая рандомизация...

Массив поиск мин-макс элемента
Задание: Определить в массиве элемент, самый большой в своей строчке и самый минимальный в своем...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru