Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для helsik
12 / 12 / 3
Регистрация: 09.12.2013
Сообщений: 142

Edit подставляющий значения из таблицы access при вводе

27.11.2015, 15:51. Показов 2430. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, нужно сделать чтобы при вводе в Edit подставлялись значения из одного столбца таблицы access. Подскажите как это можно реализовать. Мне не принципиально делать именно через edit но это должно быть поле куда вводятся данные и автоматом во время ввода чтоб подставлялись значения с таблицы, поиск короче. Спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.11.2015, 15:51
Ответы с готовыми решениями:

Edit, при вводе нового значения сохранять старое
Добрый день. Имеется такая задача - в экшн Edit приходят новые данные из вью. Перед их сохранением хочется достать старые (необходимо...

При вводе значения в поля Edit и нажатии на Button данные вывести в Excel
Доброе утро всем. Я снова обращаюсь за вашей помощью. У меня такая задача. Есть Edit(2 штуки) и Button1(1 штук). Мне нужно сделать так,...

Вывод таблицы при вводе значения степени n
Форумчане, нужна ваша помощь...желательно сегодня... Ввести значение степени n и выдать таблицу n 2n 1 2 2 4 3 8 ...

15
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,885
Записей в блоге: 12
27.11.2015, 16:33
Цитата Сообщение от helsik Посмотреть сообщение
как это можно реализовать
Лучше всего использовать уже готовый функционал, предоставляемый интерфейсом IAutoComplete2, но как всегда окажется, что это для тебя слишком сложно, и тебе достаточно обычного велосипеда, который после нажатия кнопки будет лезть в таблицу, искать там соответствие с содержимым Edit-а и использовать его: How to implement autocompletion in a TEdit
1
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
27.11.2015, 19:45
volvo, а можно чтобы не переводить код с Delphi на C++ Builder, а просто создать pas-файл скопировать туда из твоей ссылки и прикрутить его к проекту, а затем настроить этот модуль для своего Edit, который будет находится на форме?
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,885
Записей в блоге: 12
27.11.2015, 20:58
В том виде, в котором этот код представлен по ссылке - нет, его нужно бы переписать в виде класса с переопределенным методом KeyUp, и вот тогда его можно будет просто прилепить в проект и использовать. Но еще раз: этого делать не нужно. Использование IAutoComplete2 + IEnumString даст гораздо более интересные результаты. Я сейчас не под Windows, когда буду под виндой - набросаю примерчик.
2
 Аватар для helsik
12 / 12 / 3
Регистрация: 09.12.2013
Сообщений: 142
27.11.2015, 21:44  [ТС]
Спасибо, за ответы, у меня юбилей на выходных, в понедельник отпишусь о результатах, кстати делаю программу на 6-м билдере, сомневаюсь, что там можно что-то "прикрутить" )) Еще раз, спасибо!
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,885
Записей в блоге: 12
28.11.2015, 16:08
Лучший ответ Сообщение было отмечено Sasha как решение

Решение

Вот пример, как обещал (переносить все на Билдер не стал, сделал pas-модуль, который можно подключить к проекту и спокойно использовать)

Вот сам модуль:

Delphi
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
unit MyEditUnit;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Data.Win.ADODB, Vcl.StdCtrls,
  Vcl.Grids, Vcl.DBGrids, ActiveX, ShlObj;
 
type
  IACList = interface(IUnknown)
    ['{77A130B0-94FD-11D0-A544-00C04FD7d062}']
    function Expand(pszExpand: POLESTR): HResult; stdcall;
  end;
 
const
  // options for IACList2
  ACLO_NONE = 0; // don't enumerate anything
  ACLO_CURRENTDIR = 1; // enumerate current directory
  ACLO_MYCOMPUTER = 2; // enumerate MyComputer
  ACLO_DESKTOP = 4; // enumerate Desktop Folder
  ACLO_FAVORITES = 8; // enumerate Favorites Folder
  ACLO_FILESYSONLY = 16; // enumerate only the file system
 
type
  IACList2 = interface(IACList)
    ['{470141a0-5186-11d2-bbb6-0060977b464c}']
    function SetOptions(dwFlag: DWORD): HResult; stdcall;
    function GetOptions(var pdwFlag: DWORD): HResult; stdcall;
  end;
 
  IAutoComplete = interface(IUnknown)
    ['{00bb2762-6a77-11d0-a535-00c04fd7d062}']
    function Init(hwndEdit: HWND; const punkACL: IUnknown;
      pwszRegKeyPath, pwszQuickComplete: POLESTR): HResult; stdcall;
    function Enable(fEnable: BOOL): HResult; stdcall;
  end;
 
const
  // options for IAutoComplete2
  ACO_NONE = 0;
  ACO_AUTOSUGGEST = $1;
  ACO_AUTOAPPEND = $2;
  ACO_SEARCH = $4;
  ACO_FILTERPREFIXES = $8;
  ACO_USETAB = $10;
  ACO_UPDOWNKEYDROPSLIST = $20;
  ACO_RTLREADING = $40;
 
type
  IAutoComplete2 = interface(IAutoComplete)
    ['{EAC04BC0-3791-11d2-BB95-0060977B464C}']
    function SetOptions(dwFlag: DWORD): HResult; stdcall;
    function GetOptions(out pdwFlag: DWORD): HResult; stdcall;
  end;
 
  TEnumString = class(TInterfacedObject, IEnumString)
  private type
    TPointerList = array [0 .. 0] of Pointer;
    // avoid bug of Classes.pas declaration TPointerList = array of Pointer;
 
  var
    FStrings: TStringList;
    FCurrIndex: integer;
  public
    // IEnumString
    function Next(celt: Longint; out elt; pceltFetched: PLongint)
      : HResult; stdcall;
    function Skip(celt: Longint): HResult; stdcall;
    function Reset: HResult; stdcall;
    function Clone(out enm: IEnumString): HResult; stdcall;
    // VCL
    constructor Create;
    destructor Destroy; override;
  end;
 
  TACOption = (acAutoAppend, acAutoSuggest, acUseArrowKey);
  TACOptions = set of TACOption;
 
  TACSource = (acsList, acsHistory, acsMRU, acsShell);
 
  TMyEdit = class(TEdit)
  private
 
    FACList: TEnumString;
    FAutoComplete: IAutoComplete;
    FACEnabled: boolean;
    FACOptions: TACOptions;
    FACSource: TACSource;
    function GetACStrings: TStringList;
    procedure SetACEnabled(const Value: boolean);
    procedure SetACOptions(const Value: TACOptions);
    procedure SetACSource(const Value: TACSource);
    procedure SetACStrings(const Value: TStringList);
 
  public
    FACDataSource: TDataSource;
    FACFieldName: string;
 
  protected
    procedure CreateWnd; override;
    procedure DestroyWnd; override;
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure ReadSuggestions;
  published
    property ACEnabled: boolean read FACEnabled write SetACEnabled;
    property ACOptions: TACOptions read FACOptions write SetACOptions;
    property ACSource: TACSource read FACSource write SetACSource;
    property ACStrings: TStringList read GetACStrings write SetACStrings;
  end;
 
implementation
 
uses ComObj;
 
{ TEnumString }
 
function TEnumString.Clone(out enm: IEnumString): HResult;
begin
  Result := E_NOTIMPL;
  Pointer(enm) := nil;
end;
 
constructor TEnumString.Create;
begin
  inherited Create;
  FStrings := TStringList.Create;
  FCurrIndex := 0;
end;
 
destructor TEnumString.Destroy;
begin
  FStrings.Free;
  inherited;
end;
 
function TEnumString.Next(celt: integer; out elt;
  pceltFetched: PLongint): HResult;
var
  I: integer;
  wStr: WideString;
begin
  I := 0;
  while (I < celt) and (FCurrIndex < FStrings.Count) do
  begin
    wStr := FStrings[FCurrIndex];
    TPointerList(elt)[I] := CoTaskMemAlloc(2 * (Length(wStr) + 1));
    StringToWideChar(wStr, TPointerList(elt)[I], 2 * (Length(wStr) + 1));
    Inc(I);
    Inc(FCurrIndex);
  end;
  if pceltFetched <> nil then
    pceltFetched^ := I;
  if I = celt then
    Result := S_OK
  else
    Result := S_FALSE;
end;
 
function TEnumString.Reset: HResult;
begin
  FCurrIndex := 0;
  Result := S_OK;
end;
 
function TEnumString.Skip(celt: integer): HResult;
begin
  if (FCurrIndex + celt) <= FStrings.Count then
  begin
    Inc(FCurrIndex, celt);
    Result := S_OK;
  end
  else
  begin
    FCurrIndex := FStrings.Count;
    Result := S_FALSE;
  end;
end;
 
{ TACEdit }
 
constructor TMyEdit.Create(AOwner: TComponent);
begin
  inherited;
  FACList := TEnumString.Create;
  FACEnabled := True;
  FACOptions := [acAutoAppend, acAutoSuggest, acUseArrowKey];
end;
 
procedure TMyEdit.CreateWnd;
var
  Dummy: IUnknown;
  Strings: IEnumString;
begin
  inherited;
  if HandleAllocated then
  begin
    try
      Dummy := CreateComObject(CLSID_AutoComplete);
      if (Dummy <> nil) and (Dummy.QueryInterface(IID_IAutoComplete,
        FAutoComplete) = S_OK) then
      begin
        case FACSource of
          acsHistory:
            Strings := CreateComObject(CLSID_ACLHistory) as IEnumString;
          acsMRU:
            Strings := CreateComObject(CLSID_ACLMRU) as IEnumString;
          acsShell:
            Strings := CreateComObject(CLSID_ACListISF) as IEnumString;
        else
          Strings := FACList as IEnumString;
        end;
        if S_OK = FAutoComplete.Init(Handle, Strings, nil, nil) then
        begin
          SetACEnabled(FACEnabled);
          SetACOptions(FACOptions);
        end;
      end;
    except
      // CLSID_IAutoComplete is not available
    end;
  end;
end;
 
destructor TMyEdit.Destroy;
begin
  FACList := nil;
  inherited;
end;
 
procedure TMyEdit.DestroyWnd;
begin
  if (FAutoComplete <> nil) then
  begin
    FAutoComplete.Enable(False);
    FAutoComplete := nil;
  end;
  inherited;
end;
 
function TMyEdit.GetACStrings: TStringList;
begin
  Result := FACList.FStrings;
end;
 
procedure TMyEdit.ReadSuggestions;
begin
  ACStrings.Clear;
  if (not Assigned(FACDataSource)) or (not Assigned(FACDataSource.DataSet)) or (not ACEnabled) then exit;
  with FACDataSource.DataSet do
  begin
    if Active and (RecordCount > 0) and (FACFieldName <> '') then
    begin
      First;
      while not EOF do
      begin
        ACStrings.Add(FACDataSource.DataSet.FieldByName(FACFieldName).AsString);
        Next;
      end;
      if ACStrings.Count > 0 then
        // ACStrings := FautocompleteSourceList;
    end;
  end;
end;
 
procedure TMyEdit.SetACEnabled(const Value: boolean);
begin
  if (FAutoComplete <> nil) then
  begin
    FAutoComplete.Enable(FACEnabled);
  end;
  FACEnabled := Value;
end;
 
procedure TMyEdit.SetACOptions(const Value: TACOptions);
const
  Options: array [TACOption] of integer = (ACO_AUTOAPPEND, ACO_AUTOSUGGEST,
    ACO_UPDOWNKEYDROPSLIST);
var
  Option: TACOption;
  Opt: DWORD;
  AC2: IAutoComplete2;
begin
  if (FAutoComplete <> nil) then
  begin
    if S_OK = FAutoComplete.QueryInterface(IID_IAutoComplete2, AC2) then
    begin
      Opt := ACO_NONE;
      for Option := Low(Options) to High(Options) do
      begin
        if (Option in FACOptions) then
          Opt := Opt or DWORD(Options[Option]);
      end;
      AC2.SetOptions(Opt);
    end;
  end;
  FACOptions := Value;
end;
 
procedure TMyEdit.SetACSource(const Value: TACSource);
begin
  if FACSource <> Value then
  begin
    FACSource := Value;
    RecreateWnd;
  end;
end;
 
procedure TMyEdit.SetACStrings(const Value: TStringList);
begin
  if Value <> FACList.FStrings then
    FACList.FStrings.Assign(Value);
end;
 
end.

Вот Билдеровская часть

Класс формы:
C++
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
//---------------------------------------------------------------------------
 
#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <Vcl.Controls.hpp>
#include <Vcl.StdCtrls.hpp>
#include <Vcl.Forms.hpp>
#include <Data.DB.hpp>
#include <Data.Win.ADODB.hpp>
#include <Vcl.DBGrids.hpp>
#include <Vcl.Grids.hpp>
 
#include "MyEditUnit.hpp"
 
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:    // IDE-managed Components
    TDBGrid *DBGrid1;
    TADOConnection *ADOConnection1;
    TDataSource *DataSource1;
    TADOTable *ADOTable1;
    void __fastcall FormCreate(TObject *Sender);
private:    // User declarations
public:     // User declarations
    TMyEdit *ACEdit;
 
    __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
и реализация:
C++
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
// ---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
// ---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
 
// ---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
}
// ---------------------------------------------------------------------------
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
    ACEdit = new TMyEdit(this);
    ACEdit->Parent = this;
    ACEdit->Top = 279;
    ACEdit->Left = 10;
    ACEdit->Width = 250;
 
    ACEdit->ACEnabled = True;
    ACEdit->ACOptions = TACOptions() << acAutoAppend << acAutoSuggest << acUseArrowKey;
    ACEdit->ACSource = acsList;
 
    ACEdit->FACDataSource = DataSource1;
    ACEdit->FACFieldName = "title";
 
    ACEdit->ReadSuggestions(); // Этот метод можно вызывать после обновления БД
}
// ---------------------------------------------------------------------------
Тестировалось на XE2, вот так выглядит:


Сам проект прикрепить?
2
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
28.11.2015, 18:03
Цитата Сообщение от volvo Посмотреть сообщение
Сам проект прикрепить?
Прикрипи
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,885
Записей в блоге: 12
28.11.2015, 18:16
Лучший ответ Сообщение было отмечено Sasha как решение

Решение

Цитата Сообщение от Sasha Посмотреть сообщение
Прикрипи
Вот проект:
Вложения
Тип файла: 7z edit_autocomplete.7z (74.0 Кб, 25 просмотров)
2
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
28.11.2015, 18:35
Спасибо, прийму к сведению
0
 Аватар для helsik
12 / 12 / 3
Регистрация: 09.12.2013
Сообщений: 142
30.11.2015, 11:22  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Вот проект:
Вложения
Тип файла: 7z edit_autocomplete.7z (74.0 Кб, 5 просмотров)
cпс, но можно логин-пароль от БД..
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
30.11.2015, 11:40
Цитата Сообщение от helsik Посмотреть сообщение
cпс, но можно логин-пароль от БД..
нет там никакого пароля. Поставь LoginPrompt = false и настрой под себя строку подключения.
0
 Аватар для helsik
12 / 12 / 3
Регистрация: 09.12.2013
Сообщений: 142
30.11.2015, 11:48  [ТС]
спс, на моем билдере не пошло, нет edit на форме.. судя по коду там не обычный edit, а какой-то похожий компонент с XE2 который мой билдер не видит( ладн, буду разбираться. спс.
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
30.11.2015, 11:50
Цитата Сообщение от helsik Посмотреть сообщение
нет edit на форме
так он же динамически создается
0
 Аватар для helsik
12 / 12 / 3
Регистрация: 09.12.2013
Сообщений: 142
30.11.2015, 13:25  [ТС]
подскажите как например в список combobox вывести значения одного столбца "Имя" таблицы "Сотрудники"? спс
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33197 / 21493 / 8233
Регистрация: 22.10.2011
Сообщений: 36,885
Записей в блоге: 12
30.11.2015, 13:28
Это как-то относится к тому, что нужно подсказку в Edit-е? Нет, это совершенно другое задание. Не нужно делать свалку из темы.
0
 Аватар для helsik
12 / 12 / 3
Регистрация: 09.12.2013
Сообщений: 142
30.11.2015, 14:00  [ТС]
ок, спс, спрошу в новой теме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.11.2015, 14:00
Помогаю со студенческими работами здесь

При вводе в один Edit, во второй Edit автоматически вводится то же самое
Ввел я допустим в Edit1- &quot;АБВГД&quot;, нажал на кнопку и &quot;АБВГД&quot; появилась во втором эдите, как такое совершить? Зарание спасибо. ...

Как при вводе текста в один Edit загружать те же символы во второй Edit?
помогите есть 2 mdi окна в них эдиты. как при вводе текста в 1 эдит загружать теже символы во второй эдит? как хотя бы получить информацию...

Автоматическое заполнение поля таблицы/формы при вводе значения в другое поле
Добрый день, прошу помощи. Есть таблица Т1ИНДЕКС с полями «Индекс» и «Город». Есть Таблица Т2ЗАГРУЗКА с полями «№ заказа», «Индекс» и...

Автоматическое заполнение поля таблицы/формы при вводе значения в другое поле
Добрый день, прошу помощи у Гуру ACCESS. Есть таблицы ЗП_проект и Кадры А также форма ЗП_проект куда вводится часть поступающей...

Обработка ошибок при вводе в Edit
Имеется часть кода try q:=StrToFloat(Edit1.Text); except exit; ShowMessage('Введена лишняя запятая'); end;


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru