2 / 2 / 3
Регистрация: 20.12.2015
Сообщений: 339

Delphi ошибка ole error 800a03ec

02.11.2017, 09:08. Показов 6343. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, работал с Excel через delphi, почти задачу сделал батс ошибка "Ole error 800a03ec", в форумах искал решение не нашел. Пробовал все, в настройках безопасности Excel ставил разрешение на макросы и т п, не помогает. В пк установлен MS excel 2013. Как избавиться от этого геморроя?
Кликните здесь для просмотра всего текста

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
unit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.StdCtrls, ComObj;
 
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Edit2: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Button2: TButton;
    OpenDialog1: TOpenDialog;
    StringGrid1: TStringGrid;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Button3: TButton;
    procedure Edit1Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit2Change(Sender: TObject);
    procedure Edit3Change(Sender: TObject);
    procedure Edit4Change(Sender: TObject);
    procedure Edit5Change(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    fileName, fullFilePath: String;
    { Public declarations }
  end;
 
var
  Form1: TForm1;
  Excel: OleVariant;
  Es, s, s1, dir1, dir2, dir3, dir4, np, nd, ps, fp: String;
 
implementation
 
{$R *.dfm}
 
uses Unit2;
 
procedure TForm1.Button1Click(Sender: TObject);
const
  xlCellTypeLastCell = $0000000B;
var
  ExlApp, Sheet: OleVariant;
  i, j, r, c: integer;
begin
  // Поиск файла
  fullFilePath := FileSearch(fileName, dir1 + ';' + dir2 + ';' + dir3);
  // Теперь удаляем Test.txt из текущего каталога и повторяем поиск
  DeleteFile(fileName);
  // Если мы поищем теперь, мы найдем его в одной из директорий поиска
  fullFilePath := FileSearch(fileName, dir1 + ';' + dir2 + ';' + dir3 +
    ';' + dir4);
  if fullFilePath = '' then
  begin
    ShowMessage(fileName + ' не найден или не был создан');
  end
  else
  begin
    // создаем объект Excel
    ExlApp := CreateOleObject('Excel.Application');
    // делаем окно Excel невидимым
    ExlApp.Visible := false;
    // открываем файл XLSFile
    ExlApp.Workbooks.Open('D:\delphi\Вариант №6\Клиенты\' + fileName);
    // создаем объект Sheet(страница) и указываем номер листа (1)
    // в книге, с которого будем осуществлять чтение
    Sheet := ExlApp.Workbooks[ExtractFileName('D:\delphi\Вариант №6\Клиенты\' +
      fileName)].WorkSheets[1];
    // активируем последнюю ячейку на листе
    Sheet.Cells.SpecialCells(xlCellTypeLastCell, EmptyParam).Activate;
    // Возвращает номер последней строки
    r := ExlApp.ActiveCell.Row;
    // Возвращает номер последнего столбца
    c := ExlApp.ActiveCell.Column;
    // устанавливаем кол-во столбцов и строк в StringGrid
    StringGrid1.RowCount := r;
    StringGrid1.ColCount := c;
    // считываем значение из каждой ячейки и копируем в нашу таблицу
    for j := 1 to r do
      for i := 1 to c do
        StringGrid1.Cells[i - 1, j - 1] := Sheet.Cells[j, i];
    // если необходимо прочитать формулы то
    // копировка данных
    Label6.Visible := true;
    Label7.Visible := true;
    Label8.Visible := true;
    Label9.Visible := true;
    Label10.Visible := true;
    Label10.Visible := true;
    Label11.Visible := true;
    Label12.Visible := true;
    Label13.Visible := true;
    Label14.Visible := true;
    Label8.Caption := StringGrid1.Cells[4, 4];
    Label10.Caption := StringGrid1.Cells[4, 5];
    Label12.Caption := StringGrid1.Cells[8, 5];
    Label14.Caption := StringGrid1.Cells[4, 7];
    Button3.Visible := true;
    // очищаем выделенную память
    ExlApp := Unassigned;
    Sheet := Unassigned;
  end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  Excel := CreateOleObject('Excel.Application');
  Excel.Visible := true;
  Excel.Workbooks.Add;
  Excel.Workbooks[1].WorkSheets[1].Name := 'Интервальный расход';
  Excel.Workbooks[1].WorkSheets[1].Columns['B:AF'].ColumnWidth := 6.57;
  Excel.Workbooks[1].WorkSheets[1].Columns['A1'].ColumnWidth := 8.71;
  Excel.Workbooks[1].WorkSheets[1].Range['A1:AF9'].Font.Name :=
    'Times New Roman';
  Excel.Workbooks[1].WorkSheets[1].Range['A1:AF9'].Font.Size := 14;
 
  Excel.Workbooks[1].WorkSheets[1].Range['A10:AF35'].Font.Name := 'Arial Cyr';
  Excel.Workbooks[1].WorkSheets[1].Range['A10:AF35'].Font.Size := 10;
 
  Excel.Workbooks[1].WorkSheets[1].Range['A1:Q1'].Merge;
  Excel.Workbooks[1].WorkSheets[1].Range['A1:Q1'].Font.Bold := true;
  Excel.Workbooks[1].WorkSheets[1].Range['G1'] := 'Акт снятия профиля нагрузки';
 
  Excel.Workbooks[1].WorkSheets[1].Range['AB1:AE1'].Merge;
  Excel.Workbooks[1].WorkSheets[1].Range['AB1'] := 'Приложение №4 лист 1';
 
  Excel.Workbooks[1].WorkSheets[1].Range['A5:E5'].Merge;
  Excel.Workbooks[1].WorkSheets[1].Range['F5:H5'].Merge;
  Excel.Workbooks[1].WorkSheets[1].Range['F5'] := np;
  Excel.Workbooks[1].WorkSheets[1].Range['A5'].Font.Bold := true;
  Excel.Workbooks[1].WorkSheets[1].Range['A5'] := 'Наименование потребителя';
 
  Excel.Workbooks[1].WorkSheets[1].Range['L5'].Font.Bold := true;
  Excel.Workbooks[1].WorkSheets[1].Range['K5'].Font.Bold := true;
  Excel.Workbooks[1].WorkSheets[1].Range['L5'] := nd;
  Excel.Workbooks[1].WorkSheets[1].Range['K5'] := 'ID = ';
 
  Excel.Workbooks[1].WorkSheets[1].Range['A7:G7'].Merge;
  Excel.Workbooks[1].WorkSheets[1].Range['A7'].Font.Bold := true;
  Excel.Workbooks[1].WorkSheets[1].Range['H7'] := fp;
  Excel.Workbooks[1].WorkSheets[1].Range['A7'] :=
    'Фактическое почасовое потребление за';
 
  Excel.Workbooks[1].WorkSheets[1].Range['A9:G9'].Merge;
  Excel.Workbooks[1].WorkSheets[1].Range['A9'].Font.Bold := true;
  Excel.Workbooks[1].WorkSheets[1].Range['A9'] :=
    'Объем потребления указывается в кВт*ч';
 
  Excel.Workbooks[1].WorkSheets[1].Range['A10:A11'].Merge;
  Excel.Workbooks[1].WorkSheets[1].Range['A10'] := 'Число/';
  Excel.Workbooks[1].WorkSheets[1].Range['A11'] := 'время(мск)';
 
  Excel.Workbooks[1].WorkSheets[1].Range['C10:Q10'].Merge;
  Excel.Workbooks[1].WorkSheets[1].Range['H10'] :=
    'Фактическое почасовое потребление';
 
  Excel.Workbooks[1].WorkSheets[1].Range['S10:W11'].Merge;
  Excel.Workbooks[1].WorkSheets[1].Range['T10'] := np;
 
  Excel.Workbooks[1].WorkSheets[1].Range['X10'] := 'кВт*ч';
 
  // Excel.Workbooks[1].WorkSheets[1].Range['A12']:='0-1';
  // Excel.Workbooks[1].WorkSheets[1].Range['A13']:='1-2';
  // Excel.Workbooks[1].WorkSheets[1].Range['A14']:='2-3';
  // Excel.Workbooks[1].WorkSheets[1].Range['A15']:='3-4';
  // Excel.Workbooks[1].WorkSheets[1].Range['A16']:='4-5';
  // Excel.Workbooks[1].WorkSheets[1].Range['A17']:='5-6';
  // Excel.Workbooks[1].WorkSheets[1].Range['A18']:='6-7';
  // Excel.Workbooks[1].WorkSheets[1].Range['A19']:='7-8';
  // Excel.Workbooks[1].WorkSheets[1].Range['A20']:='8-9';
  // Excel.Workbooks[1].WorkSheets[1].Range['A21']:='9-10';
  // Excel.Workbooks[1].WorkSheets[1].Range['A22']:='10-11';
  // Excel.Workbooks[1].WorkSheets[1].Range['A23']:='11-12';
  // Excel.Workbooks[1].WorkSheets[1].Range['A24']:='12-13';
  // Excel.Workbooks[1].WorkSheets[1].Range['A25']:='13-14';
  // Excel.Workbooks[1].WorkSheets[1].Range['A26']:='14-15';
  // Excel.Workbooks[1].WorkSheets[1].Range['A27']:='15-16';
  // Excel.Workbooks[1].WorkSheets[1].Range['A28']:='16-17';
  // Excel.Workbooks[1].WorkSheets[1].Range['A29']:='17-18';
  // Excel.Workbooks[1].WorkSheets[1].Range['A30']:='18-19';
  // Excel.Workbooks[1].WorkSheets[1].Range['A31']:='19-20';
  // Excel.Workbooks[1].WorkSheets[1].Range['A32']:='20-21';
  // Excel.Workbooks[1].WorkSheets[1].Range['A33']:='21-22';
  // Excel.Workbooks[1].WorkSheets[1].Range['A34']:='22-23';
  // Excel.Workbooks[1].WorkSheets[1].Range['A35']:='23-24';
  Excel.Workbooks[1].WorkSheets[1].Range['A36'] := 'Итого:';
  Excel.Workbooks[1].WorkSheets[1].Range['A37'] := 'макс почас значение';
 
  Excel.ActiveWorkbook.SaveAs(s1);
  Excel.Quit;
  ShowMessage(np + ' создан');
  Edit2.Text := '';
  Edit3.Text := '';
  Edit4.Text := '';
  Edit5.Text := '';
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
  Form2.Show;
  Label6.Visible := false;
  Label7.Visible := false;
  Label8.Visible := false;
  Label9.Visible := false;
  Label10.Visible := false;
  Label10.Visible := false;
  Label11.Visible := false;
  Label12.Visible := false;
  Label13.Visible := false;
  Label14.Visible := false;
  Button3.Visible := false;
end;
 
procedure TForm1.Edit1Change(Sender: TObject);
begin
  Es := Edit1.Text;
  s := '.xls';
  fileName := Es + s;
end;
 
procedure TForm1.Edit2Change(Sender: TObject);
begin
  np := Edit2.Text;
  s := '.xls';
  fileName := np + s;
  s1 := 'D:\delphi\Вариант №6\Клиенты\' + fileName;
end;
 
procedure TForm1.Edit3Change(Sender: TObject);
begin
  nd := Edit3.Text;
end;
 
procedure TForm1.Edit4Change(Sender: TObject);
begin
  ps := Edit4.Text;
end;
 
procedure TForm1.Edit5Change(Sender: TObject);
begin
  fp := Edit5.Text;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  // Определение двух каталогов, где мы хотим искать файл
  dir1 := 'D:\No such directory';
  dir2 := 'D:\delphi\No such directory';
  dir3 := 'D:\delphi\Вариант №6\No such directory';
  dir4 := 'D:\delphi\Вариант №6\Клиенты';
end;
 
end.
Миниатюры
Delphi ошибка ole error 800a03ec  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.11.2017, 09:08
Ответы с готовыми решениями:

Ошибка ole error 800a03ec
Производится экспорт данных из набора данных в Excel. Код писали на учебе, там все работало. Дома экспорт не работает, ошибка - ole error...

Как увидеть содержание типа OLE Object с помощью Delphi-Ole Conteiner?
Привет всем, я из Болгарии у меня такой вопрос: я работю с MSAccess и в ней есть Table и Field с содержанием типа OLE Object. как я...

При выгрузке из Excel в Delphi возникает ошибка: ole error 800a03ec
Программа спокойно компилируется, но периодически выскакивает данная ошибка, она может выскочить до подключения к файлу, после считывания...

12
5642 / 4485 / 1088
Регистрация: 29.08.2013
Сообщений: 27,974
Записей в блоге: 3
02.11.2017, 09:13
Цитата Сообщение от Umar Egamberdie Посмотреть сообщение
Как избавиться от этого геморроя?
или показывай код или к телепатам
0
2 / 2 / 3
Регистрация: 20.12.2015
Сообщений: 339
02.11.2017, 09:14  [ТС]
Цитата Сообщение от qwertehok Посмотреть сообщение
или показывай код или к телепатам
код загружен
0
Модератор
 Аватар для D1973
9803 / 6350 / 2447
Регистрация: 21.01.2014
Сообщений: 27,028
Записей в блоге: 3
02.11.2017, 09:28
попробуй поставить с строке 123
Delphi
1
ExlApp.Quit;
а в строке 215
Delphi
1
Excel.Unassigned;
0
2 / 2 / 3
Регистрация: 20.12.2015
Сообщений: 339
02.11.2017, 09:48  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
попробуй поставить с строке 123
Цитата Сообщение от D1973 Посмотреть сообщение
а в строке 215
нет не помогло
0
Модератор
 Аватар для D1973
9803 / 6350 / 2447
Регистрация: 21.01.2014
Сообщений: 27,028
Записей в блоге: 3
02.11.2017, 09:57
Лучший ответ Сообщение было отмечено Umar Egamberdie как решение

Решение

В какой момент ошибка происходит? Пройдись отладчиком, определи, где именно, на какой строке кода.
0
2 / 2 / 3
Регистрация: 20.12.2015
Сообщений: 339
02.11.2017, 10:12  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
В какой момент ошибка происходит? Пройдись отладчиком, определи, где именно, на какой строке кода.
проверил ошибка появляется на 137 строке
C
1
Excel.Workbooks[1].WorkSheets[1].Columns['A1'].ColumnWidth := 8.71;
вот тут
0
Модератор
 Аватар для D1973
9803 / 6350 / 2447
Регистрация: 21.01.2014
Сообщений: 27,028
Записей в блоге: 3
02.11.2017, 10:21
Лучший ответ Сообщение было отмечено Umar Egamberdie как решение

Решение

А1 - это не столбец, это ячейка... Так попробуйте:
Delphi
1
Excel.Workbooks[1].WorkSheets[1].Columns['A:A'].ColumnWidth := 8.71;
1
0 / 0 / 0
Регистрация: 03.12.2019
Сообщений: 7
27.01.2020, 19:22
Здравствуйте!
Столкнулся с аналогичной ошибкой.
Гружу таблицу с 5 колонками и большим (точно >100000) количеством строк.
Удалось выяснить, что ошибка возникает в следующем фрагменте:

Delphi
1
2
3
4
5
for i := 1 to maxRowNum do begin
  for j := 1 to maxColNum do begin
    gridToss.Cells[i, j - 1] := wrkSheet.Cells[j, i];
  end;
end;
Если же переписать таким образом

Delphi
1
2
3
4
5
6
7
8
9
for i := 1 to maxRowNum do begin
  for j := 1 to maxColNum do begin
    try
      gridToss.Cells[i, j - 1] := wrkSheet.Cells[j, i];
    except
      ShowMessage('Any shit in cell ' + intToStr(j) + ';' + intToStr(i))
    end;
  end;
end;
То появится сообщение "Any shit in cell 1;16385".
Хотя там точно данные того же типа и той же структуры, что в предыдущих строках.
Почему так может быть?
Спасибо!
0
Житель Земли
 Аватар для DenNik
3003 / 3024 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
28.01.2020, 15:42
Цитата Сообщение от aminodovborisov Посмотреть сообщение
wrkSheet.Cells[j, i];
так нельзя работать с объектом Excel. Ему больно. параметр должен быть строковым
0
 Аватар для mr-Crocodile
3051 / 1670 / 657
Регистрация: 19.03.2019
Сообщений: 5,378
28.01.2020, 16:05
Цитата Сообщение от DenNik Посмотреть сообщение
так нельзя работать с объектом Excel. Ему больно. параметр должен быть строковым
чего это вдруг?
это же не Range

если взять пример от D1973 - Delphi 17 + Excel 2016 HorizontalAlignment
то там в примере так написано:

Delphi
1
2
3
4
5
6
  //Можно задавать номера ячеек и столбцов
  Excel.ActiveSheet.Cells.Item[1, 1].Value := 'Первая ячейка';
 
  Row:=1;
  Col:=3;
  Excel.ActiveSheet.Cells.Item[Row, Col].Value := 'Другая ячейка';
а вообще, конечно, чтобы что-то обсуждать, нужно увидеть полный код, а не предложенный огрызок.
и как получаются maxRowNum и maxColNum
и почему maxColNum больше максимально допустимого числа колонок в MS Excel (если не ошибаюсь, это число 16 384 )
а нет, это переменная i равно 16385, т.е. это строка превышает значение 16 384. Файл не XLS случайно? Там как раз такое ограничение на количество строк было.
0
Житель Земли
 Аватар для DenNik
3003 / 3024 / 390
Регистрация: 26.07.2011
Сообщений: 11,465
Записей в блоге: 1
28.01.2020, 16:30
Цитата Сообщение от mr-Crocodile Посмотреть сообщение
то там в примере так написано:
там еще объект Item

Добавлено через 5 минут
на мой взгляд, проще и в ячейку делать запись через Range
Delphi
1
Excel.Range['b2']:='Привет!';
Добавлено через 13 секунд
НАГЛЯДНЕЕ
0
 Аватар для mr-Crocodile
3051 / 1670 / 657
Регистрация: 19.03.2019
Сообщений: 5,378
28.01.2020, 17:09
Цитата Сообщение от DenNik Посмотреть сообщение
там еще объект Item
он по дефолту идёт, его можно опускать, если не ошибаюсь.

Цитата Сообщение от DenNik Посмотреть сообщение
на мой взгляд, проще и в ячейку делать запись через Range
.Range - это одно.
а .Cells - это другое.

кроме того. у aminodovborisov не вываливается на первой же итерации. цикл доходит до i = 16385 и валится в ошибку. явно не потому, что первые 16384 итераций были заданы числовыми значениями, а потом "вдруг" - Бац, AV так как индексы в методе должны быть строками. Конечно, всё может быть, но, скорее всего, дело в не в этом. А скорее всего, как раз в превышении лимита.

Цитата Сообщение от aminodovborisov Посмотреть сообщение
Delphi
1
gridToss.Cells[i, j - 1] := wrkSheet.Cells[j, i];
а почему индексы переставлены? Это что, такое хитрое транспонирование?
Ну тогда понятное дело, что число раз число столбцов ограничено и меньше, чем допустимое число строк, то и возникает AV при превышении.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.01.2020, 17:09
Помогаю со студенческими работами здесь

Ошибка в ADO: Multi-step OLE-DB generated error. Check all OLE-DB status value, if available.No work was done'
Выполняю хранимую прогу cmd.Execute и получаю ошибку: 'Multi-step OLE-DB generated error. Check all OLE-DB status value, if...

Ошибка Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
Существует скрипт для новостей, я захотел сделать так, чтобы при вводе смайлика, вылетала картинка с рожей и написал следующее: Function...

Ошибка, (дата) Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
Помогите! Есть код: For i = 0 To 3 postData(i) = web2db(postData(i)) Next postData(3) = Replace(postData(3), vbCrLf, ' ...

ASP + DBF, ошибка Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
Проблема! Мож кто сталкивался? Из MSSQL получать надо отчет и выдать его в DBF формате через страничку. Проблема вот в чем, как только идет...

Выходит ошибка Microsoft OLE DB Provider for ODBC Drivers error '80040e14' на INSERT
При выполнении этого фрагмента выходит ошибка Microsoft OLE DB Provider for ODBC Drivers error '80040e14' Microsoft] Syntax error in...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

Новые блоги и статьи
Чем асинхронная логика (схемотехника) лучше тактируемой, как я думаю, что помимо энергоэффективности - ещё и безопасность.
Hrethgir 14.05.2025
Помимо огромного плюса в энергоэффективности, асинхронная логика - тотальный контроль над каждым совершённым тактом, а значит - безусловная безопасность, где безконтрольно не совершится ни одного. . .
Многопоточные приложения на C++
bytestream 14.05.2025
C++ всегда был языком, тесно работающим с железом, и потому особеннно эффективным для многопоточного программирования. Стандарт C++11 произвёл революцию, добавив в язык нативную поддержку потоков,. . .
Stack, Queue и Hashtable в C#
UnmanagedCoder 14.05.2025
Каждый опытный разработчик наверняка сталкивался с ситуацией, когда невинный на первый взгляд List<T> превращался в узкое горлышко всего приложения. Причина проста: универсальность – это прекрасно,. . .
Как использовать OAuth2 со Spring Security в Java
Javaican 14.05.2025
Протокол OAuth2 часто путают с механизмами аутентификации, хотя по сути это протокол авторизации. Представьте, что вместо передачи ключей от всего дома вашему другу, который пришёл полить цветы, вы. . .
Анализ текста на Python с NLTK и Spacy
AI_Generated 14.05.2025
NLTK, старожил в мире обработки естественного языка на Python, содержит богатейшую коллекцию алгоритмов и готовых моделей. Эта библиотека отлично подходит для образовательных целей и. . .
Реализация DI в PHP
Jason-Webb 13.05.2025
Когда я начинал писать свой первый крупный PHP-проект, моя архитектура напоминала запутаный клубок спагетти. Классы создавали другие классы внутри себя, зависимости жостко прописывались в коде, а о. . .
Обработка изображений в реальном времени на C# с OpenCV
stackOverflow 13.05.2025
Объединение библиотеки компьютерного зрения OpenCV с современным языком программирования C# создаёт симбиоз, который открывает доступ к впечатляющему набору возможностей. Ключевое преимущество этого. . .
POCO, ACE, Loki и другие продвинутые C++ библиотеки
NullReferenced 13.05.2025
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .
Паттерны проектирования GoF на C#
UnmanagedCoder 13.05.2025
Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .
Создаем CLI приложение на Python с Prompt Toolkit
py-thonny 13.05.2025
Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru