Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 15.04.2015
Сообщений: 59

Не могу найти ошибку в коде

06.05.2015, 21:03. Показов 2973. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть текст обычный. Провели его через морфологический анализатор русского языка. Теперь 2 файла: первый оригинал текста, второй размеченный.
слева обычный
справа размеченный
Есть БД (со столбцами: объект1, объект 2, экземпляр, тип отношения). Загружаем Текст первый в RichEdit. а второй в RichEdit2.
из БД берутся слова(они хранятся в массиве). И эти слова нужно сначала найти в тексте слева. То есть. Если наше слова из БД находится между { и = то, слово стоящее перед { надо закрасить, но в тексте который срава)
ПРоцесс работы программы:Загрузить тексты в ричэдиты. Извлекаем слова из БД в массив,по запросу. Затем Эти слова ищем в тексте размеченном(ричэдит1). если в указанный промежуток { и = попадает, значит это же слово закрашиваем его в тексте обычном(ричэдит2).
Видимость RichEdit1=false
он для работы только с ним
После раскраски: если в пределах одного предложения есть два закрашенных слова существительных (в размеченном тексте они =S и падеж: им, а также есть любое не закрашенное слово =V то эту тройку нужно изъять)
и выдать пользователю.
он говорит отменить или добавить в бд


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
function SearchForText(RichEdit: TRichEdit): Boolean;
var
StartPos, Position, Endpos: Integer;
begin
for i:=1 to count do
begin
StartPos := 0;
with RichEdit do
begin
Endpos := Length(RichEdit.Text);
Lines.BeginUpdate;
while FindText(slova[i], StartPos, Endpos, [stMatchCase])<>-1 do
begin
Endpos := Length(RichEdit.Text) - startpos;
Position := FindText(slova[i]+' ', StartPos, EndPos, []); //stMatchCase
Inc(StartPos, Length(slova[i]+' '));
SetFocus;
SelStart := Position;
SelLength := Length(slova[i]);
SelAttributes.Style:=[fsBold];
SelAttributes.Color:=clYellow;
 
end;
Lines.EndUpdate;
end;
end;
end;
 
procedure TForm1.btn1Click(Sender: TObject);
begin
try
i:=1;
ADOQuery1.Active := False;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM Predikat WHERE TipOtn = "'+ DBComboBox1.Text+'"');
ADOQuery1.Active:=True;
while(ADOQuery1.Eof <> true) do
begin
slova[i]:= ADOQuery1.Fields[1].AsString;
i:=i+1;
slova[i]:= ADOQuery1.Fields[2].AsString;
i:=i+1;
slova[i]:= ADOQuery1.Fields[3].AsString;
count:=i;
i:=i+1;
ADOQuery1.Next;
end;
 
end;
end;
Пример. вот одно предложение в оригинале такое: 
1. Процессор есть центральное устройство компьютера.
в размеченном такое:
Процессор{процессор=S,муж,неод=им,ед|=S,муж,неод=вин,ед}
есть{есть=V,несов=инф,пе|есть=S,сред,неод=им,ед|=V,нп=наст,ед,изъяв,2-л,несов|=V,нп=наст,ед,изъяв,3-л,несов }
центральное{центральный=A=им,ед,полн,сред|=A=вин,ед,полн,сред}
устройство{устройство=S,сред,неод=им,ед|=S,сред,неод=вин,ед}
компьютера{компьютер=S,муж,неод=род,ед}
Пример. вот одно предложение в оригинале такое:
1. Процессор есть центральное устройство компьютера.
в размеченном такое:
Процессор{процессор=S,муж,неод=им,ед|=S, муж,неод=вин,ед}
есть{есть=V,несов=инф,пе|есть=S,сред,нео д=им,ед|=V,нп=наст,ед,изъяв,2-л,несов|=V,нп=наст,ед,изъяв,3-л,несов }
центральное{центральный=A=им,ед,полн,сре д|=A=вин,ед,полн,сред}
устройство{устройство=S,сред,неод=им,ед| =S,сред,неод=вин,ед}
компьютера{компьютер=S,муж,неод=род,ед}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.05.2015, 21:03
Ответы с готовыми решениями:

Не могу найти ошибку в коде
Нужно, чтобы программа показывала количество нечётных элементов массива. А у меня оно всё время выдаёт 1. program Project2; uses ...

Не могу найти ошибку в коде
Сформировать текстовый файл d из файла f, включая в него строки, которые начинаются на гласную букву. При компиляции он выдает все...

Не могу найти ошибку в коде
uses SysUtils; const t=5; type t1=array of integer; var n,m,max1,max2,l:integer; mas:t1; ...

43
0 / 0 / 0
Регистрация: 15.04.2015
Сообщений: 59
10.05.2015, 19:59  [ТС]
Студворк — интернет-сервис помощи студентам
VladWH, Но у меня почему то он не заполняет словами массив. Пошаговая проверку делал, там проверяет на
Delphi
1
for i:=0 to High(VWords) do
и затем просто перескакивает следующую строку. В чем может быть причина?
0
 Аватар для VladWH
243 / 193 / 94
Регистрация: 01.05.2015
Сообщений: 732
10.05.2015, 23:48
В том что в массиве 0 элементов. Видимо ты его не создал или в размеченном тексте нет ни одного глагола
0
0 / 0 / 0
Регистрация: 15.04.2015
Сообщений: 59
11.05.2015, 01:02  [ТС]
VladWH, Подключение есть. У тебя выдается предложение. А вот как выдавать триплеты: слово S, слово S, слово V?
0
 Аватар для VladWH
243 / 193 / 94
Регистрация: 01.05.2015
Сообщений: 732
11.05.2015, 10:57
Записывать их в переменные при анализе приложения... сейчас только кол-во считается, допиши чтобы найденное слово записывалось в переменную и все
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.05.2015, 10:57

Не могу найти ошибку в коде
Слова в тексте разделены пробелом. Подсчитать количество слов, длина которых не превышает 4-х букв. Код вроде верный, а программа выдает...

Не могу найти ошибку в коде
В общем сидел я делал програмку и тут столкнулся с не понятной вещью. Сидел около часа, но так и не понял в чем я ошибся. В...

Не могу найти ошибку в коде
Вот такая задачка: Какое давление на дно сосуда оказывает слой керосина высотой 0,6м? Пользователь может задать произвольное значение...

Не могу найти ошибку в коде
Здравствуйте. Очень нужна помощь. Есть форма 1, на ней расположены компонент RadioGroup c двумя вариантами ответа Да и Нет (RadioButton) и...

Не могу найти ошибку в коде Delphi
Текст Задачи: Описать класс «Обыкновенная дробь» с двумя полями: числитель и знаменатель, с двумя перегруженными конструкторами,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
44
Ответ Создать тему
Новые блоги и статьи
Жара жесть.
kumehtar 18.08.2026
Пролетают летом дни Тридцать пять жары в тени. Каждый август год от года Дарит жаркую погоду.
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru