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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.04.2011, 19:08   #11
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Итак, после некоторых попыток самостоятельной работы и использованием выложенных кодов, был придуман такой вариант.
Сначала пишется функция:
Код:
function GetText1(OpenTag,aText,CloseTag:string):string;
begin
 Result:=Copy(aText,AnsiPos(OpenTag,aText)+Length(OpenTag),AnsiPos(CloseTag,aText)-Length(CloseTag)-1);
end;
потом в кнопке пишется такой код (где применяется функция выше):
Код:
procedure TForm1.sBitBtn2Click(Sender: TObject);
const a: array [1..4] of String = (' в отношении ',' ОГРН ',' ИНН ',' ');
var i,j,k: Integer;
    s,ResultS: string;
begin
  ResultS:='';
  s:=Form1.sRichEdit1.Text;
  for i:=1 to 4 do
  begin
    j:=Pos(a[i],s);
    if j=0 then Break;
    k:=Pos(a[i+1],s);
    if (k=0) or (k<j) then Break;
    ResultS:=ResultS+Copy(s,j+Length(a[i]),k -j-Length(a[i]))+' ';
    s:=Copy(s,k,Length(s)-k);
  end;
  if ResultS <> '' then ResultS:=Copy(ResultS + 'ИНН ',1,Length(' ОГРН ' +ResultS)-1) + GetText1(' ИНН ',sRichEdit1.Text,' ');
  ShowMessage(ResultS);
end;
Получается сообщение например: ЗАО "Весна" 123456 ИНН 000000
Все почти пучком. Только вопрос: как добавить слово "ОГРН" между ЗАО "Весна" и 123456, чтобы оно было перед 123456?

Теперь по коду Аватара. Когда я думал над кодом выше, я не видел, что ты добавил там. Попробовал его и есть только один аналогичный вопрос: как добавить слова "ОГРН" и "ИНН" в результат, чтобы получалось, например, ЗАО "Весна" ОГРН 123456 ИНН 000000? Если решить хотя бы один из этих вопросов, то задача будет решена и дальше я сам уже.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 09.04.2011, 19:34   #12
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
const a: array [1..4] of String = ('<Left>','<Center>','<right>',' ');
var i,j: Integer;
    s,ResultS: string;
begin
  ResultS:='';
  s:='...<Left>left Text<Center>center text<right>12 ...';
  for i:=1 to 3 do begin
    j:=Pos(a[i],s);
    if j=0 then Break;
    s:=Copy(s,j+Length(a[i]),Length(s)-j-Length(a[i])+1);
    j:=Pos(a[i+1],s);
    if (j=0) and (i<3) then Break;
    if j=0 then ResultS:=ResultS+s+' '
           else ResultS:=ResultS+Copy(s,1,j-1)+' ';
    if i=1 then ResultS:=ResultS+'ОГРН '
    else if i=2 then ResultS:=ResultS+'ИНН ';
    s:=Copy(s,j,Length(s)-j+1);
  end;
  if ResultS<>'' then ResultS:=Copy(ResultS,1,Length(ResultS)-1);
  ShowMessage(ResultS);
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.04.2011, 19:59   #13
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Огромное спасибо всем за помощь!
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти слова, в которых доля букв "а" и "е" минимальна. Андрей_ка Паскаль, Turbo Pascal, PascalABC.NET 0 10.10.2010 16:56
все слова с нечетным количеством букв подходят для "ёлочной" рекурсии. Все буквы слова расположены в форм no_to Помощь студентам 0 04.01.2010 16:06
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04
"Транспортная задача", "Поиск решения" Perroman Microsoft Office Excel 3 12.12.2007 17:12