Форум: "Базы";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];
ВнизПомогите решить проблему Найти похожие ветки
← →
Ross (2002-03-29 23:02) [0]Здравствуйте. Мне нужно решить следующую задачу:
Есть база данных Paradox: Поле А, Поле Б. На форме Memo1, Memo2.
При нажатии на кнопку нужно:
1.Курсор в начале Mемо1;
2.Программа считывает первое слово до пробела из Memo1;
3.Если такое слово найдено в базе(Поле1), то заменяет на эквивалент из Поле2 и записывает в Memo2;
4.Если слово не найдено в базе(Поле1) то в Memo2 заносит символ "?";
5.Программа "проходит" пробел и цикл 2-4 повторяется до тех пор пока не закончились слова в Memo1.
Как мне решить это(кроме пункта 1)? Может кто решал уже подобную задачу, поделитесь кодом или хотя бы направлением. Буду очень признателен.
← →
Stialy (2002-03-30 10:55) [1]В чем проблема?
- выделить слово из строки, если не писать самому,
можно использовать, например, библиотеку QStrings. Если не ошибаюсь, там есть функция Q_StrTok, которая возвращает часть строки по указанынм разделителям
- Поиск? Стандартные средства поиск.
← →
Ross (2002-04-01 11:34) [2]Delaju tak:
i:integer;
s:string;
...
with memo1 do
begin
for i:=1 to pos(" ", Memo1.lines.text) do
begin
s:=Copy(Text, 1, i);
Find {procedura poiska v baze...}
Showmessage(s);
Memo1.SelPos:=i-1;
end;
end;
No tak poluchaetsa naiti tolko pervoe slovo iz memo1. Pomogite pojaluista
← →
Johnmen (2002-04-01 11:49) [3]Естессно, ведь это, извини, чушь...
Или напиши свои функции работы со строкой или используй уже написанные кем-то, напр.
WordCount, ExtractWord и т.д. из RxLib.
← →
Ross (2002-04-01 12:15) [4]Spasibo. Soglasen... Vot kogda nujno znat PASCAl, ne tolko stavit Button na formu :)...
Esli mojno daite primer, luboy, budu ochen priznatelen. Uje slishkom dolgo bius" chtobi samomu razobratsa.
Spasibo.
← →
Johnmen (2002-04-01 13:43) [5]Вот тебе пример из RxLib :
function WordCount(const S: string; const WordDelims: TCharSet): Integer;
var
SLen, I: Cardinal;
begin
Result := 0;
I := 1;
SLen := Length(S);
while I <= SLen do begin
while (I <= SLen) and (S[I] in WordDelims) do Inc(I);
if I <= SLen then Inc(Result);
while (I <= SLen) and not(S[I] in WordDelims) do Inc(I);
end;
end;
function ExtractWord(N: Integer; const S: string;
const WordDelims: TCharSet): string;
var
I: Integer;
Len: Integer;
begin
Len := 0;
I := WordPosition(N, S, WordDelims);
if I <> 0 then
{ find the end of the current word }
while (I <= Length(S)) and not(S[I] in WordDelims) do begin
{ add the I"th character to result }
Inc(Len);
SetLength(Result, Len);
Result[Len] := S[I];
Inc(I);
end;
SetLength(Result, Len);
end;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.04.22;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.022 c