Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
-15 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 342

IindexedDB Использование get по индексируемому полю

22.12.2025, 23:05. Показов 356. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Будьте добры, вроде бы метод get можно использовать для поиска по индексу, потратил много времени, но так и не смог понять, почему функция fi_kl() не находит объект с заданным названием или годом при использовании соответствующего индексного файла.

HTML5
1
2
3
4
5
6
7
 <button onclick = 'idb_ti_all ("Ffilm");' class="kn1" > →ti (ALL) </button> для проверки
 <button onclick = "imp_mFilm ();" class="kn1" > массив→ хр.  </button>
 <button onclick = "fi_kl ();" class="kn1" > fi_kl </button> 
 <span id="inf1" class= "abs" style="color: darkblue;"> inf1    </span>
 <div class="obl_tst">
   <span id="inf2" style=""> </span>
 </div>

JavaScript
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
 const idb_nam_db= ["tst", 1];
 let idb_nam_xr= "Ffilm";
 let idb_db;
 
 promise = idb_open();
 promise.then (st => { idb_db= st; })   
 
function idb_open ()  {
return new Promise(function(resolve, reject) {
 
 console.log (` GET idb_open() => DB ${idb_nam_db[0]}, ${idb_nam_db[1]}`);
 
 const req = indexedDB.open(idb_nam_db[0], idb_nam_db[1]); 
 req.onupgradeneeded = function() {
    let db = req.result;
    ins_xr_1 (db);
 };
    req.onsuccess = () => {
        console.log(`database ${idb_nam_db[0]} Версия: ${idb_nam_db[1]} open`);
        idb_db = req.result;
        resolve(req.result)
    };
    req.onerror = function () {
        console.log(`database ${idb_nam_db[0]} Версия: ${idb_nam_db[1]} onerror !!!`);         
    }
})
 
 function ins_xr_1 (db) {
  let nm_xr= "Ffilm";
  if (!db.objectStoreNames.contains(nm_xr)) {   // если хранилище "" не существует
    let xr= db.createObjectStore(nm_xr, {keyPath: ['nam_film','god_film']});
    let ind;
    ind = xr.createIndex('ind_god', ['god_film'], { unique: false })
    ind = xr.createIndex('ind_nam', ['nam_film'], { unique: false })
        console.log  ("Хранилище <b>"+ nm_xr+ "</b> создано !!!")
  }
  else
      inf2.innerHTML =  "Хранилище <b>"+ nm_xr+ "</b> found !!!"; 
 }
 
}
 
// ===================
function idb_ti_all (nm_xr) {
 
 let tr = idb_db.transaction(nm_xr);
 let xr = tr.objectStore(nm_xr);
 
 index_fil= 'ind_nam';
   // index_fil= 'ind_god';
 
 let index = xr.index(index_fil); 
 let req = index.openCursor();
 
 let rec = document.querySelector("#inf2");
 let st= `index= ${index_fil}
        <table><tr> <th>key</th> <th></th>  
        <th>nam</th> <th>god</th>
            </tr>`;
 
 req.onsuccess = function() {
    let cursor = req.result;
    if (cursor) {
        var key = cursor.key; // ключ книги (поле id)  ${key}
        let val = cursor.value; // объект книги
        st+= frm_st(val, cursor)
        cursor.continue();
    } else {
        st+= `</table>`;
        rec.innerHTML= st;
    }
 };
 
 function frm_st (val, cursor) {
 let key = cursor.key;
 let st;
 st= ` <tr>
    <td >${key} </td>
    <td ></td>
    <td class="td_akt">${val.nam_film} </td>
    <td >${val.god_film} </td> 
  </tr>
 `;
    return st
 }
 
}
 
 
// =================================
function imp_mFilm ()   {       // , zn_pol, kl
return new Promise((resolve, reject) => {
 
 let nm_xr= "Ffilm";
 const m_in = [
["Васаби", 1974],
 ["Аванти", 1972],
 ["Аватар", 2009],
["Блеф", 1974],
["Долг", 1974],
["Безумие", 1969],
 ];
 let ob_in= {};
 
 let tr = idb_db.transaction(nm_xr, 'readwrite');
 let xr = tr.objectStore(nm_xr);
 let req;
 
 for (let i= 0; i< m_in.length; i++) {
    ob_in.nam_film= m_in [i][0]; ob_in.god_film= m_in [i][1];
    console.log("imp_mFilm │ Сформ: ", ob_in, `kl= ${ob_in.nam_film}  ${ob_in.god_film}`);
    req = xr.add(ob_in);
 }
    req.onsuccess = function() {
        console.log(" => │ add nam_film="+ ob_in.nam_film, req.result);
        resolve("1");
    };
    req.onerror = function() {
        console.log("Ошибка", req.error);
        reject(0);
    }
 
});
}
 
 
// ==============================
 
 function fi_kl ()  {
 
 let nm_xr= 'Ffilm';
 const tr = idb_db.transaction(nm_xr, 'readonly');
 const xr = tr.objectStore(nm_xr);
 
  //let index = xr.index('ind_nam'); kl= "Блеф";
  index = xr.index('ind_god');
   kl= 1972;
 
 let query = index.get(kl);
    query.onsuccess = (event) =>{
       if (!query.result) {
            inf2.innerHTML = " kl = "+ kl+ " NOT FOUND !!!";
            console.log(`fi_ocen │ NOT FOUND in ${nm_xr} kl= ${kl} `);   
        } else {
            val= query.result
            console.log(`fi_ocen │ res= ${query.result} film= │ ${val.nam_film}`); 
            inf2.innerHTML = " ='"+ event.target.result+ "' for kl= "+ kl;
       }
    };
    query.onerror = (event) =>{
        inf2.innerHTML = "onerror │ "+ event.target.errorCode;
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.12.2025, 23:05
Ответы с готовыми решениями:

Как правильно должен работать скрипт с использованием get.Seconds и get.Months одновременно?
Подскажите, пожалуйста, как правильно должен работать скрипт с использованием get.Seconds и...

Метод get не срабатывет (Cannot GET /api/auth/generate)
Работаю с с js не так давно. Нужно сделать 3rd party service - запрос на сторонний сервис. Он...

Реализуйте классы Magician и Daemon с get/set stoned. При этом get/set attack должен учитывать логику
Здравствуйте! Подскажите, пожалуйста, как можно скорректировать решение Есть задача: Мое...

12
 Аватар для voraa
1230 / 1122 / 174
Регистрация: 21.01.2024
Сообщений: 5,116
Вчера, 08:04
Лучший ответ Сообщение было отмечено 755 как решение

Решение

Во-первых - очень странная работа с промисами в функции imp_mFilm
Там получается, что resolve в может вызываться в цикле много раз. Так не может быть.
Функцию переделал

JavaScript
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
        // =================================
        async function imp_mFilm() {       // , zn_pol, kl
 
            function aadd(obj) {
                return new Promise((resolve, reject) => {
                    req = xr.add(obj);
 
                    req.onsuccess = function () {
                        console.log(" => │ add nam_film=" + obj.nam_film, req.result);
                        resolve("1");
                    };
                    req.onerror = function () {
                        console.log("Ошибка", req.error);
                        reject(0);
                    };
                });
            }
 
            let nm_xr = "Ffilm";
            const m_in = [
                ["Васаби", 1974],
                ["Аванти", 1972],
                ["Аватар", 2009],
                ["Блеф", 1974],
                ["Долг", 1974],
                ["Безумие", 1969],
            ];
 
            let tr = idb_db.transaction(nm_xr, 'readwrite');
            let xr = tr.objectStore(nm_xr);
            let req;
 
            for (let i = 0; i < m_in.length; i++) {
                let ob_in = {};
                ob_in.nam_film = m_in[i][0]; ob_in.god_film = m_in[i][1];
                console.log("imp_mFilm │ Сформ: ", ob_in, `kl= ${ob_in.nam_film}  ${ob_in.god_film}`);
                await aadd(ob_in);
            }
 
 
        }
Во-вторых интексы - массив
В функции fi_kl должно быть
JavaScript
1
kl = [1972];
1
-15 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 342
Вчера, 09:01  [ТС]
Спасибо огромное,voraa. Вчера "сломал голову", пытаясь разобраться: проверял и тип ключа - показало, что объект. Поэтому ключ как элемент объекта пытался использовать, а вот как элемент массива не догадался. Хотя когда организуется поиск по двум и более полям, реализовывал как массив.

Странно, что и в найденных примерах ключ по одному полю реализовывался не как массив (или чего-то не понял):
JavaScript
1
2
3
var index = objectStore.index("name");
index.get("Donna").onsuccess = function
...
https://habr.com/ru/articles/213515/
JavaScript
1
2
let priceIndex = books.index("price_idx");
let request = priceIndex.getAll(10);
https://learn.javascript.ru/in... nomu-polyu

Спасибо и за то, что обратили внимание на неправильную реализацию resolve
0
 Аватар для voraa
1230 / 1122 / 174
Регистрация: 21.01.2024
Сообщений: 5,116
Вчера, 11:08
Цитата Сообщение от 755 Посмотреть сообщение
Странно, что и в найденных примерах ключ по одному полю реализовывался не как массив (или чего-то не понял):
Но вы же создали индексы, как массивы
JavaScript
1
2
    ind = xr.createIndex('ind_god', ['god_film'], { unique: false })
    ind = xr.createIndex('ind_nam', ['nam_film'], { unique: false })
Если бы вы их сделали просто, как имена
JavaScript
1
2
    ind = xr.createIndex('ind_god', 'god_film', { unique: false });
    ind = xr.createIndex('ind_nam', 'nam_film', { unique: false });
То и искать нужно бы было по значению
JavaScript
1
kl = 1972;
1
-15 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 342
Вчера, 12:04  [ТС]
Цитата Сообщение от voraa Посмотреть сообщение
Но вы же создали индексы, как массивы
Спасибо еще раз, огромное, voraa - стало понятно и был невнимателен, точнее не задумался или не обратил внимания.

И, раз уж вы привели пример:
Цитата Сообщение от voraa Посмотреть сообщение
async function imp_mFilm()
затрону здесь основной непонятный вопрос по async функциям.

Проверил такой запуск imp_mFilm:
JavaScript
1
2
3
4
5
6
7
8
 console.log("(0) Операция ДО вызова функции");
 promise.then (st => {
  // promise - idb_open() завершила работу
  imp_mFilm().then (st => {
     console.log("(1) Выполнить действия после импорта");
     })
 }) 
 console.log("(2) Операция ПОСЛЕ вызова функции");
данные сформировались хотя в async и не находился return (возможно, данный оператор не является обязательным для такого типа функций ?)

А если как пишут promise и async одно и тоже, то как мне получить объект промиса функции imp_mFilm(), чтобы потом уже выполнить следующие действия, типа
JavaScript
1
2
 promise1 = imp_mFilm(); // если правильно понял, возвращается результат, а не объект промиса ?
 promise1.then (st => { read_xr(); })  // чтение данных
И могу ли вместо promise1.then (st => { read_xr(); })
использовать await read_xr(); - await не внутри async, а следующая после выполнения функции ?
0
 Аватар для voraa
1230 / 1122 / 174
Регистрация: 21.01.2024
Сообщений: 5,116
Вчера, 13:09
Цитата Сообщение от 755 Посмотреть сообщение
данные сформировались хотя в async и не находился return
Вы никак не можете понять async функции и их связь с промисами.

Попробуем еще раз

async функции всегда возвращают промис.
Если она заканчивает работу по return value то она возвращает промис разрешенный с этим самым value.
(как будто бы в промисе вызвали resolve(value))
Eсли она заканчивает работу по return (или без return) то она возвращает промис разрешенный с undefined (как будто бы в промисе вызвали resolve())

(Обычная функция тоже всегда возвращает результат. Если у нее просто return или его нет вообще, то она возвращает undefined)

Цитата Сообщение от 755 Посмотреть сообщение
то как мне получить объект промиса функции imp_mFilm(),
А зачем он вам? Функция ведь не возвращает никакого значения
Если надо обязательно ждать окончания работы функции, то
JavaScript
1
await  imp_mFilm()
Если не надо ждать. Например все равно, когда она закончит работу, то просто
JavaScript
1
 imp_mFilm()
Вы же в своем примере ее вызывали вообще из html. Нажали кнопку и запустили и без разницы, когда он закончится.
Цитата Сообщение от 755 Посмотреть сообщение
И могу ли вместо promise1.then (st => { read_xr(); })
использовать await read_xr(); - await не внутри async,
Нет. Все функции, которые должны ждать окончания асинхронных вызываемых функций должны быть асинхронными.
Ведь что значит асинхронная функция?
Это значит, что мы не знаем, когда она закончит работу и вернет результат.
Если мы внутри функции А вызываем асинхронную функцию Б, не знаем, когда она завершится и ждем ее результата, то мы так же не знаем, когда закончится А. Поэтому должны тоже указать, что она асинхронная.
Если бы на был не нужен результат Б и мы бы не ждали окончания ее работы (вызов без await), то могли бы и А не делать асинхронной.
2
-15 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 342
Вчера, 14:59  [ТС]
voraa, спасибо огромное за подробное объяснение и потраченное время.

Даже если как мне кажется основные тезисы асинхронных функций и понял, то повторение их пойдет только на пользу. Ибо это очень важный аспект веб программирования и в начале своего практического программирования, не зная о его существовании, столкнулся с данной проблемой, когда данные с сервера не успевали поступать для выпадающего списка - и для решения этой проблемы пришлось применять рекурсию, не зная, что все гораздо проще и для этого и есть асинхронные функции.
Поэтому еще раз с благодарностью за данной объяснение.
Цитата Сообщение от voraa Посмотреть сообщение
Ведь что значит асинхронная функция?
Это значит, что мы не знаем, когда она закончит работу и вернет результат.
Когда-то искал ответ - можно ли реализовать асинхронной функцию, в которой только синхронные операции (если не подводит память, хотел реализовать функцию типа alert - выполняется код, вывод параметров для ввода или выбора и ожидание (чтобы следующий синхронный код не выполнялся), пока они не будут введены или выбраны) - понял так, что этого нельзя, хотя и нет уверенности, что прав. Остальное же в отношении асинхронности вроде бы понятно.

Цитата Сообщение от voraa Посмотреть сообщение
Вы же в своем примере ее вызывали вообще из html.
Это только пример в помощь на заданный вопрос.

Цитата Сообщение от voraa Посмотреть сообщение
А зачем он вам? Функция ведь не возвращает никакого значения
Если надо обязательно ждать окончания работы функции, то
await  imp_mFilm()
Если не надо ждать. Например все равно, когда она закончит работу, то просто
 imp_mFilm()
Часто надо знать окончание завершения работы функции. даже из данного примера функция idb_open запускается сразу же после формирования страницы один раз, поэтому я должен знать промис данной функции, чтобы не запустить операции по indexedDB, если БД не будет открыта. Причем promise.then () может использоваться в нескольких местах кода.
А параллельно запуститься и другой асинхронный процесс, например более важный вариант (точнее долгий) - в фоновом режиме запускается код по анализу информации на сервере и ее сохранении в indexedDB. Причем для второго варианта мне надо иметь объект промиса, потому что вначале запускается просто promise = frm_inf (); и promise.then () м.б. запущен совершенно из другого места, а м.б. и нет - в зависимости от действий Пользователя.
С промисами все просто (иногда даже для перестраховки решил использовать массив):
JavaScript
1
2
3
4
5
6
7
01.js
m_promise[0] = idb_open();
m_promise[1] = imp_mFilm();
02.js
function get_reg () {
 m_promise[1].then (st => {fun();})
}
а вот как применить async в таком варианте ответа не увидел. Думал вернуться к вопросу после Нового года, но раз уж...
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3803 / 1637 / 428
Регистрация: 14.03.2022
Сообщений: 4,080
Вчера, 15:17
Цитата Сообщение от 755 Посмотреть сообщение
Когда-то искал ответ - можно ли реализовать асинхронной функцию, в которой только синхронные операции (если не подводит память, хотел реализовать функцию типа alert - выполняется код, вывод параметров для ввода или выбора и ожидание (чтобы следующий синхронный код не выполнялся), пока они не будут введены или выбраны) - понял так, что этого нельзя, хотя и нет уверенности, что прав.
Делать асинхронную функцию в которой все синхронное - можно.
Вопрос только - зачем эту функцию делать именно асинхронной?
Обычная синхронная функция это так же сможет сделать.

Но.
Если ты вызвал асинхронную функцию - управление сразу передается следующей синхронной "операции".
"Ожидание" асинхронного ответа возможно только в использовании async/await...

Добавлено через 2 минуты
Цитата Сообщение от 755 Посмотреть сообщение
С промисами все просто (иногда даже для перестраховки решил использовать массив):
В массив, как правило, промисы суют если собрались использовать промисное АПИ...

Добавлено через 2 минуты
Цитата Сообщение от 755 Посмотреть сообщение
JavaScript
1
2
3
function get_reg () {
 m_promise[1].then (st => {fun();})
}
а вот как применить async в таком варианте ответа не увидел.
Вот так...

JavaScript
1
2
3
4
async function get_reg () {
   const st = await m_promise[1]
   fun()
}
Добавлено через 2 минуты
755, только нужно понимать.
Если ты написал некой функции async - значит ты "поднял" всю ее асинхронность еще выше "на уровень".
1
-15 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 342
Вчера, 16:08  [ТС]
krvsa, спасибо большое - ценная информация.

Цитата Сообщение от krvsa Посмотреть сообщение
Вот так...
async function get_reg () {
   const st = await m_promise[1]
   fun()
}
Интересное и неожиданное решение.

Но имел в виду несколько иное:
JavaScript
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
// imp_mFilm как обычнй промис
// ---------------------------
function imp_mFilm ()   {       // , zn_pol, kl
return new Promise((resolve, reject) => {
        . . .
});
}
// Поэтому:
m_promise[1] = imp_mFilm();
// И уже дальше где-то в коде:
function get_reg () {
 m_promise[1].then (st => {fun();})
}
 
// imp_mFilm как async
// -------------------
async function imp_mFilm () {       // , zn_pol, kl
        . . .
}
// Непонятно как получить объект промиса:
m_promise[1] = ???
// для =>
function get_reg () {
 m_promise[1].then (st => {fun();})
}
0
 Аватар для voraa
1230 / 1122 / 174
Регистрация: 21.01.2024
Сообщений: 5,116
Вчера, 18:48
Цитата Сообщение от 755 Посмотреть сообщение
// imp_mFilm как async
// -------------------
async function imp_mFilm () {       // , zn_pol, kl
        . . .
}
// Непонятно как получить объект промиса:
m_promise[1] = ???
// для =>
function get_reg () {
 m_promise[1].then (st => {fun();})
}
Ну если вам так хочется хранить эти промисы (иногда это действительно нужно бывает), то так

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
async function imp_mFilm () {       // , zn_pol, kl
        . . .
}
// Получаем объект промиса
m_promise[1] = imp_mFilm ()  // Ведь  imp_mFilm возвращает промис
// для =>
function get_reg () {
 m_promise[1].then (st => {fun();})
}
 
//или так
async function get_reg () {
 const st = await m_promise[1]; // после await должен быть промис (но не обязательно)
 fun ();  // Хотя не понятно, зачем нужен st
}
1
-15 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 342
Вчера, 20:01  [ТС]
Цитата Сообщение от voraa Посмотреть сообщение
Ну если вам так хочется хранить эти промисы (иногда это действительно нужно бывает)
Правильные слова, voraa, все по ситуации, но хотел вначале понять механизм.

Была такая мысль, проверить конструкцию
JavaScript
1
m_promise[1] = imp_mFilm ()
- не работает ли она аналогично промису. Но вроде бы вчера прочитал, что она возвращает результат, а не объект промиса - сейчас поискал эту фразу, но не нашел - быстрее всего напутал.

Думаю, на этом по обоим вопросам в основном все - спасибо Вам и krvsa за помощь - очень помогли.
0
 Аватар для voraa
1230 / 1122 / 174
Регистрация: 21.01.2024
Сообщений: 5,116
Сегодня, 00:10
Цитата Сообщение от 755 Посмотреть сообщение
Но вроде бы вчера прочитал, что она возвращает результат,
Обычная функция возвращает то, что написано в return или undefined.
Асинхронная функция всегда возвращает промис. Если в ней написано return val; то она вернет Promise.resolve(val); ну или Promise.resolve(undefined);
(Так же почти верно обратное - если функция возвращает промис, то ее можно считать асинхронной)
Если функция асинхронная то

JavaScript
1
2
const pres = asfun(); // в pres - промис. но код не будет ждать завершения функции.
const res = await asfun(); // в res будет результат этого промиса, когда функция завершится
Ну не так много и трудно все это понять и запомнить.
1
-15 / 0 / 0
Регистрация: 12.11.2020
Сообщений: 342
Сегодня, 10:13  [ТС]
Цитата Сообщение от voraa Посмотреть сообщение
Асинхронная функция всегда возвращает промис.
Возможно путаю или неверно употребляю термины: так понял есть два понятия объект промиса (возможно правильнее говорить - не возвращается, а создается) и результат промиса.

JavaScript
1
2
promise.then {} // promise - объект промиса
resolve(val);  // результат промиса
Под фразой "... что она возвращает результат," имел в виду первое (объект) - судя по последнему объяснению неверно выразился.

В любом случае огромное спасибо за помощь - думаю с асинхронностью в основном все ясно. Ну, а с indexedDB думал аналогично ранее до сегодняшней темы.

Ps.
Жаль, что нельзя в заголовок добавить ", а также Асинхронность" думаю, многим данная тема интереснее, чем indexedDB
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
Сегодня, 10:13
Помогаю со студенческими работами здесь

Динамическое клонирование полей формы и их дальнейшее использование
Здравствуйте. Есть необходимость динамического склонирования элементов формы. Есть форма. есть три...

Как получить массив из значений при использовании цикла?
привет всем, в програмировании новичёк, помогите получить массив, имеется вот такая прога, мне...

Возможно ли получить от сервера простой ответ без использования data.store?
В общем, нужна просто проверка на существование поля с данными. Т.е. нужно что: Есть таблица с...

document.getElementById нужно получить не значение value а сам текст. При использовании с select
Всем приветик! Ребят, подскажите пожалуйста как решить эту задачку, а то я с JavaScript очень плохо...

не удается получить доступ к this при использование setInterval
есть у меня объект созданый вот таким способом (function () { function myObj() { ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД 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
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru