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

Написать функцию,которая записывает в бинарный файл данные о сканере из приведённой стуктуры

15.12.2019, 21:18. Показов 6319. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужна помощь,решить следующую задачу:
Все необходимые данные для ф-и должны передаваться им в качестве параметров.Использование глобальных переменных в ф-и не допускается.
По ниже указанной структуре нужно написать следующие функции:
1)Написать ф-ю,которая записывает в бинарный файл данные о сканере из приведённой стуктуры.Структура файла:в первых четырёх байтах размещается значение типа long,определяющее колличесво сделанных в файл записей;далее без пропусков размещаются записи о сканерах.
2)Написать ф-ю,которая сортирует записи в описанном выше бинарном файле по наименованию модели сканера.

Привести пример программы,создающей файл с данными о сканерах(данные вводятся с клавиатуры)из не менее восьми записей и осуществляющей его сортировку.


C++
1
2
3
4
5
6
7
8
struct scan_info{
char model[25]; //наименование
int price; //цена
double x_size; //горизонтальный размер области сканирования
double y_size; //вертикальный размер области сканирования
int optr; оптическое разрешение
int grey; //число градаций серого
};
Миниатюры
Написать функцию,которая записывает в бинарный файл данные о сканере из приведённой стуктуры  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.12.2019, 21:18
Ответы с готовыми решениями:

Создать структуру и написать функцию, которая записывает в бинарный файл данные о сканере из структуры
Сама структура имеет вид: struct scan_info{ char model; // наименование модели int price; // цена double x_size; //...

Бинарные файлы. Написать функцию, которая записывает в бинарный файл N случайных вещественных чисел в указанном диапазоне
Добрый день! Подскажите пожалуйста! Генерирую рандомное кол-во вещественных чисел, и записываю их в бинарный файл, после чего читаю...

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

10
0 / 0 / 0
Регистрация: 07.01.2019
Сообщений: 76
15.12.2019, 22:23  [ТС]
Выручайте
Думаю легче будет изменить эту программу,на уже выше упомянутую)
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
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
//#define _CRT_SECURE_NO_WARNINGS
//#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <iostream>
#include <time.h>
using namespace std;
 
struct scan_info
{
    int model;
    int price;
    double x_size;
    double y_size;
    int optr;
    int grey;
}scan;
 
int ShowMenu();
void CreateFile();
void ViewFile();
void Search();
 
int ShowMenu()
{
    char ch = '\0';
 
    puts("1 : Create a file");
    puts("2 : View a file");
    puts("3 : Search");
    puts("4 : Exit");
 
    ch = getch();
 
    return atoi(&ch);
}
 
int main()
{
   while (1)
   {
      switch( ShowMenu() )
      {
         case 1: CreateFile(); break;
         case 2: ViewFile(); break;
         case 3: Search(); break;
         case 4: return 0;
         default:
              break;
      }
   }
}
 
void CreateFile()
{
 
    int n = 0;
 
    FILE *data;
    char* db = "file.dat";
        data = fopen(db, "wb");
    if( data == NULL )
    {
 
       puts("Could not open file for write."); getch();
       return;
    }
 
 
    cout << endl << "Skolko zapisey budem delat? ";
    cin >>n;
        for(int i = 1; i <= n; i++)
          {
            printf("\n Scaner #%d\n", i);
            cout << endl << "Vvedite Model: "; cin >> scan.model;
            cout << endl << "Vvedite Price: "; cin >> scan.price;
            cout << endl << "Vvedite Gorizont: "; cin >> scan.x_size;
            cout << endl << "Vvedite Vertical: "; cin >> scan.y_size;
            cout << endl << "Vvedite Optica: "; cin >> scan.optr;
            cout << endl << "Vvedite Gradaciya: "; cin >> scan.grey;
            fwrite(&scan, sizeof(scan), 1, data);
          }
    fclose(data);
    printf("Data saved. Press any to continue...");
    getch();
}
 
