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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2013, 17:17   #11
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
где я могу взять словари и как их подключать?
да нет, это мы уже тут в свою тему скатились Для простенькой программы не надо словарей. Как правильно заметил выше Ромаха, нужно, чтобы с начала строки до запятой шло имя, сразу после запятой - должность, а первое слово с большой буквы - имя фирмы. Тогда программа любое однотипно составленное предложение так разберет.

Код примерно такой:

Код:
ReadLn(s);
name:=Copy(s,1,pos(',',s)-1);
delete(s,1,pos(',',s));
dolj:=Copy(s,1,pos(' ',s)-1);
delete(s,1,pos(' ',s));
i:=1;
While not s[i] in ['А'..'Я'] or (i<=length(s)) do inc(i);
if i<>length(s) then begin
  firm:='';
  While (s[[i]<>' ') or (i<= length(s)) do firm:=firm+s[i];
end;
Как-то так, писал "на коленке"
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 12.05.2013, 17:28   #12
Лизавета7
Пользователь
 
Регистрация: 12.05.2013
Сообщений: 11
По умолчанию

вы бы не могли просто сделать программку которая бы получая именно это предложение выводила именно эти данные. Большего не надо. Мне нужно просто продемонстрировать как это должно выглядеть.Не более
Лизавета7 вне форума Ответить с цитированием
Старый 12.05.2013, 17:29   #13
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Код:
While (s[[i]<>' ') or (i<= length(s)) do firm:=firm+s[i];
Бесконечный цикл

Код:
While not s[i] in ['А'..'Я'] or (i<=length(s)) do inc(i);
А тут случаем не And будет?
Poma][a вне форума Ответить с цитированием
Старый 12.05.2013, 17:32   #14
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Ромаха, я ж говорю - на коленке писал, не особо следя за логикой - голова другим была занята. А для "исправить" тут куча народу есть. Ты, например



Цитата:
вы бы не могли просто сделать программку которая бы получая именно это предложение выводила именно эти данные.
Да легко, держите

to Ромаха: Там намного больше ошибок было

Код:
var s: string;
    i: integer;
begin
  s:=Edit1.Text;
  Label2.Caption:=Copy(s,1,pos(',',s)-1);
  delete(s,1,pos(',',s));
  Label3.Caption:=Copy(s,1,pos(' ',s)-1);
  delete(s,1,pos(' ',s));
  i:=1;
  While not (s[i] in ['А'..'Я']) and (i<=length(s)) do inc(i);
  if i<>length(s) then begin
    Label4.Caption:='';
    While (s[i]<>' ') and (i<= length(s)) do begin
      Label4.Caption:=Label4.Caption+s[i];
      inc(i);
    end;
  end;
end.
Вложения
Тип файла: zip программка.zip (203.7 Кб, 7 просмотров)
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Stilet; 13.05.2013 в 09:40.
Sciv вне форума Ответить с цитированием
Старый 12.05.2013, 17:50   #15
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Ты, например
Ах вот оно что..
Цитата:
Там намного больше ошибок было
Соpy, Delete и Pos'ы я не смотрел..
Poma][a вне форума Ответить с цитированием
Старый 12.05.2013, 17:56   #16
Лизавета7
Пользователь
 
Регистрация: 12.05.2013
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
Да легко, держите

to Ромаха: Там намного больше ошибок было

Код:
var s: string;
    i: integer;
begin
  s:=Edit1.Text;
  Label2.Caption:=Copy(s,1,pos(',',s)-1);
  delete(s,1,pos(',',s));
  Label3.Caption:=Copy(s,1,pos(' ',s)-1);
  delete(s,1,pos(' ',s));
  i:=1;
  While not (s[i] in ['А'..'Я']) and (i<=length(s)) do inc(i);
  if i<>length(s) then begin
    Label4.Caption:='';
    While (s[i]<>' ') and (i<= length(s)) do begin
      Label4.Caption:=Label4.Caption+s[i];
      inc(i);
    end;
  end;
end.
ВЫ МОЙ БОГ!!! Спасибо!
Лизавета7 вне форума Ответить с цитированием
Старый 12.05.2013, 18:03   #17
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
ВЫ МОЙ БОГ!!!
Эво как легко нынче обожествиться-то!

Цитата:
Соpy, Delete и Pos'ы я не смотрел..
Как раз в них-то все было правильно
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 12.05.2013, 18:08   #18
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Цитата:
Как раз в них-то все было правильно
А тогда что же я проморгал? А то и сейчас, сравнивая Ваши коды, разницы не вижу..
Poma][a вне форума Ответить с цитированием
Старый 12.05.2013, 18:10   #19
Лизавета7
Пользователь
 
Регистрация: 12.05.2013
Сообщений: 11
По умолчанию

А если я захочу поменять фамилию в этом предложении? как мне это сделать?

И ещё! Мне нужно чтобы на исходе выдавало
Имя: Андрей Васильев
Организация: Евроопт <---вот таким образом.

Последний раз редактировалось Stilet; 13.05.2013 в 09:44.
Лизавета7 вне форума Ответить с цитированием
Старый 12.05.2013, 18:12   #20
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
А если я захочу поменять фамилию в этом предложении? как мне это сделать?
Я там поле ввода сделал, в нем вместо фамилии введите новую, остальное предложение не трогайте.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
извлечение информации из текста Alejandr0 Microsoft Office Word 2 06.09.2010 14:23
RichViewEdit, извлечение текста Alter Компоненты Delphi 3 02.05.2010 14:02
извлечение текста Kavaler2i Общие вопросы Delphi 1 27.01.2010 17:18
извлечение текста и стилевой разметки из doc на с++ valid Общие вопросы C/C++ 0 06.04.2009 01:32