Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lazarus
Войти
Регистрация
Восстановить пароль
 
maksmkv
2 / 2 / 1
Регистрация: 29.08.2012
Сообщений: 111
#1

Как оптимизировать код?

16.10.2014, 00:13. Просмотров 343. Ответов 4
Метки нет (Все метки)

Есть такой кусок кода:
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
for j:=0 to Memo2.Lines.Count-1 do
    begin
      if Pos('кв.А', Memo2.Lines.Strings[j]) >0 then
      Memo2.Lines.Strings[j]:=StringReplace(Memo2.Lines[j], 'кв.А', 'А', [rfReplaceAll, rfIgnoreCase]);
    end;
     for j:=0 to Memo2.Lines.Count-1 do
    begin
      if Pos('кв.Б', Memo2.Lines.Strings[i]) >0 then
      Memo2.Lines.Strings[j]:=StringReplace(Memo2.Lines[j], 'кв.Б', 'Б', [rfReplaceAll, rfIgnoreCase]);
    end;
     for j:=0 to Memo2.Lines.Count-1 do
    begin
      if Pos('кв.В', Memo2.Lines.Strings[i]) >0 then
      Memo2.Lines.Strings[j]:=StringReplace(Memo2.Lines[j], 'кв.В', 'В', [rfReplaceAll, rfIgnoreCase]);
    end;
     for j:=0 to Memo2.Lines.Count-1 do
    begin
      if Pos('кв.Г', Memo2.Lines.Strings[i]) >0 then
      Memo2.Lines.Strings[j]:=StringReplace(Memo2.Lines[j], 'кв.Г', 'Г', [rfReplaceAll, rfIgnoreCase]);
    end;
 
    ........................................................
 
    for j:=0 to Memo2.Lines.Count-1 do
    begin
      if Pos('кв.Ю', Memo2.Lines.Strings[i]) >0 then
      Memo2.Lines.Strings[j]:=StringReplace(Memo2.Lines[j], 'кв.Ю', 'Ю', [rfReplaceAll, rfIgnoreCase]);
    end;
    for j:=0 to Memo2.Lines.Count-1 do
    begin
      if Pos('кв.Я', Memo2.Lines.Strings[i]) >0 then
      Memo2.Lines.Strings[j]:=StringReplace(Memo2.Lines[j], 'кв.Я', 'Я', [rfReplaceAll, rfIgnoreCase]);
    end;
Есть набор строк в Memo2.Text - код пробегает по каждой стоке и ищет совпадение, например: в строке встречается фараза кв.Ю - удаляем кв. и оставляем только букву Ю.
1. Как можно весь этот код переписать - у меня сделано таким образом для всех букв алфавита и для маленьких и для больших.
2. Почему при замене кв.Я - получается буква П. ??? Хотя все остальные буквы обрабатываются норм.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2014, 00:13
Ответы с готовыми решениями:

работа со строчкой: помогите оптимизировать мой тупой код)
Что имеем: строчку в которой записан процесс разложения числа на множетели...

Утечка, или как оптимизировать программу?
Есть небольшая программа для определения активного окна юзера и внесения в базу...

Как оптимизировать код?
Как оптимизировать код, чтобы работала программа быстрее #include <iostream>...

Как оптимизировать код?
Вот такой код, написанный для микроконтроллера импульсного блока питания....

Как оптимизировать код?
как можно вместо кучи строк добавить цикл в запрос на MySQL? if...

4
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25983 / 17424 / 6910
Регистрация: 22.10.2011
Сообщений: 30,668
Записей в блоге: 6
16.10.2014, 01:00 #2
Замени весь этот ужас на:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
uses LCLProc;
 
// ...
var
  s, sub: string;
  i: integer;
begin
  s := 'АБВГДЕ...ЭЮЯабвгде...эюя'; // алфавит дополни сам ...
  for i := 1 to UTF8Length(s) do
  begin
    sub := UTF8Copy(s, i, 1);
    Memo2.Text := StringReplace(Memo2.Text, 'кв.' + sub, sub, [rfReplaceAll, rfIgnoreCase]);
  end;
end;
Добавлено через 1 минуту
Цитата Сообщение от maksmkv Посмотреть сообщение
Почему при замене кв.Я - получается буква П. ???
Не воспроизводится. Нормально убирается и "кв." перед "Я", ничего не меняется...
0
maksmkv
2 / 2 / 1
Регистрация: 29.08.2012
Сообщений: 111
17.10.2014, 01:25  [ТС] #3
Не работает код (((, а точнее не совсем так как хотелось бы.
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25983 / 17424 / 6910
Регистрация: 22.10.2011
Сообщений: 30,668
Записей в блоге: 6
17.10.2014, 02:16 #4
Ну, значит, бери и пиши так, как хотелось бы. Сам... Потому как я не телепат, и что тебе там "хотелось бы" - не знаю. А теперь уже и знать не хочу... Ибо неинтересно. Опять потратишь на тебя время, и что в ответ? Опять "не так, как хотелось бы"? Плавали, знаем таких...

Не по теме:

Вот и помогай после этого людям. Выложил рабочее решение, так "не так как хотелось бы", чтобы скопировать и сдать... Самому надо допиливать к остальному фиг знает как написанному коду, оказывается... Вот незадача-то

0
maksmkv
2 / 2 / 1
Регистрация: 29.08.2012
Сообщений: 111
17.10.2014, 23:51  [ТС] #5
Код отлично заработал, но остались вопросы. Постарался изложить в личку. Я не прошу писать полностью код, но переделав чуть под себя - не заработал. Не более того. Спасибо, что помогаете.
0
17.10.2014, 23:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2014, 23:51

Как оптимизировать код?
как привести это в красивый вид? если учесть что таких label будет over 100 А...

Как оптимизировать код?
ch : char; ... If ch='1' then Write(F2, ch); If ch='2' then Write(F2,...

Как оптимизировать код
Доброй ночи господа у меня к вам такая просьба как можно упростить данный код?...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru