А как сейчас с работой?
А вы приведите ну хотя-бы 10 примеров, где можно было бы использовать структуры в ООП
С удовольствием, после того как вы мне приведете хотя бы 5 примеров использования int, char, double в ООП
Они вроде там тоже совершенно ни к чему, кстати, список можно продолжить...
А может ненадо меня упрякать? Я не люблю сериализовать в JSON и XML, тому есть везкие причины...
А можно полюбопытствовать, почему Вы так не грамотно пишете? В СССР с таким уровнем грамотности окончить школу и поступить в универ уже было не реально, а по рассказам Вы, вроде бы не относитесь к молодому поколению.
С удовольствием, после того как вы мне приведете хотя бы 5 примеров использования int, char, double в ООП
Это базовые типы данных, спомощью которых можно сделать свои типы данных. Допустим у вас голый транслятор, вот вам дали с коробки базовые типы, дали вам возмонжость сделать свой тип данных, а во фреймворке уже замещающие типы данных, и кастомные типы данных. Как вы будете в ООП использовать String если вам дали голый транслятор, и кроме базовых типов вы сделать ничего не в состояние? Вот попробуйте написать свой класс String безиспользования ООП, и безиспользования char и int.
char - https://docs.microsoft.com/ru-ru/dotnet/api/system.char?vi...
double - https://docs.microsoft.com/de-de/dotnet/api/system.math.pi...
int - https://docs.microsoft.com/ru-ru/dotnet/api/system.string....
У меня от споров, и то что нужно всем быстро отвечать сердце начинает болеть.
Совершенно согласен, только давайте тогда не о программировании.
А меня это больше всего и интересует. Мне в другом форуме тоже запрещают писать о программирование и прочее айтишное, потому-что они завидуют мне, и они там про всякую бяку пишут, я им тоже взаимно запрещал писать им бяку, потому-что там болтавня не о чём.. А когда я на их тему общаюсь над мной там все девушки смеются, просто там всякую бяку пишут, аж тошнит читать. Есть там некоторые которые выпивают или от скуки бяку пишут.
А можно полюбопытствовать, почему Вы так не грамотно пишете?
А почему нельзя? Кто вообще можеть запретить писать с ошибками? На бывшей родине казахский государственный язык, в Германии немецкий.
Понятия не имею об чем там шла речь
Ну раз вы понятие не имеет об чём речь, зачем что-то доказываете? И значит вам без разнице что я вам ответил.
но спрошу - почему нет сериализации в Pure C?
Что? Вы про это https://de.wikipedia.org/wiki/PureC? О чём речь? На Turbo C 1.0 попробывал всё сериализуется без проблем.
На Turbo C 1.0 попробывал всё сериализуется без проблем.
------
Правда? А как насчет примерчика?
зачем что-то доказываете?
------
Разве?
Я всего лишь задаю вопросы, ответы на которые могут быть полезны.
Правда для полезности ответ должен все же иметься...
Правда? А как насчет примерчика?
Сначало читаете тут https://ru.wikipedia.org/wiki/Сери�%...
Сериализация (в программировании) — процесс перевода структуры данных в последовательность байтов. Обратной к операции сериализации является операция десериализации (структуризации) — создание структуры данных из битовой последовательности.
Вот скриншот подтверждающий что сделано на Turbo C 1.0:
https://i.ibb.co/rk7SHd5/tc-00-min.jpg
А вот примерчик:
https://i.ibb.co/8Pr7sJC/tc-01-min.jpg
А это результат:
https://i.ibb.co/4mpKpyZ/tc-02-min.jpg
Вот только не надо пожайлуста мне писать, что я ничего не понял, или в Википедии неправду написали, или что вы имели ввиду PureC не Turbo C, а что-то другое.
Разве?
Я вам показал примерчик, теперь вы покажите простой примерчик на JRE 1.1 сериализация в JSON или в XML. У меня на виртуалке как раз установлен JRE 1.1. И пожайлуста не надо отвечать не по теме, и писать что вы мой вопрос не можете понять.
В одну сторону хоть и косо, но сделано.
Ну я же выше писал, не могу быстро отвечать, ведь ещё в других форумах моих ответов ждут, вот переделал, и записалось и прочиталось на Turbo C 1.0:
#include <stdio.h> typedef struct { char data1[80]; int data2; } DATA; int main(int argc, char **argv) { DATA data; FILE *f; memset(data, ' ', sizeof(data)); strcpy(data.data1, "Hello"); data.data2 = 5; f = fopen("demo.bin", "w+b"); fwrite(&data, sizeof(DATA), 1, f); fclose(f); f = fopen("demo.bin", "r+b"); fread(&data, sizeof(DATA), 1, f); printf("data1 = %s, data2 = %d", data.data1, data.data2); return 0; }
Вот результат:
https://i.ibb.co/9tj7z3N/tc-03-min.jpg
Я тут как раз тему придумал, где не нужно напрягаться.
Спасибо, но если вам время жалко то лучше не делайте, лучше займитесь своими проектами, а то вдруг потом обидитесь не дай бог.
и записалось и прочиталось
-----
Да ну?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct {
char data1[80];
int data2;
} DATA1;
typedef struct {
char data1[180];
long data2;
} DATA2;
int main(int argc, char** argv) {
DATA1 data1;
DATA2 data2;
memset(data1, ' ', sizeof(data1));
strcpy(data1.data1, "Hello 1");
data1.data2 = 5;
memset(data2, ' ', sizeof(data1));
strcpy(data2.data1, "Hello 2");
data2.data2 = 66;
FILE* f;
f = fopen("demo.bin", "w+b");
srand(time(NULL));
if(rand(1) == 1)
{
fwrite(&data1, sizeof(DATA1), 1, f);
fwrite(&data2, sizeof(DATA2), 1, f);
}
else
{
fwrite(&data2, sizeof(DATA2), 1, f);
fwrite(&data1, sizeof(DATA1), 1, f);
}
fclose(f);
f = fopen("demo.bin", "r+b");
// ???
fclose(f);
return 0;
}
Да ну?
А зачем 2 структуры разного размера? Структуры должны быть одинаковой длины. Так-как вы хоттите реализовать, это совсем по другому работает. Сначало нужно создать структуру/дескриптор, которая будет описывать позицию, длину и тип данных, а дальше дело техники - malloc и memcpy. А структура должна так выглядеть:
typedef struct { long start; // Начало блока long end; // Конец блока int datatype; // Тип данных } SERIALIZATION_DESCRIPTOR;
А можно ещё сделать заголовок дескриптора:
typedef struct { long count; // количество блоков long startof_first_descriptor; // Где начинается дескриптор long startof_data; // Где начинаются данные } SERIALIZATION_HEADER;
А что, есть языки, в которых уменее читать базу на уровне записей является встроенным?
Есть библиотеки для таких языков. Например сохранить данные в файл эксесса без установленного эксесса на компе. Или считать. Просто для явы я такой библиотеки не знаю.