Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.03.2009, 02:13
elfer elfer вне форума
Новичок
 
Регистрация: 06.02.2009
Сообщения: 63
Репутация: 10
По умолчанию Работа с мемо

1) На каждой строке в мемо есть число, как найти минимальное число и узнать на какой строке оно находится.
2) если найдено несколько одинаковых значении, например нулевых, и находящимся к примеру на строках 2, 7 и 10. Как сделать так чтобы оператор рандом выбрал одно из этих чисел (2,7 или 10)
Ответить с цитированием
  #2  
Старый 10.03.2009, 02:42
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Пока пара встречных вопросов.
1. Как представлено число? Арабские,Римские или прописью.
2. Используется ли разделитель в числах, какой?
Ответить с цитированием
  #3  
Старый 10.03.2009, 02:54
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,034
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Найти через цикл. Обычно выдается первое или последнее число, соответствующее условию поиска. Можно пройтись вторым циклом и найим позиции всех чисел, равных найденному в первом проходе и выбрать одну из них. Код писать не буду - сам думай, задача элементарная.
Ответить с цитированием
  #4  
Старый 10.03.2009, 11:34
elfer elfer вне форума
Новичок
 
Регистрация: 06.02.2009
Сообщения: 63
Репутация: 10
По умолчанию

Все цифры арабские. Если можно напишите листинг
Ответить с цитированием
  #5  
Старый 10.03.2009, 21:20
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Вот вам такое решение:
PHP код:
procedure TForm34.Button1Click(SenderTObject);
function 
CustomSort(List: TStringListIndex1Index2Integer): Integer;
begin
 Result 
:= 0;
 if 
StrToInt(Copy(List[Index1],1,Pos('_',List[Index1])-1)) > StrToInt(Copy(List[Index2],1,Pos('_',List[Index2])-1)) then Result := 1;
 if 
StrToInt(Copy(List[Index1],1,Pos('_',List[Index1])-1)) < StrToInt(Copy(List[Index2],1,Pos('_',List[Index2])-1)) then Result := -1;
end;

var
  
iInteger;
  
SourceTMemo;
  List: 
TStringList;
begin
 Source 
:= TMemo.CreateParented(Self.Handle);
 
Source.Lines.Add('1 2 3 4 5 6');
 
Source.Lines.Add('7 8 9 0 10');
 
Source.Lines.Add('11 12 13 20 14');
 
Source.Lines.Add('15 16 17 18 19');
 
Memo1.Text := Source.Text;

 List := 
TStringList.Create;
 List.
Text := '';
 for 
:= 0 to Source.Lines.Count 1
 
do List.Text := List.Text StringReplace(WrapText(Source.Lines[i]+' ',#13#10,[#32],1),#32,'_'+IntToStr(i),[rfReplaceAll]);
 
List.CustomSort(@CustomSort);
 
Memo2.Text := List.Text;
end
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:02.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter