0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 36

Как загрузить StringGrid по содержимому, выбранного в OpenDialog текстового файла?

15.04.2016, 18:20. Показов 2996. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm8.Button1Click(Sender: TObject);
const m = 10; n = 7;
type BootLine = array [0..n, 0..m] of string[20];
var FileData: TextFile;
var i,j:integer;
begin
  OpenDialog1.Filter := 'Текстовые файлы (*.txt)|*.txt|';
    if OpenDialog1.Execute then
begin
  AssignFile (FileData, OpenDialog1.FileName);
  Reset(FileData);
    for i := 1 to n do
    for j := 0 to m do
begin
  Readln(FileData, BootLine[j, i]);
  StringGrid1.Cells[j,i] := BootLine[j, i];
end;
  CloseFile(FileData);
end
    else Exit
end;
Ссылается на ошибки в 61-62 строках, но я не понимаю в чем проблема,мб я не правильно обращаюсь к двумерному массиву?
dcc32 command line for "Project6.dpr"
[dcc32 Error] Unit8.pas(61): E2029 '(' expected but '[' found
[dcc32 Error] Unit8.pas(62): E2029 '(' expected but '[' found
[dcc32 Fatal Error] Project6.dpr(5): F2063 Could not compile used unit 'Unit8.pas'

Добавлено через 32 минуты
Прошу прощения, ошибки в 15-16 строках, не учел что вырвал процедуру из кода)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.04.2016, 18:20
Ответы с готовыми решениями:

Загрузить данные из файла Excel в StringGrid через OpenDialog
Доброго времени суток! Нужно загрузить данные из Excel файла в StringGrid через OpenDialog. Из StringGrid в Excel получилось...

Как с помощью OpenDialog загрузить имена всех файлов в StringGrid?
Здравствуйте! Подскажите,как с помощью opendialog загрузить имена всех файлов в таблицу и сделать это при щелчке на кнопку.

Загрузить информацию из текстового файла в StringGrid
Проблема в том, что вся информация загружается только в первый столбец. Как сделать так,чтобы загружалось по столбцам? Ниже прилагаю...

19
 Аватар для AHBAR
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,141
15.04.2016, 18:26
deadshot2013, для начала у вас путаница строки/столбцы
Delphi
1
StringGrid1.Cells[j,i] := BootLine[j, i];
Delphi
1
for j := 0 to m do
тогда как
Delphi
1
type BootLine = array [0..n, 0..m] of string[20];
определитесь, она у вас меняется от 0 до n или m все таки?

Добавлено через 1 минуту
у массивов и таблицы Stringgrid наоборот все
если массив a[i,j] то ячейка будет StringGrid1.Cells[j,i]
0
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 36
15.04.2016, 18:45  [ТС]
AHBAR, Не совсем понял где я спутал, у меня есть 7 столбцов и 10 строк. Вы имеете в виду, что в объявлении двумерного массива первыми должны быть столбцы, а потом строки? И так как у меня стринг грид принимает значения, превышающие количество строк/столбцов, то происходит ошибка? Как бы я не менял циклы for или массивы, то происходит она и та же ошибка.
0
 Аватар для AHBAR
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,141
15.04.2016, 18:57
deadshot2013,
Цитата Сообщение от deadshot2013 Посмотреть сообщение
Не совсем понял где я спутал, у меня есть 7 столбцов и 10 строк.
для пример:
Delphi
1
2
3
4
5
6
7
8
// создание массива
Setlength(a,n,n);
randomize;
for i := 0 to n-1 do
for j := 0 to n-1 do begin
    a[i,j] := Random(255);
    StringGrid1.Cells[j,i] := IntToStr(a[i,j]);
    end;
для начала переделайте по такому примеру, это во первых
А во вторых, AssignFile, reset, CloseFile не есть удобный вариант считывания из файла, я бы лучше использовал StringList, тогда массивы могут вообще не понадобиться
0
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 36
15.04.2016, 19:20  [ТС]
AHBAR, к сожалению у меня есть методичка, которой я должен следовать, но в которой ничего не написано)
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm8.Button1Click(Sender: TObject);
var StrList: TStringList;
const m = 10; n = 7;
type BootLine = array [0..m, 0..n] of string[20];
var FileData: TextFile;
    i,j:integer;
begin
  OpenDialog1.Filter := 'Текстовые файлы (*.txt)|*.txt';
    if OpenDialog1.Execute then
begin
  AssignFile (FileData, OpenDialog1.FileName);
  Reset(FileData);
    for i := 1 to n do
    for j := 0 to m do
begin
  Readln(FileData, BootLine[i, j]);
  StringGrid1.Cells[j,i] := BootLine[i, j];
end;
  CloseFile(FileData);
end
    else Exit
end;
Я подправил строки и столбцы, вроде сейчас правильно. Но ошибка та же. Даже если это не лучший способ, он все равно должен работать.
Цитата Сообщение от AHBAR Посмотреть сообщение
для начала переделайте по такому примеру, это во первых
Хм? Мне нужно заполнить его данными типа стринг.
0
 Аватар для AHBAR
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,141
15.04.2016, 19:31
deadshot2013, есть ошибки в коде, массив неправильно объявлен, цикл тоже от 0 начинайте..
0
 Аватар для AHBAR
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,141
15.04.2016, 19:32
deadshot2013,
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const m = 10; n = 7;
var FileData: TextFile;
    BootLine:array [0..m, 0..n] of string[20];
    i,j:integer;
begin
  OpenDialog1.Filter := 'Текстовые файлы (*.txt)|*.txt';
  if not OpenDialog1.Execute then exit;
 
  AssignFile (FileData, OpenDialog1.FileName);
  Reset(FileData);
    for i := 0 to n do
    for j := 0 to m do begin
        Readln(FileData, BootLine[i, j]);
        StringGrid1.Cells[j,i] := BootLine[i, j];
        end;
  CloseFile(FileData);
end;
Вложения
Тип файла: zip grid.zip (228.4 Кб, 24 просмотров)
1
 Аватар для AHBAR
1077 / 488 / 316
Регистрация: 05.04.2013
Сообщений: 2,141
15.04.2016, 19:34
Лучший ответ Сообщение было отмечено deadshot2013 как решение

Решение

deadshot2013, если хотели массив через Type объявлять то нужно было так:
Delphi
1
2
3
4
5
6
//var StrList: TStringList;
const m = 10; n = 7;
TYPE mas = array [0..m, 0..n] of string[20];
var FileData: TextFile;
    BootLine:mas;
    i,j:integer;
1
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 36
15.04.2016, 19:44  [ТС]
AHBAR, Вот текст мой методики
Для использования в 1–й таблице данных о 10 сотрудниках необходимо ввести 70 строк. Чтение из файла происходит построчно. Для данной задачи чтение может быть выполнено следующим образом:
Delphi
1
2
3
4
5
6
7
8
9
AssignFile (fData, 'Data.txt'); 
Reset(fData); 
for i := 1 to n do 
for j := 0 to m do 
begin 
Readln(fData, S[j, i]); 
StringGrid1.Cells[j,i] := S[j, i]; 
end; 
CloseFile(fData);
Получается методчика неправильная? Как тогда объявлять массив, если мой вариант неправилен.. Насколько я понимаю по этой пикче, то первым в объявлении идут строки, потом столбцы.
Миниатюры
Как загрузить StringGrid по содержимому, выбранного в OpenDialog текстового файла?  
0
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 36
15.04.2016, 20:10  [ТС]
AHBAR, я понял в чем ошибка при объявлении массива. В цикле мне нужна единица, чтобы не убрать шапку таблицы, в общем процедура исполняется, но нормально заполняется только 1 строка, дальше творится хаотичный бред. Лень было придумывать имена и фамилии, поэтому менял только номер.
1
Рузаев
Дмитрий
Александрович
12.04.1973
Инженер-проектировщик
18000
Так выглядит это в текстовом файле..
Миниатюры
Как загрузить StringGrid по содержимому, выбранного в OpenDialog текстового файла?  
0
393 / 165 / 32
Регистрация: 10.12.2015
Сообщений: 717
15.04.2016, 20:57
Цитата Сообщение от deadshot2013 Посмотреть сообщение
к сожалению у меня есть методичка, которой я должен следовать, но в которой ничего не написано
Ты пишешь сам, не бойся проявить инициативу. В StringGrid строки и столбцы индексируются наоборот. StrGrd[столбец, строка] := T2DArrayOfStrings[строка, столбец].

Добавлено через 4 минуты
В методичке также используется 1-индексация. Это атавизм, который достался от очень старого паскаля и его строк. Все кроме строк индексируется с нуля.
0
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 36
15.04.2016, 21:18  [ТС]
cyber-satyr, я вообще пишу эти лабы на c#, но в c# нет стринг грида, поэтому некоторые лабы делаю на delphi, если препод позволяет мне писать на другом языке, то в принципе проблем с проявлением инициативы нет. Но как например применять stringlist, я не понимаю это раз и два, уже готовые процедуры у меня просто не работают.
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
procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
 var
   f:          TextFile;
   iTmp, i, k: Integer;
   strTemp:    String;
 begin
   AssignFile(f, FileName);
   Reset(f);
   with StringGrid do
   begin
     // Get number of columns 
    Readln(f, iTmp);
     ColCount := iTmp;
     // Get number of rows 
    Readln(f, iTmp);
     RowCount := iTmp;
     // loop through cells & fill in values 
    for i := 0 to ColCount - 1 do
       for k := 0 to RowCount - 1 do
       begin
         Readln(f, strTemp);
         Cells[i, k] := strTemp;
       end;
   end;
   CloseFile(f);
 end;
Дальше просто обращаюсь к этой процедуре в другой и применяю там opendialog, но при открытии будет ошибка.. Вроде invalid numeric format.
Нашел процедуру со stringlist, но она мне непонятна, здесь только один цикл, да и выполнение ее приводит к черт знает чему)
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
procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
 var
   f:          TextFile;
   iTmp, i, k: Integer;
   strTemp:    String;
 begin
   AssignFile(f, FileName);
   Reset(f);
   with StringGrid do
   begin
     // Get number of columns 
    Readln(f, iTmp);
     ColCount := iTmp;
     // Get number of rows 
    Readln(f, iTmp);
     RowCount := iTmp;
     // loop through cells & fill in values 
    for i := 0 to ColCount - 1 do
       for k := 0 to RowCount - 1 do
       begin
         Readln(f, strTemp);
         Cells[i, k] := strTemp;
       end;
   end;
   CloseFile(f);
 end;
А процедура описанная в методичке, вот я вроде написал ее правильно, соблюдая строки, столбцы
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm8.Button1Click(Sender: TObject);
var StrList: TStringList;
const m = 10; n = 7;
var FileData: TextFile;
    i,j:integer;
    BootLine:array [0..m, 0..n] of string[20];
begin
  OpenDialog1.Filter := 'Текстовые файлы (*.txt)|*.txt';
    if OpenDialog1.Execute then
begin
  AssignFile (FileData, OpenDialog1.FileName);
  Reset(FileData);
    for i := 0 to n do
    for j := 0 to m do
begin
  Readln(FileData, BootLine[j, i]);
  StringGrid1.Cells[i,j] := BootLine[j, i];
end;
  CloseFile(FileData);
end
    else Exit
end;
но все равно она приводит к такому виду stringGrid'a, я не понимаю что я делаю не так)
Миниатюры
Как загрузить StringGrid по содержимому, выбранного в OpenDialog текстового файла?  
0
393 / 165 / 32
Регистрация: 10.12.2015
Сообщений: 717
15.04.2016, 21:44
deadshot2013, так возьми любую книжку, почитай. Там совсем не много.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function Foo(const PathSrcFile: string): TSomeType;
var
  DataFileBuffer: TStringList;
  TmpBuffer: string;
  i: integer;
begin
  try
    DataFileBuffer := TStringList.Create;
  except
    // TODO
  end;
 
  try
    DataFileBuffer.LoadFromFile(PathSrcFile);
    for i := 0 to DataFileBuffer.Cont -1 do
    begin
      TmpBuffer := DataFileBuffer.Strings[i];
      DoStuff(TmpBuffer);
    end;
  finally
    DataFileBuffer.Free;
  end;
end;
0
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 36
15.04.2016, 22:01  [ТС]
cyber-satyr, В вашей функции я вообще ничего не понимаю)
Среда ругается на TSomeType .Cont и DoStuff
0
393 / 165 / 32
Регистрация: 10.12.2015
Сообщений: 717
15.04.2016, 22:20
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function Foo(const PathSrcFile: string): TSomeType; // просто тип, абстрактный, впиши любой нужный
var
  DataFileBuffer: TStringList; // буффер для хранения содержимого файла
  TmpBuffer: string; // временный буффер для хнанения и передачи строки
  i: integer; // счетчик цикла
begin
  try
    DataFileBuffer := TStringList.Create; // создаем объект типа TStringList
  except
    // TODO обработать исключение, выйти из функции
  end;
 
  try
    DataFileBuffer.LoadFromFile(PathSrcFile); // загрузить файл в буффер
    for i := 0 to DataFileBuffer.Cont -1 do
    begin
      TmpBuffer := DataFileBuffer.Strings[i]; // копировать данные во временный буффер
      DoStuff(TmpBuffer); // твоя функция обработки данных
    end;
  finally
    DataFileBuffer.Free; // освобождение занятых ресурсов
  end;
end;
Добавлено через 20 секунд
deadshot2013, не маленький же, разберись

Добавлено через 44 секунды
Цитата Сообщение от deadshot2013 Посмотреть сообщение
Cont
опечатка, писал в броузере. Count.
0
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 36
15.04.2016, 22:46  [ТС]
cyber-satyr, что значит твоя функция обработки данных? та самая функция которую я не могу написать? DoStuff, что это такое..?
Я могу заменить PathSrcFile на название файла или OpenDialog.FileName?
Мне нужно, чтобы 70 строк подряд выводились в stringGrid
1
Рузаев
Дмитрий
Александрович
12.04.1973
Инженер-проектировщик
18000
2
Рузаев
Дмитрий
Александрович
12.04.1973
Инженер-проектировщик
18000
и так до 70-ой строки.
Я пролистал много форумов с похожими вопросами, решения не нашел, так что надеюсь, когда найду оно поможет не только мне)
0
393 / 165 / 32
Регистрация: 10.12.2015
Сообщений: 717
15.04.2016, 22:58
Цитата Сообщение от deadshot2013 Посмотреть сообщение
DoStuff, что это такое..?
Это что-то такое что ты делаешь со строкой, тебе видней что это. Твоя же задача. Напиши реализацию DoStuff самостоятельно.
Цитата Сообщение от deadshot2013 Посмотреть сообщение
Я могу заменить PathSrcFile на название файла или OpenDialog.FileName?
Ты в C# тоже имена аргументов в методах меняешь на константные строки? Короче, я смотрю ты ни бум бум ни в delphi, ни в любом другом языке. Короче я тебе сейчас напишу сам, а то больно читать эти вопросы. 7 стобцов 10 строк так?
0
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 36
15.04.2016, 23:14  [ТС]
cyber-satyr, Я не понимаю твой код, поэтому не могу на него адекватно отвечать, я уже сделал при помощи своей функции, прозрение пришло и я нашел свои ошибки...
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm8.Button1Click(Sender: TObject);
var StrList: TStringList;
const m = 9; n = 6;
var FileData: TextFile;
    i,j:integer;
    BootLine:array [0..m, 0..n] of string[20];
begin
  OpenDialog1.Filter := 'Текстовые файлы (*.txt)|*.txt';
    if OpenDialog1.Execute then
begin
  AssignFile (FileData, OpenDialog1.FileName);
  Reset(FileData);
    for i := 0 to m do
    for j := 0 to n do
begin
  Readln(FileData, BootLine[i, j]);
  StringGrid1.Cells[j,i] := BootLine[i, j];
end;
  CloseFile(FileData);
end
    else Exit
end;
Не учел что массив начинается с нуля, в итоге строка перепрыгивала через одну и получался бред. Но от кода со stringlist не откажусь
Цитата Сообщение от cyber-satyr Посмотреть сообщение
7 стобцов 10 строк так?
и никак иначе)
0
393 / 165 / 32
Регистрация: 10.12.2015
Сообщений: 717
15.04.2016, 23:35
проверяй http://files.d-lan.dp.ua/downl... ecc2245635
1
500 / 356 / 231
Регистрация: 29.03.2015
Сообщений: 675
16.04.2016, 00:14
Запустите программу, нажмите кнопку "Загрузить" и выберите файл "grid.txt".
В методичке написано:
Delphi
1
2
3
4
const m = 10; n = 7;
var FileData: TextFile;
    i,j:integer;
    BootLine:array [0..m, 0..n] of string[20];
Значит строки меняются от 0 до 10, то есть строк 11. Столбцы от 0 до 7, то есть их 8. 11*8=88 строк, а у Вас в файле 70 строк. Поэтому писал:
Delphi
1
2
3
4
5
6
const
m = 10;
n = 7;
var FileData: TextFile;
    i,j:integer;
    BootLine:array [0..m-1, 0..n-1] of string[20];
