Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
 Аватар для Emser
4 / 4 / 0
Регистрация: 25.06.2006
Сообщений: 81

Таблица + БД + реестр

08.05.2017, 18:45. Показов 4621. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую всех единомышленников! С наступающим праздником!

Помогите в дилемме, сам не могу решиться, а на что решился, не могу победить:

Есть:
есть в реестре раздел, в нём 30 подразделов с 22-мя одинаковыми ключами.

Надо:
- на форме отобразить таблицу, в колонках - 30 подразделов, в строках - 22 ключа;
- после изменений в таблице значения какого-нибудь ключа, запись в реестр.
Для этого, как я понимаю, нужна промежуточная БД. Пробовал и Access и XML и INI и Excel, всё приемлемо.
Чтение-запись реестра тоже не вызывает трудностей.

А вот с самой таблицей - беда! B VB6 дружил с DataGrid и вроде бы с GridView, т.е. более простыми вариантами таблиц. Там было как то совсем просто - прямое соответствие ячейки таблицы и ячейки БД.
Но в VB.NET2010, а думаю и в остальных .NET версиях тоже, без альтернативы: GridView только при разработке WEB-проекта активна, а с DataGrid что то вообще непонятно, т.е. не могу разобраться. DataGridView считаю слишком громоздкой и навороченной (может быть и зря), но вот как в ней организовать сохранение изменений - проблема. Причём не хотелось бы дополнительных окошек типа TextBox'ов, а просто изменение-сохранение, в крайнем случае через кнопку Save.

Подскажите, пожалуйста, как лучше решить эту задачку, а ещё лучше с примерами. Ещё раз уточню - проблема с сохранением в БД изменений значений ячеек в таблице + одновременность с сохранением в реестре.

Добавлено через 16 минут
Самый идеальный вариант - 660 тектбоксов с прямой привязкой к соответствующим ключам реестра + 52 лабела
но как то не вдохновляет такой вариант...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.05.2017, 18:45
Ответы с готовыми решениями:

ПодТаблицы с данными(Таблица-Таблица-Таблица-Таблица) и наследованием
Имеется такая база с таблицами Район-МО-Цель-Зачача. Несколько вариантов связей передумал уже, но не понимаю как сделать, чтоб данные не...

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

Как сделать запись в реестр win7 64. В реестр попадает только последняя запись
Добрый вечер! Не могу сделать запись в реестр win7 64. Microsoft.Win32.RegistryKey hklm = Microsoft.Win32.Registry.LocalMachine; ...

40
Модератор
Эксперт .NET
 Аватар для Yury Komar
4378 / 3448 / 512
Регистрация: 27.01.2014
Сообщений: 6,268
09.05.2017, 16:47
Студворк — интернет-сервис помощи студентам
Emser, ну честно говоря я бы посоветовал вам сделать сохранение на кнопку, но если так хочется, можно и на ValueChanged... Как вам удобнее...
0
 Аватар для Emser
4 / 4 / 0
Регистрация: 25.06.2006
Сообщений: 81
09.05.2017, 17:14  [ТС]
Тупо переставить местами
VB.NET
1
2
3
4
5
6
7
For Each row As DataGridViewRow In DataGridView1.Rows
            For Each col As DataGridViewColumn In DataGridView1.Columns
                If col.Index > 0 Then
                    My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS" & col.HeaderText).GetValue(row.Cells(0).Value, Nothing) = row.Cells(col.Index).Value
                End If
            Next
        Next
не прокатило ("Ошибка 1 Выражение является значением, поэтому ему нельзя ничего присвоить."), как правильно?

Добавлено через 1 минуту
Цитата Сообщение от Yury Komar Посмотреть сообщение
я бы посоветовал вам сделать сохранение на кнопку
Да, я это уже понял.

Добавлено через 25 минут
И всё таки с сортировкой надо будет разбираться, хотя бы в колонках. УЖАС как не удобно, какой "милый человек" придумал такой порядок, прелесть!
1, 10, 11,...19, 2, 20, 21,...29, 3, 30, 4, 5, 6, 7, 8, 9
Чтобы сравнить 2-й и 7-й............ бред!
0
117 / 110 / 31
Регистрация: 05.04.2014
Сообщений: 224
09.05.2017, 17:52
Цитата Сообщение от Emser Посмотреть сообщение
не прокатило
Используйте SetValue
VB.NET
1
My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS" & col.HeaderText).SetValue(row.Cells(0).Value,  row.Cells(col.Index).Value)
Цитата Сообщение от Emser Посмотреть сообщение
с сортировкой надо будет разбираться
Установите формат колонки числовой, а не текстовый.
0
 Аватар для Emser
4 / 4 / 0
Регистрация: 25.06.2006
Сообщений: 81
09.05.2017, 18:47  [ТС]
Цитата Сообщение от Bidgo Посмотреть сообщение
Используйте SetValue
да, его и использовал, просто здесь copy-paste сделал без изменений, поэтому здесь Get
а вот в конце строки да, не додумал, но всё равно ошибку выдаёт:
"В экземпляре объекта не задана ссылка на объект"
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4378 / 3448 / 512
Регистрация: 27.01.2014
Сообщений: 6,268
09.05.2017, 18:50
Лучший ответ Сообщение было отмечено Yury Komar как решение

Решение

Emser, Вот посмотрите такой вариант:
- Сделана сортировка по первой колонке
- Загрузка по отдельной кнопке
- Сохранение всей таблицы по отдельной кнопке
(!) Так как вы работаете с разделом HKLM, то на запись требуются права администратора... Значит, пускайте студию от имени админа для тестов, так же и уже готовое приложение вам придется пускать от имени администратора, иначе - не разрешит запись.
VB.NET
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
Public Class Form1
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        DataGridView1.Rows.Clear() : DataGridView1.Columns.Clear() 'Очищаем таблицу
 
        DataGridView1.Columns.Add("SubName", "Имя Ключа") 'Создаем колонку для имен
        DataGridView1.Columns(0).DefaultCellStyle.BackColor = Color.LightCyan 'Перекрашиваем первую колонку
        DataGridView1.Columns(0).ReadOnly = True 'Запрещаем редактирование первой колонки
 
        'Создаем остальные колонки для каждой директории на основе данных из реестра
        For Each subdir In My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS\").GetSubKeyNames
            If subdir.StartsWith("PORT") Then
                DataGridView1.Columns.Add(subdir, subdir)
            End If
        Next
 
        'заполняем первую колонку именами ключей из реестра
        For Each key As String In My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS\" & DataGridView1.Columns(1).HeaderText).GetValueNames
            DataGridView1.Rows.Add(key)
        Next
 
        'Заполняем таблицу значениями из реестра
        For Each col As DataGridViewColumn In DataGridView1.Columns
            If col.Index > 0 Then
                For Each row As DataGridViewRow In DataGridView1.Rows
                    row.Cells(col.Index).Value = My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS\" & col.HeaderText).GetValue(row.Cells(0).Value, Nothing)
                Next
            End If
        Next
 
        'Сортируем по первой колонке (по-возрастанию)
        DataGridView1.Sort(DataGridView1.Columns(0), System.ComponentModel.ListSortDirection.Ascending)
    End Sub
 
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        For Each col As DataGridViewColumn In DataGridView1.Columns
            If col.Index > 0 Then
                For Each row As DataGridViewRow In DataGridView1.Rows
                    'Получаем тип значения из реестра (нужен для записи)
                    Dim DataType = My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS\" & col.HeaderText).GetValueKind(row.Cells(0).Value)
                    'Записываем данные в реестр из ячейки
                    My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS\" & col.HeaderText, True).SetValue(row.Cells(0).Value, row.Cells(col.Index).Value, DataType)
                Next
            End If
        Next
        MsgBox("Данные обновлены")
    End Sub
End Class
2
 Аватар для Emser
4 / 4 / 0
Регистрация: 25.06.2006
Сообщений: 81
09.05.2017, 18:58  [ТС]
Цитата Сообщение от Bidgo Посмотреть сообщение
Установите формат колонки числовой, а не текстовый
VB.NET
1
DataGridView1.Columns.Item(0).ValueType = NumericUpDown
Ошибка: "NumericUpDown" является типом и не может использоваться как выражение.
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4378 / 3448 / 512
Регистрация: 27.01.2014
Сообщений: 6,268
09.05.2017, 19:13
Лучший ответ Сообщение было отмечено Yury Komar как решение

Решение

Emser, кстати, если нужно все же сохранять "на лету" при изменении каждой ячейки, можете добавить такой код в событие CellEndEdit:
VB.NET
1
2
3
4
5
6
7
    Private Sub DataGridView1_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
        'Получаем тип значения из реестра (нужен для записи)
        Dim DataType = My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS\" & sender.columns(e.ColumnIndex).HeaderText).GetValueKind(sender.rows(e.RowIndex).Cells(0).Value)
        'Записываем данные в реестр из ячейки
        My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS\" & sender.columns(e.ColumnIndex).HeaderText, True).SetValue(sender.rows(e.RowIndex).Cells(0).Value, sender.rows(e.RowIndex).Cells(e.ColumnIndex).Value, DataType)
        MsgBox("Значение перезаписано")
    End Sub
ну на этом думаю все, все, заданные в первом посте, вопросы решены... У меня ошибок нет...
Вот полный код (на форме datagridview и две кнопки):
VB.NET
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
Public Class Form1
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        DataGridView1.Rows.Clear() : DataGridView1.Columns.Clear() 'Очищаем таблицу
 
        DataGridView1.Columns.Add("SubName", "Имя Ключа") 'Создаем колонку для имен
        DataGridView1.Columns(0).DefaultCellStyle.BackColor = Color.LightCyan 'Перекрашиваем первую колонку
        DataGridView1.Columns(0).ReadOnly = True 'Запрещаем редактирование первой колонки
 
        'Создаем остальные колонки для каждой директории на основе данных из реестра
        For Each subdir In My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS").GetSubKeyNames
            If subdir.StartsWith("PORT") Then
                DataGridView1.Columns.Add(subdir, subdir)
            End If
        Next
 
        'заполняем первую колонку именами ключей из реестра
        For Each key As String In My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS\" & DataGridView1.Columns(1).HeaderText).GetValueNames
            DataGridView1.Rows.Add(key)
        Next
 
        'Заполняем таблицу значениями из реестра
        For Each col As DataGridViewColumn In DataGridView1.Columns
            If col.Index > 0 Then
                For Each row As DataGridViewRow In DataGridView1.Rows
                    row.Cells(col.Index).Value = My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS\" & col.HeaderText).GetValue(row.Cells(0).Value, Nothing)
                Next
            End If
        Next
 
        'Сортируем по первой колонке (по-возрастанию)
        DataGridView1.Sort(DataGridView1.Columns(0), System.ComponentModel.ListSortDirection.Ascending)
    End Sub
 
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        For Each col As DataGridViewColumn In DataGridView1.Columns
            If col.Index > 0 Then
                For Each row As DataGridViewRow In DataGridView1.Rows
                    'Получаем тип значения из реестра (нужен для записи)
                    Dim DataType = My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS\" & col.HeaderText).GetValueKind(row.Cells(0).Value)
                    'Записываем данные в реестр из ячейки
                    My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS\" & col.HeaderText, True).SetValue(row.Cells(0).Value, row.Cells(col.Index).Value, DataType)
                Next
            End If
        Next
        MsgBox("Данные обновлены")
    End Sub
 
    Private Sub DataGridView1_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
        'Получаем тип значения из реестра (нужен для записи)
        Dim DataType = My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS\" & sender.columns(e.ColumnIndex).HeaderText).GetValueKind(sender.rows(e.RowIndex).Cells(0).Value)
        'Записываем данные в реестр из ячейки
        My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS\" & sender.columns(e.ColumnIndex).HeaderText, True).SetValue(sender.rows(e.RowIndex).Cells(0).Value, sender.rows(e.RowIndex).Cells(e.ColumnIndex).Value, DataType)
        MsgBox("Значение перезаписано")
    End Sub
End Class
2
 Аватар для Emser
4 / 4 / 0
Регистрация: 25.06.2006
Сообщений: 81
09.05.2017, 19:22  [ТС]
Красиво!
Но, что то оно ругается при "Получении типа значения из реестра (нужен для записи)"
Миниатюры
Таблица + БД + реестр  
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4378 / 3448 / 512
Регистрация: 27.01.2014
Сообщений: 6,268
09.05.2017, 19:28
покажите весь ваш код... показана ведь ошибка - отсутствует параметр в реестре... я руководствовался теми данными, которые вы мне дали... ничего более.
вот мой проект (VS2013)
Вложения
Тип файла: zip Таблица + БД + реестр.zip (44.1 Кб, 8 просмотров)
1
 Аватар для Emser
4 / 4 / 0
Регистрация: 25.06.2006
Сообщений: 81
09.05.2017, 19:36  [ТС]
Да почти тоже самое, отсюда скопировано:
VB.NET
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
Public Class Form1
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DataGridView1.Rows.Clear() : DataGridView1.Columns.Clear() 'Очищаем таблицу
        DataGridView1.Columns.Add("SubName", "Имя Ключа") 'Создаем колонку для имен
        DataGridView1.Columns(0).DefaultCellStyle.BackColor = Color.LightCyan 'Перекрашиваем первую колонку
        DataGridView1.Columns(0).ReadOnly = True 'Запрещаем редактирование первой колонки
 
        'Создаем остальные колонки для каждой директории на основе данных из реестра
        For Each subdir In My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS").GetSubKeyNames
            If subdir.StartsWith("PORT") Then
                DataGridView1.Columns.Add(subdir, subdir)
            End If
        Next
 
        'заполняем первую колонку именами ключей из реестра
        For Each key As String In My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS" & DataGridView1.Columns(1).HeaderText).GetValueNames
            DataGridView1.Rows.Add(key)
        Next
 
        'Заполняем таблицу значениями из реестра
        For Each col As DataGridViewColumn In DataGridView1.Columns
            If col.Index > 0 Then
                For Each row As DataGridViewRow In DataGridView1.Rows
                    row.Cells(col.Index).Value = My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS" & col.HeaderText).GetValue(row.Cells(0).Value, Nothing)
                Next
            End If
        Next
 
        'Сортируем по первой колонке (по-возрастанию)
        DataGridView1.Sort(DataGridView1.Columns(0), System.ComponentModel.ListSortDirection.Ascending)
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        For Each col As DataGridViewColumn In DataGridView1.Columns
            If col.Index > 0 Then
                For Each row As DataGridViewRow In DataGridView1.Rows
                    'Получаем тип значения из реестра (нужен для записи)
                    Dim DataType = My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS" & col.HeaderText).GetValueKind(row.Cells(0).Value)
                    'Записываем данные в реестр из ячейки
                    My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS" & col.HeaderText, True).SetValue(row.Cells(0).Value, row.Cells(col.Index).Value, DataType)
                Next
            End If
        Next
        MsgBox("Данные обновлены")
    End Sub
End Class
только вот насоздавал 30 разделов, как должно быть там:
Вложения
Тип файла: zip reg.zip (1.4 Кб, 3 просмотров)
0
 Аватар для Emser
4 / 4 / 0
Регистрация: 25.06.2006
Сообщений: 81
09.05.2017, 19:38  [ТС]
Цитата Сообщение от Yury Komar Посмотреть сообщение
Вложения
Таблица + БД + реестр.zip (44.1 Кб, 0 просмотров)
не скачивается

А VS у меня 2010, но это же не важно...
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4378 / 3448 / 512
Регистрация: 27.01.2014
Сообщений: 6,268
09.05.2017, 20:00
Цитата Сообщение от Emser Посмотреть сообщение
только вот насоздавал 30 разделов
щас гляну

Добавлено через 8 минут
все работает отлично и с 30-ю разделами, сохраняет и грузит без ошибок...

Добавлено через 6 минут
Цитата Сообщение от Emser Посмотреть сообщение
А VS у меня 2010, но это же не важно...
важно... VS2010 не открывает проекты из версий, выше 2010... Поэтому, скопируйте код из этого поста и проверьте еще раз...

Добавлено через 3 минуты
а нет, нашел в чем дело...
в свойствах таблицы вашей поставьте свойство AllowUserToAddRows=False
2
 Аватар для Emser
