Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2011, 17:33   #11
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Да, вначале ТС говорит о цифрах, потом о загадочном "совпадающем значении", можно понимать как угодно.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 29.01.2011, 18:16   #12
NiKiToZZ-
Пользователь
 
Регистрация: 28.12.2010
Сообщений: 28
По умолчанию

мне нужно чтобы если в есть в 1-ой и 20-ой строчке цифра "242" то прога мне эти первую и двадцатую строчки подсвечивала
NiKiToZZ- вне форума Ответить с цитированием
Старый 29.01.2011, 19:38   #13
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от NiKiToZZ-
цифра "242"
нет такой цифры!

NiKiToZZ-, а скажите, Вы разницу между ЧИСЛОМ и ЦИФРОЙ знаете?


Цитата:
Сообщение от veniside
вначале ТС говорит о цифрах, потом о загадочном...
да числа ему нужны, числа...
Осталось выпытать одно число может быть в одной строке или несколько разных чисел (ну и что должна делать программа в этом случае).



а может вышеприведённый предположение не такое фантастическое?!!
NiKiToZZ-, а что, Вам нужно совпадение только тех строк,
где есть именно число 242 (двести сорок два) и никакое другое Вас не интересует?!!

Последний раз редактировалось Serge_Bliznykov; 29.01.2011 в 19:40.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.01.2011, 20:31   #14
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Кстати, мемо не может подсветить несколько разных строк с пропусками. Ну т.е. стандартное мемо не может.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 31.01.2011, 03:52   #15
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию Получить номера строк, в которых числа дублируются в других строках

Не спится что-то... Извините за "нечитабельность", давно не спится


Код:
function ListOfNumbers(str:string; var list: TStringList): Boolean;
var temp: string;
    len, i: Integer;
    last: BOOL;
Begin
    len:=Length(str);
    temp:='';
    last:=False;
    
    list.Clear;
    list.Sorted:=True;
    list.Duplicates:=dupIgnore;

    for i:=1 to len do
      Begin
        if str[i] in ['0'..'9'] then
          Begin
            temp:=temp+str[i];
            last:=True;
          end
        else
          if (last) and (Length(temp)>1) then
            begin
              list.Append(temp);
              temp:='';
              last:=false;
            end;
      end;
   if Length(temp)>1 then
     list.Append(temp);
end;

function HaveNumber(str: string): Boolean;
var len, i: Integer;
    f: Boolean;
Begin
    len:=Length(str);
    f:=False;
    for i:=1 to len-1 do
      if (str[i] in ['1'..'9']) and (str[i+1] in ['0'..'9']) then
        Begin
          f:=True;
          Break;
        end;
    Result:=f;
end;

procedure TForm1.Button3Click(Sender: TObject);
const EMPTY = -1;
      NONE = -2;
var i,fam, sam,j,k,am, q1: Integer;
    str:string;
    l: TStringList;
    Res: array of Integer;
begin
  fam:=Memo1.Lines.Count-2;
  sam:=fam+1;

  SetLength(Res,Memo1.Lines.Count);
  for i:=0 to sam do
    Res[i]:=EMPTY;

  q1:=GetTickCount;
  l:=TStringList.Create;
  try
    for i:=0 to fam do
      if Res[i]=EMPTY then
        Begin
          str:=Memo1.Lines[i];
          if HaveNumber(str) then
            begin
              ListOfNumbers(str,l);
              for j:=i+1 to sam do
                Begin
                  str:=Memo1.Lines[j];
                  if Res[j]=EMPTY then
                    for k:=0 to l.Count-1 do
                      if Pos(l[k],str)<>0 then
                        Begin
                          Res[j]:=j;
                          Res[i]:=i;
                          Break;
                        end;
                end;
            end
          else
            begin
              Res[i]:=NONE;
            end;
        end;

    Label4.Caption:=IntToStr((GetTickCount-q1))+' ms.';
    am:=0;

    for i:=0 to sam do
      if Res[i]>0 then
        Inc(am);

    Label6.Caption:=IntToStr(Memo1.Lines.Count);
    Label2.Caption:=IntToStr(am);

  finally
    l.Free;
  end;
end;
sources.rar
Оптимизировать и править еще есть что, но уже лень
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"

Последний раз редактировалось AlDelta; 31.01.2011 в 04:07.
AlDelta вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск совпадающих или похожих значений jekich Microsoft Office Excel 4 14.08.2010 20:55
Удаление совпадающих строк в Combobox panuta Microsoft Office Excel 1 01.06.2010 21:03
удаление совпадающих строк varelik Общие вопросы Delphi 8 20.03.2010 21:57
Поиск строк по символам в Memo Nocturnal Помощь студентам 2 15.12.2009 17:33
Поиск и удаление совпадающих строк в разных листах hybrid84 Microsoft Office Excel 11 24.07.2009 05:13