code_24879.txt
Задача:
требуется сделать накопитель чисел. Подумав решил сделать способ показанный выше.
но нужно предусмотреть в схеме отмену последних введённых чисел(или числа), а на текущем варианте это в корне неудобно
также требуется сделать поиск по комбинациям чисел
думаю какой использовать способ из наиболее быстрыхудобных
Этот топик читают: Гость
Ответов: 1528
Рейтинг: 57
|
|||
карма: 0 |
| ||
файлы: 1 | code_24879.txt [136B] [149] |
Ответов: 3889
Рейтинг: 362
|
|||
карма: 1 |
|
Ответов: 1528
Рейтинг: 57
|
|||
1nd1g0, если использовать StrList то нужно преобразовывать все числа в строку, а если чисел много то это уже будет медленнее чем мой вариант
|
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
hitman249 писал(а): если использовать StrList то нужно преобразовывать все числа в строкуА StrCatDelim совсем не преобразовывает все "числа в строку" ? procedure THIStrCatDelim._work_doStrCatDlm; var s1,s2,d1:string; begin s1 := ReadString(_Data,_data_Str1,_prop_Str1); s2 := ReadString(_Data,_data_Str2,_prop_Str2); d1 := ReadString(_Data,_data_Delimiter,_prop_Delimiter); FRes := s1 + d1 + s2; _hi_CreateEvent(_data, @_event_onStrCatDlm, FRes); end; hitman249, как говорит nesco: "не смеши мои тапочки" |
|||
карма: 25 |
|
Ответов: 1528
Рейтинг: 57
|
|||
Tad, ты предлагаешь использовать StrList, а потом склеивать все числа через StrCatDelim или я чтото недопонял?
|
|||
карма: 0 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
hitman249, если по честному, то я вообще не понимаю, что тебе надо.
Если использовать StrList.doAdd для накопления, а потом заменить на компонентом Replace- получишь "склейку" через пробел. Еще раз повторюсь - нет ясности в поставленной задаче. |
|||
карма: 25 |
|
Ответов: 5227
Рейтинг: 587
|
|||
Вариант project_1.sha
|
|||
карма: 4 |
| ||
файлы: 1 | project_1.sha [1KB] [142] |
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 1 раз(а), последний 2017-03-03 16:18:59 |
|||
карма: 0 |
|
Ответов: 1528
Рейтинг: 57
|
|||
как сделано сейчас: числа добавляются простой склейкой через StrCatDelim получается строка(числа с пробелами),
далее поиск, берётся полученная выше строка, оттуда первые шесть чисел (отсчитываем по пробелам, т.к. числа могут быть и двузначными), ищутся совпадение по всей строке (которая будет просто огромная). тоесть я почему отказался от StrList, потому что перед поиском нужно все числа из него выдёргивать и склеивать в цельную строку, а она может быть очень большой, что скажется на производительности(пользователь подумает что программа зависла ещё ненароком). а в StrCatDelim все числа уже в строке и переделывать ничего не нужно, но проблемно делать отмену неверно введённого числа. ------------ Дoбавленo в 20.26:
|
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
hitman249 писал(а): перед поиском нужно все числа из него выдёргивать и склеивать в цельную строкуArrayFind |
|||
карма: 1 |
|
Ответов: 8928
Рейтинг: 823
|
|||
hitman249, вот (ссылка удалена, см ниже) Ну а когда же не спрашивать, а отвечать
------------ Дoбавленo в 21.38: 1nd1g0, ещё разик помогите |
|||
карма: 19 |
|
Ответов: 3889
Рейтинг: 362
|
|||
карма: 1 |
| ||
файлы: 1 | code_24883.txt [4.8KB] [144] |
Ответов: 1528
Рейтинг: 57
|
|||
Леонид, спасибо конечно, но немного не то
мне числа по отдельности искать не нужно, hitman249 писал(а): поиск по комбинациям чиселПРИМЕР у вас: ищем 1 12 13 20 Находим 29 25 12 14 11 1 18 7 13 16 23 20 То что требуется: ищем 1 12 13 20 Находим 29 25 12 14 11 1 18 7 13 16 23 20 21 15 9 13 1 12 13 20 16 33 2 14 |
|||
карма: 0 |
|
Ответов: 8928
Рейтинг: 823
|
|||
hitman249, ищется (и удаляется) именно комбинация подряд идущих чисел
------------ Дoбавленo в 09.46: Комбинация задаётся через пробел ------------ Дoбавленo в 09.48: 1nd1g0, спасибо |
|||
карма: 19 |
|
Гость
Ответов: 17029
Рейтинг: 0
|
|||
Редактировалось 1 раз(а), последний 2017-03-03 16:19:00 |
|||
карма: 0 |
|