4 / 4 / 0
Регистрация: 25.06.2006
Сообщений: 81
09.05.2017, 20:22  [ТС]
Отлично! Всё работает! СПАСИБО!
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4378 / 3448 / 512
Регистрация: 27.01.2014
Сообщений: 6,268
09.05.2017, 20:25
Emser, рад помочь
2
 Аватар для Emser
4 / 4 / 0
Регистрация: 25.06.2006
Сообщений: 81
09.05.2017, 20:29  [ТС]
А возможно ещё и колонки расставить "по-русски", а то эти басурмане со своими дюймовыми мерилами уже ...
ну не возможно же работать с таким порядком:
1, 10, 11,...19, 2, 20, 21,...29, 3, 30, 4, 5, 6, 7, 8, 9
Чтобы сравнить 2-й и 7-й............ бред!

я полазил по свойствам и командам, .SORT только для сортировки в колонке и не нашёл никаких сортов больше. Не там ищу?
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4378 / 3448 / 512
Регистрация: 27.01.2014
Сообщений: 6,268
09.05.2017, 20:32
согласен, тут бредово выходит, над этим надо покумекать. Но не сегодня уже...
1
259 / 200 / 49
Регистрация: 18.12.2015
Сообщений: 416
10.05.2017, 00:02
Сортировка методом Enumerable(LinQ)
VB.NET
1
2
3
4
5
        For Each subdir In My.Computer.Registry.LocalMachine.OpenSubKey("SOFTWARE\WOW6432Node\BOLID\ORION\RS").GetSubKeyNames.OrderBy(Function(x) Val(Replace(x, "PORT", "")))
            If subdir.StartsWith("PORT") Then
                DataGridView1.Columns.Add(subdir, subdir)
            End If
        Next
3
Модератор
Эксперт .NET
 Аватар для Yury Komar
4378 / 3448 / 512
Регистрация: 27.01.2014
Сообщений: 6,268
10.05.2017, 07:16
Emser, думаю Jungl советует как-раз то, что нужно... замените мой цикл добавления колонок тем, что в посте выше...
1
 Аватар для Emser
4 / 4 / 0
Регистрация: 25.06.2006
Сообщений: 81
10.05.2017, 19:13  [ТС]
Цитата Сообщение от Yury Komar Посмотреть сообщение
Jungl советует как-раз то, что нужно
Да, то, что нужно. Спасибо. Работает.
Теперь отчёт о тестировании в боевых условиях (на том компьютере, где это нужно):
тоже выдаёт ошибку, что "Заданного параметра реестра не существует" при сохранении.
Кнопки "Продолжить"(с игнорированием) и "Выход". При выходе ничего не происходит.
А вот при "Продолжении", он всё-таки сохраняет.
Здесь, на домашнем компьютере всё работает без запинки. Непонятненько, но можно и смириться.
0
 Аватар для Emser
4 / 4 / 0
Регистрация: 25.06.2006
Сообщений: 81
10.05.2017, 19:22  [ТС]
Вот что получилось с моими подправками:
Вложения
Тип файла: zip proekt.zip (614.9 Кб, 1 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.05.2017, 19:22

Производный класс Самоорганизующаяся таблица должен наследовать свойства и методы класса Таблица
класс таблица, содержащий целые числа Обьект класса таблица должен позволять: 1 инициализировать случайными числами таблицу 2...

Повреждена какая-то таблица верхнего регистра или загрузочная таблица каки= то данных
Столько времени уже прошло, а тебе так никто и не помог... У меня сейчас при включении моноблока на стадии загрузки пишет A disk read...

Таблица умножения - таблица размера n строк на m столбцов, на пересечении i-ой строки и j-ого столбца стоит число i*j
Таблицей умножения назовем таблицу размера n строк на m столбцов, в которой на пересечении i-ой строки и j-ого столбца стоит число i*j...

{=ТАБЛИЦА(A1;A3)} или {=ТАБЛИЦА(A1;A2) что это?}
помогите не могу разобраться что это функция или формула-не могу понять? откуда эти цифры появились тоже я без понятия?

Таблица лексем и таблица идентификаторов
Помогите пожалуйста найти ошибку в коде. Прога строит ТИ и ТЛ. К таблице идентификаторов претензий нет, а вот в таблице лексем возникают...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru