Добрый день всем!
У меня вопрос должно быть легкий, но я над ним очень долго думаю уже.
Написал код, он отрабатывает, но не так, как нужно.
Есть два поля memo. В одном из них текст с артикулами.
В другое поле надо вывести списком артикулы. Помогите разобраться, пожалуйста, если возможно с комментариями.
===========================================================================================
Код программы
===========================================================================================
procedure TForm1.Button5Click(Sender: TObject);
const
//Разделители слов.
D = ['|'];
P = [' '];
var
S, sWord, pWord : String;
i, j, Pos2, Len, LenW : Integer;
begin
S := Memo1.lines.Text;
Memo2.Clear;
Memo2.Lines.Add('ООО "Артикулы"');
Len := Length(S);
Pos2 := 0;
j := 0;
for i := Len downto 1 do begin
//Пропускаем разделители.
if S[i] in D then Continue;
//Отслеживаем конец слова.
if (i = Len) or (S[i + 1] in D) then Pos2 := i;
//Отслеживаем начало слова.
if (i = 1) or (S[i - 1] in P) then begin
//Порядковый номер слова:
Inc(j);
//Длина слова.
LenW := Pos2 - i +1;
//Слово.
sWord := Copy(S, i, Lenw);
//Добавляем сведения о слове в Memo2.
Memo2.Lines.Add(sWord);
end;
end;
===========================================================================================
Текст из memo1
===========================================================================================
Балансир Lucky John CLASSIC 4 + тр. 40мм/19 81401-19|
Балансир Lucky John CLASSIC 4 + тр. 40мм/40 блисте 81401-40|
Балансир Lucky John CLASSIC 5 + тр. 50мм/41 блисте 81501-41|
Балансир Lucky John CLASSIC 5 + тр. 50мм/42 блисте 81501-42|
Балансир Lucky John CLASSIC 6 + тр. 60мм/12HRT бли 81601-12HRT|
Балансир Lucky John CLASSIC 6 + тр. 60мм/36RT блис 81601-36RT|
Балансир Lucky John CLASSIC 7 + тр. 70мм/47H блист 81701-47H|
Балансир Lucky John FIN 3 + тр. 40мм/42 блистер 71313-42|
===========================================================================================
Текст из memo2 После обработки должен быть
===========================================================================================
81401-19
81401-40
81501-41
81501-42
81601-12HRT
81601-36RT
81701-47H
71313-42
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.