Здравствуйте.
Помогите пожалуйста решить задачку.
Есть список строк в виде: число1;число2
Нужно проверить число2 на совпадение в остальных строках.
Если совпадений нет, то число1, записать в файл: U-1
Если совпадения есть, то каждое последующее совпавшее число1, записывать в новый файл.
Например: U-2 U-3 U-4 U-5 U-6 U-7 и так далее.
Думаю, что не понятно объяснил, попробую привести пример:
Например в строках есть такие значения:
224013;230425939757
224420;230425939757
223333;230425939757
555555;230425939757
Берём первую строку и проверяем на совпадения. Найдено 4 строки.
Нужно в файл U-1, записать: 224013
в файл U-2, записать: 224420,
в файл U-3, записать: 223333,
в файл U-4, записать: 555555
Затем взять следующую строку и проделать то-же самое, каждый раз, дописывая значения в файлы.
code_35270.txt
Этот топик читают: Гость
Ответов: 902
Рейтинг: 27
|
|||
карма: 1 |
| ||
файлы: 1 | code_35270.txt [4.3KB] [206] |
Ответов: 16884
Рейтинг: 1239
|
|||
juk писал(а): Думаю, что не понятно объяснилКак бы это делал я: 1. Поменять местами числа 2 и 1 230425939757;224013 230425939757;224420 230425939757;223333 230425939757;555555 2. Сортировка 230425939757;223333 230425939757;224013 230425939757;224420 230425939757;555555 3. Построчный перебор ArrayEnum. 4. Пока первое не меняется (компонент ChangeMon) записываем в U-1, U-2 и т.д. 5. Первое изменилось сбрасываем Math в 1 (или 0) 6. Конец ArrayEnum
|
|||
карма: 25 |
|
Ответов: 902
Рейтинг: 27
|
|||
Tad писал(а): Правильно думаешь. Просто не пойму как правильно объяснить. Например есть строки: 55;красный 888;зелёный 900;синий 6;оранжевый 89;зелёный 950;синий 980;синий 00;красный Берём первую строку, проверяем цвет на совпадение с остальными строками. Совпадений только одно в последней строке. Тогда цифру 55, записываем в 1 файл, а 00 во 2 файл. Берём следующую строку с цветом зелёный, тоже одно совпадение. Дописываем в файл 1 888, а в файл 2 89 Следующая строка синий. В файл 1, дописываем 900, в файл 2 950 в файл 3 980 четвёртая строка оранжевый, совпадений нет, просто дописываем её в файл 1. Должны получится такие записи в файлах: Файл 1 55 888 900 6 Файл 2 00 89 950 Файл 3 980 Мне нужно тоже самое, только с цифрами, с теми что в схеме выше. Объяснить ещё понятнее, у меня вряд ли получится. Вроде и логика простая, а уже с утра бьюсь. В общем строки, нужно разбить на файлы, чтоб в каждом файле не было повторяющегося цвета. |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Выше выложил начало.
До конца сам трудись. То, что я предложил: 1. Все красные запишет в разные файлы. (U-1, U-2, U-3 и.т.д.) 2. Начались зеленые. 3. Math (накопитель +1) сбрасывает в 0 4. Потом все зелёные допишет по одному значению в эти же файлы 5. И так далее. |
|||
карма: 25 |
|
Ответов: 902
Рейтинг: 27
|
|||
Выше выложил начало. Ок. Спасибо. Начало есть, уже легче. |
|||
карма: 1 |
|
Ответов: 16884
Рейтинг: 1239
|
|||
Второе Memo для наглядности. Его выбросить, а ArrayEnum подключить к StrList.
|
|||
карма: 25 |
|
Ответов: 2270
Рейтинг: 677
|
|||
juk, судя по вашему описанию, вроде так:
code_35278.txt но возможно будет вариант получше. Надеюсь сохранить динамически созданные списки сможете. |
|||
карма: 11 |
| ||
файлы: 1 | code_35278.txt [4.6KB] [169] |
Ответов: 902
Рейтинг: 27
|
|||
sla8a, Спасибо. Уже сделал. Вроде работает как надо, но очень у меня всё заморочено. Сейчас Вашу схему гляну.
code_35279.txt |
|||
карма: 1 |
| ||
файлы: 1 | code_35279.txt [7.1KB] [209] |
8