У меня строки меняются от 0 до 9, то есть строк 10. Столбцы от 0 до 6, то есть их 7. 10*7=70 строк, как у Вас в файле.
В методичке:
Delphi
1
2
3
4
5
6
for i := 0 to n do
    for j := 0 to m do
begin
  Readln(FileData, BootLine[j, i]);
  StringGrid1.Cells[i,j] := BootLine[j, i];
end;
То есть i меняется от 0 до 7 и j меняется от 0 до 10. Сначала считывается первые 10 строк из файла в первую строку StringGrid1, потом вторые 10 строк из файла во вторую строку StringGrid1 и т.д. А в файле строки разбиты на 7 для каждой строки StringGrid1.
А у меня:
Delphi
1
2
3
4
5
6
       for i := 0 to m-1 do
       for j := 0 to n-1 do
       begin
            Readln(FileData, BootLine[i, j]);
            StringGrid1.Cells[j,i] := BootLine[i, j];
       end;
То есть i меняется от 0 до 9 и j меняется от 0 до 6. Сначала считывается первые 7 строк из файла в первую строку StringGrid1, потом вторые 7 строк из файла во вторую строку StringGrid1 и т.д. так как в файле строки разбиты на 7 для каждой строки StringGrid1.
При запуске программы procedure TForm1.FormCreate(Sender: TObject); написал:
Delphi
1
opendialog1.InitialDir:=extractfilepath(application.ExeName);
Устанавливает начальную папку при выборе файла равной папки Вашей программы. То есть при выборе файла Вы окажетесь в папке Вашей программы.
opendialog1.InitialDir - начальная папка при выборе файла. extractfilepath - возвращает из строки папку файла. application.ExeName - имя и папка программы.
Код:
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
unit MainU;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;
 
type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
const
m = 10;
n = 7;
var FileData: TextFile;
    i,j:integer;
    BootLine:array [0..m-1, 0..n-1] of string[20];
begin
  OpenDialog1.Filter := 'Текстовые файлы (*.txt)|*.txt';
  if OpenDialog1.Execute then
  begin
       AssignFile (FileData, OpenDialog1.FileName);
       Reset(FileData);
       for i := 0 to m-1 do
       for j := 0 to n-1 do
       begin
            Readln(FileData, BootLine[i, j]);
            StringGrid1.Cells[j,i] := BootLine[i, j];
       end;
       CloseFile(FileData);
   end
   else Exit
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
opendialog1.InitialDir:=extractfilepath(application.ExeName);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
 
end.
Прилагаю проект на Delphi.
Миниатюры
Как загрузить StringGrid по содержимому, выбранного в OpenDialog текстового файла?  
Вложения
Тип файла: zip Grid4.zip (234.5 Кб, 29 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.04.2016, 00:14
Помогаю со студенческими работами здесь

Как записать данные в StringGrid через OpenDialog из файла?
Доброго времени суток! Как записать данные в StringGrid через OpenDialog из файла? Есть кнопка сохранения с кодом: Перековыривал на...

Сохранить полное имя файла, выбранного в OpenDialog, в текстовый файл
мне нужно сделать так чтоб пользователь смог выбрать каким-то образом файл(типа openDialog),но все что мне нужно это просто сохранить этот...

Как загрузить код из текстового файла?
Как загрузить код из текстого файла?

Как загрузить в edit значение из текстового файла
Допустим есть текстовый файл с 10 строчками,в каждой строчке записано число.Как можно загрузить в 10 едитов по соответствующей...

Как загрузить информацию из текстового файла в DataGridView
подскажите,как при нажатии кнопки перенести данные из текстового файла в datagridview. данные в файле отделяются символом #, столбцы...


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

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

Новые блоги и статьи
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
Микросервис на Python с FastAPI и Docker
ArchitectMsa 23.04.2025
В эпоху облачных вычислений и растущей сложности программных продуктов классическая монолитная архитектура всё чаще уступает место новым подходам. Микросервисная архитектура становится фаворитом. . .
Создаем веб-приложение на Vue.js и Laravel
Reangularity 23.04.2025
Выбор правильного технологического стека определяет успех веб-проекта. Laravel и Vue. js формируют отличную комбинацию для создания современных приложений. Laravel — это PHP-фреймворк с элегантным. . .
Максимальная производительность C#: Span<T> и Memory<T>
stackOverflow 22.04.2025
Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru