|
Удалить каждое 3 число | ☑ | ||
---|---|---|---|---|
0
Kostyaaa
17.07.18
✎
15:10
|
Подскажите, пожалуйста. мне нужно что бы пользователь ввел ряд чисел от 1 до 30(допустим), и при каждом нажатии кнопки удалялось каждое 3е число. как сделать, ума не приложу. помогите пожалуйста!
|
|||
32
r_p
17.07.18
✎
15:33
|
(26) Если удалять в первом цикле, то порядок цифр изменится же и мы удалим не то. Не?
|
|||
33
Tonik992
17.07.18
✎
15:33
|
ТС! Сам поспорил, сам алгоритм и пиши :-)
А мы ответили, что такое на 1С можно сделать. |
|||
34
Kostyaaa
17.07.18
✎
15:33
|
(28) в 1с я сперва сам начал делать через оработку, там создал реквизит(строка) и пытался сделать. ничего не вышло
|
|||
35
bolobol
17.07.18
✎
15:37
|
Не смог ввести числа от 1 до 30 ?
|
|||
36
Timon1405
17.07.18
✎
15:39
|
Коллеги, зрите в корень,
Друг = злой препод, который не проставляет зачет |
|||
37
Kostyaaa
17.07.18
✎
15:40
|
(35) не смог сделать, что бы программа удаляла их, и удаленные сразу удаляла в строке
|
|||
38
Kostyaaa
17.07.18
✎
15:40
|
(36) я уже 3 года работаю электриком, 1с хобби)
и сессия в июле не идет) |
|||
39
Tonik992
17.07.18
✎
15:41
|
(37) Значит вы проиграли спор :-)
|
|||
40
DeeK
17.07.18
✎
15:44
|
Сч = ТабличнаяЧасть1.Количество();
Пока Сч > 0 цикл Если Цел(Сч / 3) = Сч/3 тогда ТабличнаяЧасть1.Удалить(Сч-1); КонецЕсли; Сч = Сч - 1; КонецЦикла; |
|||
41
Asmody
17.07.18
✎
15:44
|
В типовой ERP точно должно быть.
Или писать ВК. |
|||
42
Tonik992
17.07.18
✎
15:46
|
(41) рулетка при закрытии месяца?
|
|||
43
Малыш Джон
17.07.18
✎
15:47
|
в ERP точно такая функция есть, сам видел
ОбщегоНазначения.УдалитьКаждыйТретийЭлемент(Строка); |
|||
44
Asmody
17.07.18
✎
15:49
|
(43) ОбщегоНазначенияКлиентСерверПереопределяемый.УдалитьКаждыйТретийЭлемент(Строка);
|
|||
45
r_p
17.07.18
✎
15:49
|
(40) легче сч%3=0
|
|||
46
Малыш Джон
17.07.18
✎
15:49
|
причем тянется она - с самых первых дней 1С. Сам БГ однажды пророчески сказал: "Настанет день и придет человек, называемый Константин, и понадобится ему такая функция, чтоб перед другом не оплошать". И вот. Как в воду глядел.
|
|||
47
Asmody
17.07.18
✎
15:50
|
(46) Точно! Сейчас глянул - там код ещё шестёрочный.
|
|||
48
Kostyaaa
17.07.18
✎
15:51
|
(40) это таблица. а мне строку надо...
|
|||
49
r_p
17.07.18
✎
15:51
|
(40) ну и запусти посмотри, при первом удалении будет сдвиг строк, и дальше удалять будет неправильно. Поэтому надо массив строк для удаления копить.
|
|||
50
Малыш Джон
17.07.18
✎
15:51
|
(49) с конца ж удаляет-то, как сдвиг повлияет на то, что к началу ближе?
|
|||
51
r_p
17.07.18
✎
15:52
|
(50) Согласен, ступил
|
|||
52
Tonik992
17.07.18
✎
15:53
|
Жаль только в ERP есть.
|
|||
53
Малыш Джон
17.07.18
✎
15:53
|
(48) РазложитьСтрокуВМассивПодстрок() и работай в свое удовольствие
|
|||
54
Tonik992
17.07.18
✎
15:55
|
(53) Старье ведь :-) Надо СтрРазделить()
|
|||
55
hawksib
17.07.18
✎
15:57
|
а слабо на 1с сделать игру футбол? вот я понимаю спор, а тут...
|
|||
56
DeeK
17.07.18
✎
15:57
|
(48) ну разложи строку в таблицу, делов то, хоть кубиком хоть пирамидкой ее уложи, как тебе надо
|
|||
57
ERWINS
17.07.18
✎
15:58
|
"ВЫБРАТЬ
| ТЗ.ЧСЛ КАК ЧСЛ, | АВТОНОМЕРЗАПИСИ() КАК Поле1 |ПОМЕСТИТЬ ТТ |ИЗ | &ТЗ КАК ТЗ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТТ.ЧСЛ КАК ЧСЛ |ИЗ | ТТ КАК ТТ |ГДЕ | (ВЫРАЗИТЬ(ТТ.Поле1 / 3 КАК ЧИСЛО(10, 0))) = ТТ.Поле1 / 3" |
|||
58
DeeK
17.07.18
✎
15:58
|
(48) либо драконь строку напрямую, методика та же, только в глазах рябить будет
|
|||
59
Tonik992
17.07.18
✎
15:59
|
(57) что еще за АВТОНОМЕРЗАПИСИ() ?
Это не 1С. |
|||
60
Kostyaaa
17.07.18
✎
16:01
|
(54) как ее разделить?
|
|||
61
ERWINS
17.07.18
✎
16:02
|
(59) 1с. только что сделал в конструкторе запросов
|
|||
62
Малыш Джон
17.07.18
✎
16:04
|
(59) 8.3.13
(57) если данные из ТЗ тащить, там номер строки изначально есть |
|||
63
Timon1405
17.07.18
✎
16:06
|
Функция ЫшелПышелНахерВышел(Строка,НомерУдаления)
СтрокаЧисел=СтрЗаменить(СтрокаЧисел," ",Символы.ПС); ТДД = Новый ТекстовыйДокумент; ТДД.УстановитьТекст(СтрокаЧисел); Для Сч =-ТДД.КоличествоСтрок() По 1 Цикл Если -Сч%НомерУдаления=0 Тогда ТДД.УдалитьСтроку(-Сч); КонецЕсли; КонецЦикла; СтрокаЧисел= ТДД.получитьТекст(); СтрокаЧисел=СтрЗаменить(СтрокаЧисел,Символы.ПС," "); Возврат СтрокаЧисел; КонецФункции |
|||
64
fedoss
17.07.18
✎
16:10
|
Вариант с использованием только строк. Можно переделать, чтобы прам из текущей строки символы удалял
КоличествоЗпт = 0; Результат = ""; Для Х = 1 По СтрДлина(ИсходнаяСтрока) Цикл ТекСимвол = Сред(ИсходнаяСтрока, Х, 1); КоличествоЗпт = КоличествоЗпт + ?(ТекСимвол = ",", 1, 0); Если КоличествоЗпт % 3 <> 2 Тогда Результат = Результат + Символ; КонецЕсли; КонецЦикла; |
|||
65
dezss
17.07.18
✎
16:15
|
народ, да напишите ему уже обработку)
|
|||
66
Kostyaaa
17.07.18
✎
16:17
|
(65) да) Пожалуйста...
|
|||
67
Garykom
гуру
17.07.18
✎
16:25
|
Сегодня же вроде не пятница?
|
|||
68
Kostyaaa
17.07.18
✎
16:25
|
(67) вторник
|
|||
69
bolobol
17.07.18
✎
16:29
|
Неправильный студент... Задачей пятницы озадачился уже во вторник...
|
|||
70
Kostyaaa
17.07.18
✎
16:30
|
(69) завтра зачет)) (Шутка)
|
|||
71
hawksib
17.07.18
✎
16:31
|
строка = "1921о2392-02=";
счет= 0; индекссимвола = 0; для и = по строка.количествосимволов() цикл индекссимвола++; счет++; Если счет = 3 Тогда строка.Удалить(индекссимвола); счет = 0; КонецЦикла; КонецЕсли; |
|||
72
hawksib
17.07.18
✎
16:32
|
идите в .опу
|
|||
73
Kostyaaa
17.07.18
✎
16:33
|
(71) "СТрока = " что за символы после =?
|
|||
74
hawksib
17.07.18
✎
16:35
|
(73) это не кириллические и не латинские символы, тебе не понять уже
|
|||
75
uno-group
17.07.18
✎
16:36
|
Мельчает народ. Раньше забивались, что 1с в шахматы не хуже 2 разряда будет играть, а тут пару чисел из строки не знают как написать. ;(
|
|||
76
Kostyaaa
17.07.18
✎
16:37
|
(74) чт оже вы с таким упреком...
|
|||
77
hawksib
17.07.18
✎
16:37
|
(75) я ж говорю, что надо футбол на 1с запрограммировать, вот это спор, а шахматы я и на калькуляторе сделаю
|
|||
78
Kostyaaa
17.07.18
✎
16:39
|
(77) не работает. ошибки выдает при запуске в отладке
|
|||
79
Kostyaaa
17.07.18
✎
16:43
|
(77) {Обработка.ЧислаВРяду.Форма.Форма.Форма(21,5)}: Ожидается имя переменной
для <<?>>и = по строка.количествосимволов() цикл (Проверка: Сервер) {Обработка.ЧислаВРяду.Форма.Форма.Форма(23,5)}: Неопознанный оператор счет<<?>>++; (Проверка: Сервер) {Обработка.ЧислаВРяду.Форма.Форма.Форма(27,1)}: Ожидается ключевое слово 'КонецЕсли' ('EndIf') <<?>>КонецЦикла; (Проверка: Сервер) {Обработка.ЧислаВРяду.Форма.Форма.Форма(28,1)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure') <<?>>КонецЕсли; (Проверка: Сервер) {Обработка.ЧислаВРяду.Форма.Форма.Форма(21,5)}: Ожидается имя переменной для <<?>>и = по строка.количествосимволов() цикл (Проверка: Тонкий клиент) {Обработка.ЧислаВРяду.Форма.Форма.Форма(23,5)}: Неопознанный оператор счет<<?>>++; (Проверка: Тонкий клиент) {Обработка.ЧислаВРяду.Форма.Форма.Форма(27,1)}: Ожидается ключевое слово 'КонецЕсли' ('EndIf') <<?>>КонецЦикла; (Проверка: Тонкий клиент) {Обработка.ЧислаВРяду.Форма.Форма.Форма(28,1)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure') <<?>>КонецЕсли; (Проверка: Тонкий клиент) |
|||
80
hawksib
17.07.18
✎
16:43
|
(78) ещё б оно работало xD
|
|||
81
hawksib
17.07.18
✎
16:45
|
(79) пройди до 10 урока на javarush, до 10 уровня бесплатно, а с 1с завязывай, плохое это хобби
|
|||
82
hawksib
17.07.18
✎
16:47
|
бесполезое
|
|||
83
Kostyaaa
17.07.18
✎
16:47
|
(81) ты не поможешь?
|
|||
84
Kigo_Kigo
17.07.18
✎
16:48
|
Процедура Сформировать()
СчетчикЦикла = 0; СтрокаНеНаформе = ""; Для А = 1 По СтрДлина(СтрокаНаФорме) Цикл СтрокаНеНаформе = СтрокаНеНаформе + Лев(СтрокаНаФорме,2); СтрокаНаФорме = Сред(СтрокаНаФорме,4); КонецЦикла; СтрокаНаФорме = СтрокаНеНаформе; КонецПроцедуры |
|||
85
Kigo_Kigo
17.07.18
✎
16:49
|
По факту всегда останется первые 2 символа :)
ПыСы код выше клюшек |
|||
86
Kostyaaa
17.07.18
✎
16:52
|
(85) Спасибо. Вот только пишет, что переменная не определена...
|
|||
87
hawksib
17.07.18
✎
16:53
|
(81) а на сколько вы поспорили?
|
|||
88
hawksib
17.07.18
✎
16:54
|
(87) ой, (83)
|
|||
89
Garykom
гуру
17.07.18
✎
16:54
|
(84) В задании просят удалить числа, не просят их сдвигать.
1 2 3 4 5 6 7 8 9 1 2 4 5 7 8 1 2 5 7 1 2 7 |
|||
90
Kostyaaa
17.07.18
✎
16:55
|
(89) совершенно верно!!!
|
|||
91
Kigo_Kigo
17.07.18
✎
16:56
|
(89) Да не сдвигайте, лепите туда пробел :)
|
|||
92
Kostyaaa
17.07.18
✎
16:56
|
(91) не работает у меня в общем...(((
|
|||
93
Garykom
гуру
17.07.18
✎
16:57
|
(91) Числа до 30, иногда придется лепить два пробела
|
|||
94
hawksib
17.07.18
✎
16:58
|
блин, ну вот реально, половина форума знает, что сделать можно, просто не дает рабочий код, потому что задача - шлак. вопрос, на сколько денег спор? готов дать код за 5$, если работать не будет, сделаю кэшбэк
|
|||
95
Kigo_Kigo
17.07.18
✎
16:59
|
(92) Я же сказал, что это код для 7.7
|
|||
96
Kostyaaa
17.07.18
✎
17:01
|
(94) с чего вы взяли, что спор на деньги? мы спорили на то что, кто проиграет побежит 10км.
|
|||
97
hawksib
17.07.18
✎
17:03
|
(96) и в чем выгода победителя? я каждый день по 10 км бегаю, при этом ни с кем не спорю
|
|||
98
dezss
17.07.18
✎
17:03
|
(96) ну вот...тогда вопрос другой, сколько ты готов заплатить, чтобы не бежать 10 км?))))
|
|||
99
Kigo_Kigo
17.07.18
✎
17:03
|
(89) Читаем задание
"и при каждом нажатии кнопки удалялось каждое 3е число" в моем пониманиее удалить, это удалить |
|||
100
hawksib
17.07.18
✎
17:07
|
в общем, коллективным голосованием думаю надо решить, что бы оба спорщика бежали по 100 км. и факт пробежки выложили на youtube. я за. Здесь голосуем или на change петицию будем писать?
|
|||
101
Kostyaaa
17.07.18
✎
17:13
|
(98) я изначально хотел выйграть этот спор, и побежать с ним
|
|||
102
bolobol
17.07.18
✎
17:23
|
(101) Это делается не так: программа там - беги, проверяй
|
|||
103
bolobol
17.07.18
✎
17:24
|
Хоть сдвигай, хоть не сдвигай - всё равно получишь х... не подходит, короче - два числа останутся, первых два числа.
|
|||
104
dezss
17.07.18
✎
17:25
|
(103) это если много раз нажать.
а если один раз, то будет больше 2-х чисел.. |
|||
105
Tonik992
17.07.18
✎
17:28
|
(104) на самом деле можно запилить универсальную удалялку каждого третьего числа..
Добавить вторую кнопку которая бы добавляла случайное число в каждое удаленное третье число. И с этой обработкой потом на собеседование. |
|||
106
Lama12
17.07.18
✎
18:02
|
(101) Да нету спора. Хватит уже тут всех за идиотов считать. Не дадут тебе готового решения. Точнее его дадут, но не готовое, а с ошибками. Ошибки будут сделаны специально что б понять что ты ничего не умеешь в 1С. Причем ошибки будут примитивные, но ты их исправит не сможешь, т.к. ты вообще в 1С ничего не смыслишь.
|
|||
107
Lama12
17.07.18
✎
18:03
|
(101) Врут только глупые люди (с).
|
|||
108
hawksib
17.07.18
✎
18:07
|
(106) не в 1с, а в программировании ниче не смыслит он, ибо он электрик
|
|||
109
hawksib
17.07.18
✎
18:07
|
1С ТУТ НИ ПРИ ЧЕМ
|
|||
110
Lama12
17.07.18
✎
18:08
|
(108) Согласен.
|
|||
111
hawksib
17.07.18
✎
18:12
|
(110) у меня отец старший электромеханик а мама программист, оба уже на пенсии, мама думаю голову поломает, но решит, а папа почти сразу ответ даст
|
|||
112
Dotoshin
17.07.18
✎
18:13
|
(108) Программист-электрик? Коллекция пополняется?
Интересно кто следующий? |
|||
113
Lama12
17.07.18
✎
18:31
|
(112) Ой да ладно. Я тоже программист-электромеханик. :-) Только второе образование как-то связано с информатикой.
|
|||
114
Ching Woo
17.07.18
✎
19:20
|
(12) Жаль тебя огорчать, но твой друг выиграл спор. В 1С такого нельзя сделать.
|
|||
115
Ching Woo
17.07.18
✎
19:22
|
После первого нажатия удалится только одно число - 3-е.
Дальше сколько ни нажимай, ничего не изменится, потому что удалять нечего, 3-го числа больше нет. |
|||
116
ColonelAp4u
17.07.18
✎
20:17
|
(84) твой код рабочий строго если строка "123456789"
|
|||
117
ColonelAp4u
17.07.18
✎
20:18
|
для двухзначных числе твой алгоритм не подойдет.
|
|||
118
Kostyaaa
17.07.18
✎
21:12
|
Спасибо. Помогли... не знаю как благодарить.
|
|||
119
dezss
18.07.18
✎
08:39
|
(118) просто не надо обманывать друзей, оно того не стоит...
не можешь сам, даже с подсказками, беги 10 км... |
|||
120
Segate
18.07.18
✎
08:59
|
Функция УдалитьКаждыйNэлемент(Строка, разделитель, n)
МассивЭлементов = стрРазделить(Строка, разделитель); Для каждого индекс = 0 по массивЭлементов.Количество()-1 цикл Если Индекс%n = 0 тогда Продолжить; Конецесли; Строка = Строка+Разделитель+МассивЭлементов[индекс]; Конеццикла Возврат строка; Конецфункции Я думаю как то так должно работать.Но с тебя 10км |
|||
121
dezss
18.07.18
✎
09:06
|
(120) ага...тока ему еще надо реквизит на форме и команду, да еще и вызов твоей функции определить...в общем, готовую обработку...
так что не в коня корм... |
|||
122
Segate
18.07.18
✎
09:08
|
(120) ууу, ну это же надо целый мануал в интернете найти!
|
|||
123
Kigo_Kigo
18.07.18
✎
09:45
|
(116) С какого перепугу?
он рабочий для лубой строки, хоть для"рсмдшывкрдывгаритдлывагритдыыварпдлыюваортиыд" но результат всегда будет "рс" другое дело если в задании проходить с начало - слева на право строку, потом с право налево |
|||
124
ColonelAp4u
18.07.18
✎
17:50
|
(123) Я сегодня заморочился исходя из твоего кода и что цифры в строке будут строго вот так расположены "123456789101112131415161718192021222324252627282930" допилил обход циклов, лев 2 и сред 4 не сработает на двухзначных цифрах, можешь проверить просто при первом проходе твоего кода 1 2 4 5 7 8 10 12 а это уже не правильно
|
|||
125
ColonelAp4u
18.07.18
✎
17:52
|
12 должна была исчезнуть так как он взял лев 2 10 и отрезал 4 символа 1011 и начал с 12, дальше думаю ты понимаешь что вся последовательность нарушена будет.
|
|||
126
ColonelAp4u
18.07.18
✎
17:54
|
ТС если в падлу бежать скину код)
|
|||
127
Kigo_Kigo
18.07.18
✎
17:58
|
(125) В таком случае - если число, а не сивол, как таковой, должен быть отделено каким то разделителем, а если его нет, как понять что 12 один и два, а не 12-двенадцать?
|
|||
128
ColonelAp4u
18.07.18
✎
18:22
|
Перем Один;
Перем Два; Перем Три; Перем Четыре; Перем ВсеПоследние; Процедура КнопкаВыполнитьНажатие(Кнопка) СчетчикЦикла = 0; СтрокаНеНаформе = ""; Для А = 1 По СтрДлина(СтрокаНаФорме) Цикл Если Один Тогда Если А = 4 ИЛИ А = 6 ИЛИ А = 8 ИЛИ А = 10 ИЛИ А = 12 ИЛИ А = 14 ИЛИ А = 16 ИЛИ А = 18 ИЛИ А = 20 Тогда СтрокаНеНаформе = СтрокаНеНаформе + Лев(СтрокаНаФорме,2); СтрокаНаФорме = Сред(СтрокаНаФорме,3); ИначеЕсли А = 5 ИЛИ А = 7 ИЛИ А = 9 ИЛИ А = 11 ИЛИ А = 13 ИЛИ А = 15 ИЛИ А = 17 ИЛИ А = 19 Тогда СтрокаНеНаформе = СтрокаНеНаформе + Лев(СтрокаНаФорме,2); СтрокаНаФорме = Сред(СтрокаНаФорме,5); Иначе СтрокаНеНаформе = СтрокаНеНаформе + Лев(СтрокаНаФорме,2); СтрокаНаФорме = Сред(СтрокаНаФорме,4); КонецЕсли; ИначеЕсли Два тогда Если А = 3 ИЛИ А = 5 ИЛИ А = 7 ИЛИ А = 9 ИЛИ А = 11 ИЛИ А = 13 ИЛИ А = 15 ИЛИ А = 17 ИЛИ А = 19 Тогда СтрокаНеНаформе = СтрокаНеНаформе + Лев(СтрокаНаФорме,2); СтрокаНаФорме = Сред(СтрокаНаФорме,3); ИначеЕсли А = 4 ИЛИ А = 6 ИЛИ А = 8 ИЛИ А = 10 ИЛИ А = 12 ИЛИ А = 14 ИЛИ А = 16 ИЛИ А = 18 ИЛИ А = 20 Тогда СтрокаНеНаформе = СтрокаНеНаформе + Лев(СтрокаНаФорме,2); СтрокаНаФорме = Сред(СтрокаНаФорме,5); Иначе СтрокаНеНаформе = СтрокаНеНаформе + Лев(СтрокаНаФорме,2); СтрокаНаФорме = Сред(СтрокаНаФорме,4); КонецЕсли; ИначеЕсли Три Тогда Если А = 2 Тогда СтрокаНеНаформе = СтрокаНеНаформе + Лев(СтрокаНаФорме,3); СтрокаНаФорме = Сред(СтрокаНаФорме,6); ИначеЕсли А >= 3 Тогда СтрокаНеНаформе = СтрокаНеНаформе + Лев(СтрокаНаФорме,4); СтрокаНаФорме = Сред(СтрокаНаФорме,7); Иначе СтрокаНеНаформе = СтрокаНеНаформе + Лев(СтрокаНаФорме,2); СтрокаНаФорме = Сред(СтрокаНаФорме,4); КонецЕсли; ИначеЕсли Четыре Тогда Если А >= 2 Тогда СтрокаНеНаформе = СтрокаНеНаформе + Лев(СтрокаНаФорме,4); СтрокаНаФорме = Сред(СтрокаНаФорме,7); Иначе СтрокаНеНаформе = СтрокаНеНаформе + Лев(СтрокаНаФорме,2); СтрокаНаФорме = Сред(СтрокаНаФорме,4); КонецЕсли; ИначеЕсли ВсеПоследние Тогда Если А >= 2 Тогда СтрокаНеНаформе = СтрокаНеНаформе + Лев(СтрокаНаФорме,4); СтрокаНаФорме = Сред(СтрокаНаФорме,7); Иначе СтрокаНеНаформе = СтрокаНеНаформе + Лев(СтрокаНаФорме,2); СтрокаНаФорме = Сред(СтрокаНаФорме,5); КонецЕсли; КонецЕсли; КонецЦикла; Если Один Тогда Один = Ложь; Два = Истина; ИначеЕсли Два Тогда Два = Ложь; Три = Истина; ИначеЕсли Два Тогда Два = Ложь; Три = Истина; ИначеЕсли Три Тогда Три = Ложь; Четыре = Истина; ИначеЕсли Четыре Тогда Четыре = Ложь; ВсеПоследние = Истина; КонецЕсли; СтрокаНаФорме = СтрокаНеНаформе; КонецПроцедуры Процедура ПриОткрытии() СтрокаНаФорме = "123456789101112131415161718192021222324252627282930"; КонецПроцедуры Один = Истина; Два = Ложь; Три = Ложь; Четыре = Ложь; ВсеПоследние = Ложь;; |
|||
129
ColonelAp4u
18.07.18
✎
18:22
|
(127) Вставь код в обработку на 8 и получишь результат
|
|||
130
ColonelAp4u
18.07.18
✎
18:23
|
По другому сделать вариков нет.
|
|||
131
ColonelAp4u
18.07.18
✎
18:25
|
Один Два Три Четыре ВсеПоследние это нажатие кнопки выполнить
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |