![]() |
![]() |
|
Хотити ли вы Для Каждого Символ Из Строка? | ☑ | ||
---|---|---|---|---|
0
Гений 1С
гуру
20.11.08
✎
12:05
|
Т.е. чтобы не юзать:
Для Инд = 1 По СтрДлина(Строка) Цикл Симв = Средн(Строка, Инд); КонецЦикла; |
|||
1
Гений 1С
гуру
20.11.08
✎
12:06
|
Голосовалку забыл, ладно, будем так считать.
|
|||
2
tsr
20.11.08
✎
12:06
|
Уже по заголовкам тебя узнаю:)
|
|||
3
IronDemon
20.11.08
✎
12:07
|
На сколько скорость выполнения запроса вырастет?
|
|||
4
bd
20.11.08
✎
12:08
|
Сигнатура вызова не сократится, а производительность с итератором будет ниже. Лучше бы разрешили к обращение к строке как к массиву.
|
|||
5
YauheniL
20.11.08
✎
12:09
|
Хочу нормальный функционал для разюиения строк на лексеммы
И человеское представление строки как массива символов Я, вообще, много всего хочу, но это уже просто запарило |
|||
6
Живой Ископаемый
20.11.08
✎
12:10
|
Ну.. хотел бы вот так:
Строка="ропропиридьиьдтитьи "; Для Инд = 1 По СтрДлина(Строка) Цикл Симв = Строка[Инд]; Сообщить(Симв); КонецЦикла; Не то чтобы совсем хотел, но было бы наверное прикольно |
|||
7
чувак
20.11.08
✎
12:11
|
"Средн(Строка, Инд)"
А где третий параметр, уже отменили или ты указ вывел? |
|||
8
Rebelx
20.11.08
✎
12:11
|
я угадал автора!
предлагаю создать рейтинг интуиции под заголовком - "Угадай Гения!!!" |
|||
9
Рэйв
20.11.08
✎
12:14
|
(5)
а классы CString, LPZSTR, LPSTR , функцию strcpy() и прочий гемор ты тоже хочешь?:) |
|||
10
Гений 1С
гуру
20.11.08
✎
12:15
|
(8) Странно, у меня все авторы показываются в списке тем.
|
|||
11
Гений 1С
гуру
20.11.08
✎
12:16
|
(9) Нет, только для каждого.
Почему кстати скорость увеличится, она только уменьшится! |
|||
12
Живой Ископаемый
20.11.08
✎
12:17
|
(9) Было бы прикольно, да...
Еще я хочу, чтобы например объект полнотекстовый поиск если я ищу какое-то слово, то возвращало бы мне не кусочек с первым попаданием искомого слова, и все фргаменты... Ну или чтобы это как-то можно было варьировать... |
|||
13
Ненавижу 1С
гуру
20.11.08
✎
12:19
|
Проблема в том, что в 1С нет типа символ. Это те же строки длины 1
|
|||
14
YauheniL
20.11.08
✎
12:19
|
Кстати, в Java строка вообще прикольно раскладывется на лексеммы:
MyString.tokenize() |
|||
15
ktif
20.11.08
✎
12:20
|
интересно было бы узнать, если автора возьмут в 1С ваятелем, чем это нам грозит? Еженедельными обновлениями платформы? 1С 9.0 к 2009 году, 1С 10.0 в 2010 и т.д.?:)
|
|||
16
ДенисЧ
20.11.08
✎
12:21
|
Кстати, я хочу пожизненный эцих с шурупами для автора..
|
|||
17
Гефест
20.11.08
✎
12:24
|
Хочу, как в делфях. Пишешь Стр[ы] и получаешь ы-тый символ строки
|
|||
18
Ненавижу 1С
гуру
20.11.08
✎
12:25
|
специально для эстета-Гения
Функция СтрокаВМассив(Стр) Экспорт Массив = Новый Массив(СтрДлина(Стр)); Для й=1 По СтрДлина(Стр) Цикл Массив.Добавить(Сред(Стр,й,1)); КонецЦикла; Возврат Массив; КонецФункции Для каждого Элем Из СтрокаВМассив(Стр) Цикл //... КонецЦикла; |
|||
19
Ненавижу 1С
гуру
20.11.08
✎
12:25
|
(17) в делфях ты получаешь char
|
|||
20
Ygich
20.11.08
✎
12:27
|
(18) а не будет ли каждый проход цикла функция срабатывать?
|
|||
21
Гений 1С
гуру
20.11.08
✎
12:29
|
(18) Не годится, тормоза
|
|||
22
Черный всадник
20.11.08
✎
12:31
|
(4) В 1С цикл Для в большинстве случаев медленее цикла Для каждого
|
|||
23
Ненавижу 1С
гуру
20.11.08
✎
12:32
|
(20) не будет
но будет один лишний раз цикл на формирование массива (21) зато красиво |
|||
24
Ненавижу 1С
гуру
20.11.08
✎
12:35
|
(0) скажи для какой задачи это надо?
|
|||
25
Рэйв
20.11.08
✎
12:40
|
(23)Неправда ваша. Будет заходить столько раз сколько символов сначала, а потом только начнет получать элементы массива
|
|||
26
luns
20.11.08
✎
12:41
|
(24) Задача проста: напомнить о себе...
|
|||
27
Гений 1С
гуру
20.11.08
✎
12:49
|
(26) дятел. мне за 1с обидно. ;-)
|
|||
28
Ненавижу 1С
гуру
20.11.08
✎
12:49
|
(25) а я про что?
|
|||
30
bd
20.11.08
✎
12:50
|
(22) Объектная модель 1C - это COM, не? Для For Each будет создан IEnumXXX и возвращён указатель на него, а доступ к элементам массива - это примитивная и быстрая адресная арифметика.
|
|||
31
НЕА123
20.11.08
✎
12:51
|
(0) офф
интересно, а что быстрее? Для Инд = 1 По СтрДлина(Строка) Цикл Симв = Средн(Строка, Инд); КонецЦикла; Для Инд = 1 По СтрДлина(Строка) Цикл Симв = КодСимвола(Строка, Инд); КонецЦикла; |
|||
32
Рэйв
20.11.08
✎
12:58
|
(28) Ну может я тебя не так понял:)
|
|||
33
Ненавижу 1С
гуру
20.11.08
✎
13:06
|
(32) имелось ввиду, что сначала выполняется функция, там в цикле обходятся символы и заносятся в массив, потом цикл по массиву. Вызов функции только один раз
|
|||
34
Черный всадник
20.11.08
✎
13:08
|
(30) Для массива вероятнее всего это верно. Но если ты потестируешь ТЗ, то думаю будешь удивлен. Цикл Для каждого пробегает ТЗ в два раза быстрее, чем Для.
|
|||
35
bd
20.11.08
✎
13:15
|
(34) ТЗ - гибрид массива, списка и хэша, а от универсального контейнера глупо требовать высокой производительности по определению :) Работает и шут с ней
|
|||
36
Гений 1С
гуру
20.11.08
✎
13:32
|
(30) Что за чушь? Это проблема компилятора, не будет создано никакого COM
|
|||
37
Ненавижу 1С
гуру
20.11.08
✎
13:43
|
(36) будет создан, потому что этот объект может передан COM-клиенту
|
|||
38
beholder
20.11.08
✎
14:00
|
ГЫ. я тоже угадал афтора
|
|||
39
nop
20.11.08
✎
14:03
|
(0) Ерунда. Хочу иметь доступ к символам - как к элементам массива. И вообще хочу указатели и возможность вручную управлять выделением памяти и добавлять в Конфиграторе новые таблицы в БазуДанных, переопределять стандартные хранимые процедуры, управлять индексированием, нормальных блокировок. Хочу создавать элементы интерфейса программно и полностью управлять ими в run-time. Хочу нормальное ООП с наследование, перегружаемыми функциями, метаклассами.
Есть ещё вопросы? |
|||
40
Гений 1С
гуру
20.11.08
✎
15:48
|
(39) С этими вопросами не к 1с. ;-)
|
|||
41
Медвед1Сник
20.11.08
✎
15:52
|
(0) Не хочу. Строка это не коллекция значений. Она сама логически одно значение. Хотя физически это массив. Но у нас не Си а 1эска.
|
|||
42
Медвед1Сник
20.11.08
✎
15:53
|
+ И потом строка это элементарный тип а предложение в (0) превращает ее в неэлементарный. Уже нельзя будет записать А = "АБВГД";
|
|||
43
Fragster
гуру
20.11.08
✎
15:53
|
(0) а как тебе v8: Посвящается Гению1С ? я хочу доступ к строке как к массиву - но и Сред() хватает...
|
|||
44
nop
20.11.08
✎
16:07
|
(42) нет ничего невозможного
|
|||
45
Гений 1С
гуру
20.11.08
✎
18:12
|
(42) почему нельзя будет? Обоснуй. Это всего лишь конструкция обхода, она не превращает строку в массив.
|
|||
46
Медвед1Сник
20.11.08
✎
19:24
|
(45) Если не элементарный тип то нельзя непосредственно его задавать литералами. Надо будет писать что-то вроде А = Новый Строка("АБВГД");
Если оставаться в рамках общих принципов и не множить эклектику :) |
|||
47
Гений 1С
гуру
20.11.08
✎
20:20
|
(46) а если множить эклектике?
|
|||
48
Гений 1С
гуру
20.11.08
✎
20:20
|
Для строк цикл "Для каждого" должен работать по другому
|
|||
49
Медвед1Сник
21.11.08
✎
13:16
|
(47) Можно и множить. Но я бы лучше сделал какой-то оператор (или функцию) преобразования Строка в Массив. Или как-то реализовал бы это по умолчанию.
Можно например так : А = "АБВГД"; Для Каждого Буква Из Массив("АБВГД") Цикл Сообщить(Буква); КонецЦикла; Функцию Массив(Строка) я думаю ты реализуешь сам. :) |
|||
50
YauheniL
21.11.08
✎
13:26
|
Модераторы, исправьте ошибку в первом слове топика!
|
|||
51
Гений 1С
гуру
21.11.08
✎
14:04
|
(49) Не надо в массив. Массив дико напрягает память по сравнению с строкой
|
|||
52
Serg_1960
21.11.08
✎
14:44
|
Массив не нравится? На, возьми список :)
Функция СписокСимволов(Строка) Список = Новый СписокЗначений(); Для Позиция = 1 По СтрДлина(Строка) Цикл Список.Добавить(Сред(Строка,Позиция,1)); КонецЦикла; Возврат Список КонецФункции |
|||
53
MSensey
21.11.08
✎
15:24
|
Пора бы завести секцию "Гений:1С"
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |