|
Как разделить строку | ☑ | ||
---|---|---|---|---|
0
DenisK2020
09.08.22
✎
11:13
|
Добрый день, подскажите начинающему программисту
Как разделить строку: Заказ № ZX11138165 от 03.08.2022 Заказ № TR1113816545 от 05.08.2022 Отдельно получить номер заказа и отдельно дату заказа Спасибо |
|||
1
Галахад
гуру
09.08.22
✎
11:19
|
Методы СтрНайти, Лев, Прав, Сред.
|
|||
2
Garykom
гуру
09.08.22
✎
11:36
|
лучше СтрЗаменить() и СтрРазделить()
|
|||
3
Fish
09.08.22
✎
11:37
|
(2) Главное, чтобы пробелы всегда были на месте в строке. И не по 2 :)
|
|||
4
Fish
09.08.22
✎
11:39
|
+(3) Имхо, надёжнее сначала сделать СтрРазделить по пробелу, ну а потом уже в массиве оставить только номер заказа и дату, выкинув лишнее.
|
|||
5
Кирпич
09.08.22
✎
11:47
|
Массив = СтрРазделить(ИсходнаяСтрока, " ", Ложь);
ЗаказНомер = Массив[2]; ЗаказДата = Массив[4]; Это если в номере заказа не бывает пробелов. |
|||
6
Garykom
гуру
09.08.22
✎
12:04
|
(5) И дата не пустая
|
|||
7
6awkup_true
09.08.22
✎
12:20
|
RegExp = Новый COMОбъект("VBScript.RegExp");
RegExp.IgnoreCase = истина; RegExp.Global = Истина; RegExp.MultiLine = Ложь; RegExp.Pattern = " ([^от№]*)"; Matches=RegExp.Execute("Заказ № TR1113816545 от 05.08.2022"); Номер = Matches.Item(1); Дата = Matches.Item(2); КонецПроцедуры |
|||
8
Kassern
09.08.22
✎
12:24
|
(7) а ТС на линуксе и приехали))
|
|||
9
Garykom
гуру
09.08.22
✎
12:30
|
(8) в платформу скоро добавят
|
|||
10
Kassern
09.08.22
✎
12:40
|
(9) так же скоро, как поддержку sftp?)
|
|||
11
Garykom
гуру
09.08.22
✎
12:46
|
(10) поддержку sftp вряд ли добавят
в отличие от https://wonderland.v8.1c.ru/blog/podderzhka-regulyarnykh-vyrazheniy-vo-vstroennom-yazyke/ |
|||
12
DenisK2020
09.08.22
✎
12:48
|
(2) пытаюсь получить формат Дата выходит ошибка СокрЛП(Формат(Дата(ЗаказДата),"ДФ=""ггггММдд""")))
|
|||
13
Fish
09.08.22
✎
12:51
|
(12) Какой текст ошибки? Чему равна переменная ЗаказДата? Какого она типа?
|
|||
14
Garykom
гуру
09.08.22
✎
12:52
|
(12) функция Формат() она не предназначена чтобы из типа Строка сделать тип Дата
|
|||
15
СеменовСемен
09.08.22
✎
12:53
|
01.01.2001 по простому в дату не преобразуешь
|
|||
16
DenisK2020
09.08.22
✎
12:57
|
подскажите как правильно из строки теперь получить формат Дата. Спасибо
|
|||
17
Garykom
гуру
09.08.22
✎
13:01
|
||||
18
rsv
09.08.22
✎
13:01
|
(0) только парсингом. Т.е. без разбора символов и привязки к некоторым - никак.
Хоть в цикле. |
|||
19
mistеr
09.08.22
✎
13:04
|
Есть такой хак: Дата("03.08.2022" + " 00:00:00")
|
|||
20
Garykom
гуру
09.08.22
✎
13:05
|
(19) эээ переставить ничего не надо местами?
|
|||
21
DenisK2020
09.08.22
✎
13:07
|
пошел путем таким пока вроде работает
Спасибо всем. //Преобразование строки в дату &НаСервере Функция СтрокаВДату(Знач ДатаСтрока) ПозицияПробела = СтрНайти(ДатаСтрока, " ", НаправлениеПоиска.СНачала); Если ПозицияПробела > 0 Тогда ДатаСтрока = Лев(ДатаСтрока, ПозицияПробела - 1); КонецЕсли; ДатаСтрока = СокрЛП(СтрЗаменить(ДатаСтрока, ".", "")); ДатаСтрока = Сред(ДатаСтрока, 5) + Сред(ДатаСтрока, 3, 2) + Лев(ДатаСтрока, 2); Если СтрДлина(ДатаСтрока) = 6 Тогда ДатаСтрока = "20" + ДатаСтрока; КонецЕсли; ОписаниеТипа = Новый ОписаниеТипов("Дата"); Результат = ОписаниеТипа.ПривестиЗначение(ДатаСтрока); Возврат Результат; КонецФункции |
|||
22
mistеr
09.08.22
✎
13:27
|
(20) Что?
|
|||
23
Kassern
09.08.22
✎
13:33
|
(20) не надо https://disk.yandex.ru/i/eDUrWZfwjr69XQ
|
|||
24
Garykom
гуру
09.08.22
✎
13:45
|
(23) прикольно интересно когда это добавили
|
|||
25
RomanYS
09.08.22
✎
13:46
|
(24) в 8.0 приблизительно)
|
|||
26
Kassern
09.08.22
✎
13:46
|
(24) видимо, когда разрабам надоело каждый раз переворачивать дату, но в СП почему-то решили об этом умолчать)
|
|||
27
RomanYS
09.08.22
✎
13:57
|
(26) почему умолчать?
"Строка должна содержать дату в локальном формате даты или в каноническом виде YYYYMMDDHHMMSS." Под локальным понимается представление даты по-умолчанию в соответствии с региональными настройками, т.е. (23). |
|||
28
Garykom
гуру
09.08.22
✎
14:24
|
(25)(27) Ааа понял почему я никогда не юзал
Ибо словил глюк на серверах где настройки даты были не того |
|||
29
Garykom
гуру
09.08.22
✎
14:24
|
(28)+ Всегда привожу к каноническому "20220803"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |