Подскажите алгоритм сортировки данных из строки...

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Всем привет, такая вот задачка, есть некая строка типа

Код: Выделить всё

<текст>(<цифра>); <текст>(<цифра>); <текст>(<цифра>); и т.д. 
Нужно каждый текст вытащить в Едит1, Едит3, Едит5 и т.д., каждую цифру в Едит2, Едит4, Едит6 и т.д.

Жду ваших соображений, меня клинит :-) Заранее благодарен!
Blood_Magic
Сообщения: 273
Зарегистрирован: 30 июн 2005, 14:53

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
var
  s:string;
  i,p:integer;
  sl:TStringList;
begin
  s:='<текст>(<цифра>); <текст>(<цифра>); <текст>(<цифра>);';

  sl:=TStringList.Create;
  sl.Text:=StringReplace(s,');',#13#10,[rfReplaceAll]);
  for i:=0 to sl.Count-1 do
    begin
      s:=Trim(sl.Strings[i]);
      p:=Pos('(',s);
      TEdit(FindComponent('Edit'+IntToStr(i shl 1+1))).Text:=Copy(s,1,p-1);
      TEdit(FindComponent('Edit'+IntToStr(i shl 1+2))).Text:=Copy(s,p+1,MaxInt);
    end;

  sl.Free;
end;
p.s.: Главное чтобы едитов на форме хватило... Либо сделать:

Код: Выделить всё

процедуре СреатеЕдит;
бегин
  http://www.developing.ru/forum/viewtopic.php?t=6681
енд;
- Чем юзер похож на обезьяну?
- Он жмет на все, что жмется, дергает все, что дергается и крутит все, что крутится.
- Чем юзер отличается от обезьяны?
- У обезьяны хватает ума не воспроизводить ту последовательность, которая приводит к краху системы.
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Обалдеть! Не думал что так просто можно :) Блин, не знаю в чем проблема, Создал новый проект, запихнул на кнопку этот код, все работает как нада. Иду в свой проект, создаю там кнопку на 4-й форме, кидаю код, компилю, выдает ошибку Ундекларед идентифиер, гляжу справку, смотрю ей нужен модуль Классес, он у меня стоит, открыл первый проект и сравнил все подключаемые модули
Это в моей проге:

Код: Выделить всё

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, ExtCtrls;
А это в первом проекте(который работает :-) ):

Код: Выделить всё

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
И в чем дело тут может быть???
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Все! Разобрался!!! ОГРОМНАЯ БЛАГОДАРНОСТЬ С МОЕЙ СТОРОНЫ!!! Чтоб я без вас делал :)
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Ответить