void ViewFile()
{
 
    FILE *data;
    char* db = "file.dat";
        data = fopen(db, "rb");
   if( data == NULL )
   {
      puts("Could not open file for read. Press any to continue..."); getch();
      return;
   }
 
   cout << endl << "\n Model       Price       Gorizont       Vertical       Optica       Gradaciya";
while( 1 )
   {
 
       fread(&scan, sizeof(scan), 1, data);
 
       if( !feof(data))
       {
        cout << endl << "  " << scan.model << "           " << scan.price << "           " << scan.x_size << "              " << scan.y_size << "              " << scan.optr << "            " << scan.grey;
       }
       else
       {
           break;
       }
   }
   fclose(data);
   cout << endl <<"\n\nPress any to continue...";
   getch();
}
 
void Search()
{
 
   int mod;
   FILE *data;
    char* db = "file.dat";
        data = fopen(db, "rb");
   if( data == NULL )
   {
 
      puts("Could not open file for read. Press any to continue...");
      getch();
      return;
   }
 
   cout << endl << "Input Model Scaner: \n"; cin >> mod;
 
 
   cout << endl << "\n Model       Price       Gorizont       Vertical       Optica       Gradaciya";
   while( 1 )
   {
       fread(&scan, sizeof(scan), 1, data);
       if( !feof(data))
       {
            if (scan.model == mod)
            {
                cout << endl << "  " << scan.model << "           " << scan.price << "           " << scan.x_size << "              " << scan.y_size << "              " << scan.optr << "            " << scan.grey;
            }
       }
       else
       {
                break;
       }
   }
   fclose(data);
   cout << endl <<"\n\nSearch completed. Press any to continue...";
   getch();
}
А это задание к этой программе,если облегчит понимание.
Миниатюры
Написать функцию,которая записывает в бинарный файл данные о сканере из приведённой стуктуры  
0
0 / 0 / 0
Регистрация: 07.01.2019
Сообщений: 76
16.12.2019, 11:21  [ТС]
Up.
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,913
16.12.2019, 12:43
Цитата Сообщение от Cyber_Dezz Посмотреть сообщение
в первых четырёх байтах размещается значение типа long
Так long или в 4 байтах? Одновременно никак.
В вашем коде этого вообще нет.
Цитата Сообщение от Cyber_Dezz Посмотреть сообщение
struct scan_info{
char model[25];
Цитата Сообщение от Cyber_Dezz Посмотреть сообщение
struct scan_info{
int model;
Что-то у вас тип поменялся странным образом.
struct scan_info{
...
}scan;
Использование глобальной переменной в качестве временной - плохая идея
printf("\n Scaner #%d\n", i); //убираем оставшиеся нули, переводы строки и прочий мусор
cout << endl << "Vvedite Model: "; cin >> scan.model;
Смешивать Си-шный и плюсовый ввод-вывод тоже плохая идея. Выберите какой-нибудь один.

Добавлено через 1 минуту
Поправил ваш вариант под Си-шный стиль, плюс поправил модель на строковую, плюс поправил форматирование, ну и остальные косяки тоже поправил:
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
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
#ifdef WIN32
  #define _CRT_SECURE_NO_WARNINGS
#endif
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
 
struct scan_info{
  char model[25];
  int price;
  double x_size;
  double y_size;
  int optr;
  int grey;
};
 
int ShowMenu();
void CreateFile();
void ViewFile();
void Search();
 
int ShowMenu(){
  int menunum;
  
  puts("1 : Create a file");
  puts("2 : View a file");
  puts("3 : Search");
  puts("4 : Exit");
  
  scanf("%i", &menunum);
  
  return menunum;
}
 
int main(){
  while (1){
    switch( ShowMenu() ){
      case 1: CreateFile(); break;
      case 2: ViewFile(); break;
      case 3: Search(); break;
      case 4: return 0;
      default:;
    }
  }
}
 
void CreateFile(){
  uint32_t n = 0; //раз уж нужно записать количество сканеров в файл, подстроим размер переменной к требованию.
  FILE *data;
  char db[] = "file.dat"; //компилятор ругается на присвоение к char*. А вот к обычному массиву - нет.
  struct scan_info scan; //локальные и временные переменные должны быть локальными!
  data = fopen(db, "wb");
  if( data == NULL ){
    fprintf(stderr, "Could not open file for write\n"); //для вывода ошибок предназначен stderr
    return;
  }
  
  printf("Number of records: \n");
  scanf("%" SCNu32, &n);
  fwrite(&n, sizeof(n), 1, data); //вот оно количество записей
  
  for(uint32_t i = 0; i < n; i++){
    printf("\n Scaner #%d\n", i+1); 
    fflush(stdin);//убираем оставшиеся нули, переводы строки и прочий мусор
    printf("Model = "); scanf("%24s", scan.model);
    printf("Price = "); scanf("%i", &scan.price);
    printf("X resolution = "); scanf("%lf", &scan.x_size);
    printf("Y resolution = "); scanf("%lf", &scan.y_size);
    printf("Optic resolution = "); scanf("%i", &scan.optr);
    printf("Color resolution = "); scanf("%i", &scan.grey);
 
    fwrite(&scan, sizeof(scan), 1, data);
  }
  fclose(data);
  printf("\n");
}
 
void ViewFile(){
  FILE *data;
  char db[] = "file.dat";
  struct scan_info scan;
  uint32_t n;
  data = fopen(db, "rb");
  if( data == NULL ){
    fprintf(stderr, "Could not open file for write\n");
    return;
  }
  
  fread(&n, sizeof(n), 1, data);
  printf("#\tModel    \tPrice\tHorizont\tVertical\tOpt.res\tCol.res\n");
  for(uint32_t i=0; i<n; i++){
    if(fread(&scan, sizeof(scan), 1, data) < 1){
      fprintf(stderr, "Unexpected end of file\n");
      break;
    }
    printf("%-7" PRIu32 "\t%-15.15s\t%-7i\t%-15.1lf\t%-15.1lf\t%-7i\t%-7i\n", i+1, scan.model, scan.price, scan.x_size, scan.y_size, scan.optr, scan.grey);
  }
  printf("\n");
  fclose(data);
}
 
void Search(){
  char mod[25];
  FILE *data;
  char db[] = "file.dat";
  uint32_t n;
  unsigned int found = 0;
  struct scan_info scan;
  data = fopen(db, "rb");
  if( data == NULL ){
    fprintf(stderr, "Could not open file for write\n");
    return;
  }
  
  fread(&n, sizeof(n), 1, data);
  printf("Model = "); scanf("%24s", mod);
  
  for(uint32_t i=0; i<n; i++){
    if(fread(&scan, sizeof(scan), 1, data) < 1){
      fprintf(stderr, "Unexpected end of file\n");
      break;
    }
    if(strncmp(scan.model, mod, 25)==0){
      found++;
      if(found == 1){
        printf("#\tModel    \tPrice\tHorizont\tVertical\tOpt.res\tCol.res\n");
      }
      printf("%-7" PRIu32 "\t%-15.15s\t%-7i\t%-15.1lf\t%-15.1lf\t%-7i\t%-7i\n", i+1, scan.model, scan.price, scan.x_size, scan.y_size, scan.optr, scan.grey);
    }
  }
  if(found == 0){
    printf("Model not found\n");
  }
  printf("\n");
  fclose(data);
}
2
0 / 0 / 0
Регистрация: 07.01.2019
Сообщений: 76
16.12.2019, 20:15  [ТС]
Большое спасибо за правки,но вы не доконца поняли,что я хотел=)
Мне надо убрать"поиск модели"это впринципе легко,но я не знаю как сделать следующие действия:
нужно сделать подругому ф-ю просмотра файла(нужно чтоб модели выходили отсортированные по имени(по возрастанию).Не могли бы вы помочь ещё с этим?
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Поправил ваш вариант под Си-шный стиль, плюс поправил модель на строковую, плюс поправил форматирование, ну и остальные косяки тоже поправил:

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
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
#ifdef WIN32
  #define _CRT_SECURE_NO_WARNINGS
#endif
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
struct scan_info{
  char model[25];
  int price;
  double x_size;
  double y_size;
  int optr;
  int grey;
};
int ShowMenu();
void CreateFile();
void ViewFile();
void Search();
int ShowMenu(){
  int menunum;
puts("1 : Create a file");
  puts("2 : View a file");
  puts("3 : Search");
  puts("4 : Exit");
scanf("%i", &menunum);
return menunum;
}
int main(){
  while (1){
    switch( ShowMenu() ){
      case 1: CreateFile(); break;
      case 2: ViewFile(); break;
      case 3: Search(); break;
      case 4: return 0;
      default:;
    }
  }
}
void CreateFile(){
  uint32_t n = 0; //раз уж нужно записать количество сканеров в файл, подстроим размер переменной к требованию.
  FILE *data;
  char db[] = "file.dat"; //компилятор ругается на присвоение к char*. А вот к обычному массиву - нет.
  struct scan_info scan; //локальные и временные переменные должны быть локальными!
  data = fopen(db, "wb");
  if( data == NULL ){
    fprintf(stderr, "Could not open file for write\n"); //для вывода ошибок предназначен stderr
    return;
  }
printf("Number of records: \n");
  scanf("%" SCNu32, &n);
  fwrite(&n, sizeof(n), 1, data); //вот оно количество записей
for(uint32_t i = 0; i < n; i++){
    printf("\n Scaner #%d\n", i+1); 
    fflush(stdin);//убираем оставшиеся нули, переводы строки и прочий мусор
    printf("Model = "); scanf("%24s", scan.model);
    printf("Price = "); scanf("%i", &scan.price);
    printf("X resolution = "); scanf("%lf", &scan.x_size);
    printf("Y resolution = "); scanf("%lf", &scan.y_size);
    printf("Optic resolution = "); scanf("%i", &scan.optr);
    printf("Color resolution = "); scanf("%i", &scan.grey);
fwrite(&scan, sizeof(scan), 1, data);
  }
  fclose(data);
  printf("\n");
}
void ViewFile(){
  FILE *data;
  char db[] = "file.dat";
  struct scan_info scan;
  uint32_t n;
  data = fopen(db, "rb");
  if( data == NULL ){
    fprintf(stderr, "Could not open file for write\n");
    return;
  }
fread(&n, sizeof(n), 1, data);
  printf("#\tModel    \tPrice\tHorizont\tVertical\tOpt.res\tCol.res\n");
  for(uint32_t i=0; i<n; i++){
    if(fread(&scan, sizeof(scan), 1, data) < 1){
      fprintf(stderr, "Unexpected end of file\n");
      break;
    }
    printf("%-7" PRIu32 "\t%-15.15s\t%-7i\t%-15.1lf\t%-15.1lf\t%-7i\t%-7i\n", i+1, scan.model, scan.price, scan.x_size, scan.y_size, scan.optr, scan.grey);
  }
  printf("\n");
  fclose(data);
}
void Search(){
  char mod[25];
  FILE *data;
  char db[] = "file.dat";
  uint32_t n;
  unsigned int found = 0;
  struct scan_info scan;
  data = fopen(db, "rb");
  if( data == NULL ){
    fprintf(stderr, "Could not open file for write\n");
    return;
  }
fread(&n, sizeof(n), 1, data);
  printf("Model = "); scanf("%24s", mod);
for(uint32_t i=0; i<n; i++){
    if(fread(&scan, sizeof(scan), 1, data) < 1){
      fprintf(stderr, "Unexpected end of file\n");
      break;
    }
    if(strncmp(scan.model, mod, 25)==0){
      found++;
      if(found == 1){
        printf("#\tModel    \tPrice\tHorizont\tVertical\tOpt.res\tCol.res\n");
      }
      printf("%-7" PRIu32 "\t%-15.15s\t%-7i\t%-15.1lf\t%-15.1lf\t%-7i\t%-7i\n", i+1, scan.model, scan.price, scan.x_size, scan.y_size, scan.optr, scan.grey);
    }
  }
  if(found == 0){
    printf("Model not found\n");
  }
  printf("\n");
  fclose(data);
}
0
0 / 0 / 0
Регистрация: 07.01.2019
Сообщений: 76
16.12.2019, 20:27  [ТС]
Сейчас показывает в порядке введения сканеров в файл,а надо чтобы при открытии показывало наоборот,сортируя по имени начиная с наименьшего.
Миниатюры
Написать функцию,которая записывает в бинарный файл данные о сканере из приведённой стуктуры  
0
0 / 0 / 0
Регистрация: 07.01.2019
Сообщений: 76
16.12.2019, 20:35  [ТС]
Сейчас показывает в порядке введения сканеров в файл,а надо чтобы при открытии показывало наоборот,сортируя по имени начиная с наименьшего.
Миниатюры
Написать функцию,которая записывает в бинарный файл данные о сканере из приведённой стуктуры   Написать функцию,которая записывает в бинарный файл данные о сканере из приведённой стуктуры  
0
0 / 0 / 0
Регистрация: 07.01.2019
Сообщений: 76
16.12.2019, 23:37  [ТС]
Up.
0
0 / 0 / 0
Регистрация: 07.01.2019
Сообщений: 76
17.12.2019, 08:36  [ТС]
Up.
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,913
17.12.2019, 10:32
Лучший ответ Сообщение было отмечено Cyber_Dezz как решение

Решение

Цитата Сообщение от Cyber_Dezz Посмотреть сообщение
нужно сделать подругому ф-ю просмотра файла(нужно чтоб модели выходили отсортированные по имени(по возрастанию).Не могли бы вы помочь ещё с этим?
У вас в файле хранится количество записей (особого смысла в этом нет, поскольку записи одинаковые и их количество можно посчитать из размера файла), следовательно вы можете завести динамический массив, считать в него содержимое файла, потом отсортировать (да хотя бы библиотечной qsort) и вывести в любом порядке.
Если callback функцию для qsort оказалось сложно написать
Ну да, с непривычки можно получить вывих мозга, но на самом деле все просто:
C
1
2
3
int _scanner_sort_func(const void *a, const void *b){
  return strncmp( ((struct scan_info*)a)->model, ((struct scan_info*)b)->model, 25);
}
И именно ее можно передать в qsort примерно так:
C
1
qsort(arr, cnt, sizeof(struct scan_info), _scanner_sort_func);

Писать за вас код целиком я, разумеется, не буду. Если вы самостоятельно написали вариант из 2-го поста и ознакомились с моими исправлениями, проблем это доставить не должно.
Что получилось у меня

Объем кода вывода с сортировкой составил всего 30 строк
Code
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
1 : Create a file
2 : View a file
3 : Search
4 : Out sorted
0 : Exit
2
#       Model           Price   Horizont        Vertical        Opt.res Col.res
1       zzz             100500  100.0           200.0           10      1      
2       TPATATA         42      300.0           400.0           1       10     
3       ZZZ             9000    320.0           200.0           123     321    
4       aaa             0       3.1             2.7             0       0      
5       123             -10     0.0             1000000000.0    -20     -30    
 
1 : Create a file
2 : View a file
3 : Search
4 : Out sorted
0 : Exit
4
#       Model           Price   Horizont        Vertical        Opt.res Col.res
1       123             -10     0.0             1000000000.0    -20     -30    
2       TPATATA         42      300.0           400.0           1       10     
3       ZZZ             9000    320.0           200.0           123     321    
4       aaa             0       3.1             2.7             0       0      
5       zzz             100500  100.0           200.0           10      1
1
0 / 0 / 0
Регистрация: 07.01.2019
Сообщений: 76
17.12.2019, 11:10  [ТС]
Надеюсь доразберусь сам, большое спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.12.2019, 11:10
Помогаю со студенческими работами здесь

Написать программу, которая создает новый текстовый файл и записывает в него следующие данные
5. Написать программу, которая создает новый текстовый файл и записывает в него следующие данные (данные вводятся с клавиатуры): open ...

Написать программу, которая в файл g записывает положительные числа, а файл h - отрицательные.
В файле f записаны целые числа. Написать программу, которая в файл g записывает положительные числа, а файл h - отрицательные.

Написать программу, которая в файл g записывает положительные числа, а файл h-отрицательные
в файле f записаны целые числа.написать программу,которая в файл g записывает положительные числа,а файл h-отрицательные

Написать программу, которая в файл g записывает четные числа, а файл h - нечетные
В файле f записаны целые числа. Написать программу, которая в файл g записывает четные числа, а файл h - нечетные.

Написать программу, которая в файл g записывает четные числа, а в файл h нечетные
В файле f записаны целые числа.Написать программу,которая в файл g записывает четные числа,а в файл h нечетные


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru