Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 17.06.2022
Сообщений: 1

Как изменить конкретный элемент в поле?

17.06.2022, 16:44. Показов 890. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В БД имеется поле fld, которое состоит из набора строк:
"aa"
"bb"
"cc"
Как изменить только вторую строку, не трогая остальные?

doc.replaceitemvalye("fld", "dd") изменяет весь набор строк
результат будет
"dd"
а нужно
"aa"
"dd"
"cc"


doc.replaceitemvalye("fld(1)", "dd") ругается на синтаксис

doc.fld(1) = "dd" в процессе выполнения дает ошибку Illegal use of PROPERTY

Заранее благодарен.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.06.2022, 16:44
Ответы с готовыми решениями:

Как изменить конкретный символ в консоли на другой?
Как изменить конкретный символ в консоли на другой(зная строку и номер)?

Как вывести конкретный элемент из List?
sell.product.Add(new Seller("Iphone 13", 1500)); sell.product.Add(new Seller("Iphone 13 Mini", 1300)); ...

Как получить конкретный элемент цикла?
Короче говоря, я сейчас пытаюсь работать с jstl, у меня есть цикл foreach, который создаёт карточки товара по шаблону: Имя, цена, время...

1
528 / 91 / 43
Регистрация: 02.02.2013
Сообщений: 399
18.06.2022, 11:01
Здравствуйте

Для значений в поле с ними нужно работать как с массивом т.е. как у вас и было но это самое легкое.

PureBasic
1
 item.Values(Index) = Value
Самое сложное это не замена значения а предварительное получение этого массива и проведение предварительных проверок что массив существует (есть значения,) что идет обращение к нужному значение (не за пределами массива) и т.д. программисткая рутина.

Я в свое время чисто для себя написал небольшой класс для работы со значениями поля. Привожу его ниже . Там есть метод ReplaceExistValue которое можно использовать для замены нужного значения

PureBasic
1
2
3
4
5
6
7
8
    Public Sub ReplaceExistValue(Index As Integer, Value As String)
%REM Замена текущего значения по индексу Index,  другим указанным значением Value
%END REM
    ... (пропуск проверок)...
            If (Index => Lbound(item.Values)) And (index <= Ubound(item.Values))  Then
                Let  item.Values(Index) = Value
            End If          
    end sub
В классе я заменил тело поля объектом Body т.к. это класс то ображение к поля идет всегда через me.body
Для примера можете посмотреть различные операции работы со значениями поля.

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
Public Class notesclassitem 'поле документа
    
    Private body As Variant 'любое поле
    
    Public Sub new(item As Variant)
        Set Me.body = item
    End Sub
    
    Public Property Get isexist As Variant
          'проверка наличия поля
        isexist = Not (Me.body Is Nothing)
    End Property
    
    Public Property Get text As String
          'текстовое значение поля
        If Me.isexist Then text = Me.body.text
    End Property
    
    Public Property Get values As Variant
     'все значения поля
        If Me.isexist Then 
            If Isarray(Me.body.values) Then
                If Me.text<>"" Then values = Me.body.values 'поле не пустое
            End If
        End If
    End Property
 
    Public Property Set values As Variant
        'все значения поля
        If Me.isexist Then 
            If IsArray(Me.body.values) Then
                Let Me.body.values = values
            End If
        End If
    End Property
        
    Public Function value(index As Integer) As String
     'функция возвращает указанное значение по индексу
     'значению с индексом 0 - соответствует 1-ое значение и т.д.     
        If Me.isexist Then               
            Dim v As Variant               
            v = Me.values               
            If Isarray(v) Then 'значения в поле обнаружены
                If (index>=Lbound(v)) And (index<=Ubound(v)) Then
                          'значение с указанным индексом существует
                    value = v(index) 'получение значения по индексу
                End If
            End If
        End If          
    End Function
    
    Public Property Get isin(value As String) As Boolean
          'возвращет true, если в поле есть указанное значение
        If Me.isexist Then
            If (value="") And (UBound(me.body.values)=0) Then stop
            Let isin=Me.body.contains( value )
        End If 
    End Property
    
    Public Sub setin( value, addition As Variant)
          'записывает в поле указанное значение в указанном режиме         
        If Me.isexist Then 
            value = Trim(value) 'убираем концевые пробелы
            Select Case addition=True
            Case True: 'добавляем значение к существующим
                Call Me.body.appendtotextlist( value) 'поля обязательно должно существовать
            Case False: 'заменяем существующее значение новым
                Dim parent As notesdocument
                Set parent = Me.body.parent 'получаем родитель для доступа к методу replace
                Call parent.replaceitemvalue( Me.body.name, value )
                Me.body.issummary = True
            End Select
        End If
    End Sub
    
    Public Property Get ismanyvalues As Variant
          'свойство возвращает true если в поле указано более одного значения
        If Me.isexist Then
            Dim v As Variant
            v = Me.values
            If Isarray(v) Then ismanyvalues = Not ( Ubound(v) = 0) 'если значение одно
        End If
    End Property
    
    Public Property Get isexistvalues As Boolean
          'возвращает true если в поле есть хотя бы одно значение
        
        If Me.isexist Then
            If Not Me.ismanyvalues Then 'в поле только одно значение
                    'далее определяется является ли единственое значение пустым
                Dim v As Variant
                Let v = Me.values
                Let isexistvalues = v(Lbound(v))<>""
            Else
                Let isexistvalues = True
            End If
        End If
    End Property
    
    Public Sub ReplaceExistValue(Index As Integer, Value As String)
%REM Замена текущего значения по индексу,    другим указанным значением
%END REM
        If Me.isexistvalues Then
            If (Index => Lbound(Me.Body.Values)) And (index <= Ubound(Me.body.Values))  Then
                Let Me.Body.Values(Index) = Value
            End If          
        End If
    End Sub
        
    Public Function Appendtext(Text As String)
%REM Добавление в поле RICHTEXT указанного комментария      
%END REM
        If Me.IsExist Then
            If ( Me.Body.Type = RICHTEXT ) Then
                Call Me.Body.AddNewLine(1)
                Call Me.Body.AppendText(Text)
            Else
                Call me.body.Appendtotextlist(Text)
                Let me.values = ArrayUnique(me.values)
            End if
        End If
    End Function
    
End Class
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.06.2022, 11:01
Помогаю со студенческими работами здесь

Как удалить конкретный элемент из ListBox’а
удалить конкретный элемент из ListBox’а

Как поменять конкретный элемент двумерного массива
Когда я пытаюсь обратиться к элементу массива, таким же образом, как и в сишных языках, заменяется полностью весь столбик, а не то к чему я...

Как обратиться в ресурсах на конкретный элемент массива string-array?
Подскажите пожалуйста начинающему как вывести в ListView или TextView один элемент из массива string-array в ресурсах?

Iterator в списке - как вывести на экран конкретный элемент списка?
Доброго времени суток! Недавно начал работу со списком в c++ и у меня возник вопрос: Предположим, есть список, состоящий из 5...

Как с JS или jQuery изменить цвет одного символа в поле формы(в поле находится некоторый текст)
Как с JS или jQuery изменить цвет одного символа в поле формы(в поле находится некоторый текст)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru