الملفات الثنائية هي الأساس لتخزين ومعالجة البيانات في تطبيقات البرامج المختلفة. إنها تسمح لك بتمثيل المعلومات في شكل مجموعة من البتات ، مما يضمن استخداما أكثر كفاءة للذاكرة ويسرع عملية العمل مع البيانات.
في هذه المقالة ، سوف نلقي نظرة مفصلة على كيفية إنشاء ملف ثنائي في لغة البرمجة سي. سننظر في طرق مختلفة لفتح البيانات وكتابتها وقراءتها من ملف ثنائي ، بالإضافة إلى إظهار أمثلة التعليمات البرمجية لفهم مرئي أكثر للعملية.
قبل البدء في العمل مع الملفات الثنائية ، عليك أن تدرك أن البيانات الموجودة فيها مخزنة في شكل ثنائي ، أي في شكل سلسلة من الأصفار والآحاد. يتطلب هذا نهجا خاصا لكتابة البيانات وقراءتها ، لأن الاستخدام غير السليم يمكن أن يؤدي إلى فقدان المعلومات أو إيقاف تشغيل البرنامج.
أثناء العمل مع الملفات الثنائية ، سيتعين علينا أيضا فهم أنواع البيانات في لغة البرمجة ج ، مثل الأعداد الصحيحة والأرقام الحقيقية والرموز والمؤشرات. ستسمح لنا معرفة هذه الأنواع من البيانات بالعمل بشكل صحيح مع البيانات الموجودة في ملف ثنائي وضمان سلامتها.
من المهم أن تتذكر أن العمل مع الملفات الثنائية يتطلب تحكما أكثر دقة والتحقق من البيانات ، لأن الوصول غير الصحيح إليها يمكن أن يؤدي إلى فقدان أو تلف المعلومات. لذلك ، اتبع الدليل المقترح وادرس بعناية أمثلة التعليمات البرمجية لتجنب الأخطاء.
- الأدوات اللازمة وتركيبات اللغة: ما تحتاج إلى معرفته قبل البدء في العمل
- خطوة بخطوة: دليل مفصل لإنشاء ملف ثنائي في ج
- مثال الاستخدام: كيف يمكنني تطبيق الملف الثنائي الذي تم إنشاؤه
- سؤال وجواب
الأدوات اللازمة وتركيبات اللغة: ما تحتاج إلى معرفته قبل البدء في العمل
قبل البدء في إنشاء ملف ثنائي في ج ، يجب أن تكون على دراية ببعض الأدوات وبنيات اللغة. في هذا القسم ، سنلقي نظرة على أهمها.
مترجم سي
لإنشاء وتجميع برامج ج ، سوف تحتاج إلى مترجم ج. هناك العديد من المجمعين مثل دول مجلس التعاون الخليجي ، رنة ، ومايكروسوفت البصرية سي++. يعتمد اختيار المترجم على النظام الأساسي الذي تعمل عليه. تأكد من تثبيت المترجم المناسب وأنه تم تكوينه بشكل صحيح.
المعرفة الأساسية للغة ج
للعمل مع الملفات الثنائية ، ستحتاج إلى معرفة أساسية بلغة سي. تعرف على المفاهيم الأساسية للغة ، مثل المتغيرات وأنواع البيانات والمصفوفات والمؤشرات ومشغلي الإدخال/الإخراج.
الهياكل والجمعيات
الهياكل والصلات هي الأدوات الرئيسية للعمل مع البيانات في لغة سي. إنها تسمح لك بدمج أنواع مختلفة من البيانات في وحدة واحدة والعمل معها ككل.
ملف الإدخال / الإخراج
للعمل مع الملفات الثنائية ، سوف تحتاج إلى معرفة ملف الإدخال / الإخراج في اللغة ج. يجب أن تكون على دراية بوظائف فتح الملفات وقراءتها وكتابتها وإغلاقها ، مثل فوبين ، فريد ، فوريت ، فكلوس.
عمليات البت
تسمح لك عمليات البت بالعمل مع البتات الفردية في البيانات. ستحتاج إلى معرفة عمليات البت الأساسية مثل و ( & ) ، أو ( | ) ، النفي ( ~ ) ، التحول الأيسر (<>).
تنسيق البيانات
عند العمل مع الملفات الثنائية ، غالبا ما يكون تنسيق البيانات مطلوبا حتى تتم كتابتها وقراءتها بشكل صحيح. يجب أن تعرف كيفية تنسيق البيانات بشكل صحيح باستخدام وظائف الإدخال / الإخراج المنسقة مثل برينتف و سكانف.
هذه هي الأدوات الأساسية ويبني اللغة التي سوف تحتاج إلى إنشاء ملف ثنائي في اللغة ج. استعد لدراسة كل منها وتطبيق المعرفة المكتسبة في الممارسة لتكون جاهزا لبدء العمل مع الملفات الثنائية.
خطوة بخطوة: دليل مفصل لإنشاء ملف ثنائي في ج
مقدمة:
تحتوي الملفات الثنائية على بيانات ممثلة كسلسلة من البايتات ويمكن استخدامها لتخزين أنواع مختلفة من البيانات مثل الأرقام والسلاسل وما إلى ذلك. في هذا الدليل ، سنلقي نظرة على الطريقة الأساسية لإنشاء ملف ثنائي في ج.
الخطوة 1: تمكين ملفات الرأس المطلوبة
:
# تشمل
الخطوة 2: افتح الملف
، مما يعني الكتابة إلى ملف ثنائي (كتابة-ثنائي):
ملف * ملف = مفتوح ("ملف ثنائي.بن " ، "البنك الدولي");
الخطوة 3: كتابة البيانات إلى ملف
التي يتم تمرير مؤشر إلى البيانات ، وحجم عنصر واحد ، وعدد من العناصر ومؤشر إلى الملف:
بيانات كثافة العمليات = 42;
الكتابة (والبيانات ، حجم (البيانات) ، 1 ، ملف);
الخطوة 4: إغلاق الملف
. يتيح لك ذلك تحرير الموارد وتحديث بنية ملف بيانات النظام:
فكلوس (ملف);
الخطوة 5: الانتهاء من البرنامج
:
العودة 0;
مثال كامل:
# تشمل
كثافة العمليات الرئيسية()
{
ملف * ملف = مفتوح ("ملف ثنائي.بن " ، "البنك الدولي");
إذا (ملف == فارغ) {
برينتف ("تعذر فتح الملف
");
عودة 1;
}
بيانات كثافة العمليات = 42;
الكتابة (والبيانات ، حجم (البيانات) ، 1 ، ملف);
فكلوس (ملف);
العودة 0;
}
خاتمة:
في هذا الدليل ، قمنا بتغطية خطوات إنشاء ملف ثنائي في ج. من البدء في فتح ملف إلى كتابة البيانات وإغلاق الملف ، يمكن تكرار هذه الخطوات بسهولة لإنشاء ملف ثنائي بأي بيانات. استخدم هذا الدليل لبدء إنشاء الثنائيات الخاصة بك في ج.
مثال الاستخدام: كيف يمكنني تطبيق الملف الثنائي الذي تم إنشاؤه
1. قراءة وكتابة البيانات
بعد إنشاء ملف ثنائي في ج ، يمكنك استخدامه لقراءة وكتابة البيانات. على سبيل المثال ، يمكنك إنشاء برنامج يقرأ البيانات من ملف ثنائي ويعالجها ويكتب النتيجة مرة أخرى إلى الملف. يمكن أن يكون هذا مفيدا في حالات مثل تخزين ومعالجة كميات كبيرة من البيانات أو تبادل البيانات بين الأنظمة المختلفة.
نموذج التعليمات البرمجية:
# تشمل
# تشمل
شخص الهيكل {
اسم الحرف [50];
كثافة العمليات العمر;
};
كثافة العمليات الرئيسية () {
ملف * ملف;
هيكل شخص شخص;
// فتح الملف الثنائي للكتابة
ملف = فوبين ("الناس.بن " ، "البنك الدولي");
// التحقق مما إذا كان الملف قد تم فتحه
إذا (ملف == فارغ) {
برينتف ("خطأ في فتح الملف
");
خروج (1);
}
// كتابة البيانات إلى
ملف ستركبي(person.name ، "إيفان إيفانوف");
شخص.العمر = 30;
فوريت (&شخص ، سيزوف (شخص البنية) ، 1 ، ملف);
// إغلاق الملف
فكلوس (ملف);
// فتح الملف الثنائي للقراءة
ملف = فوبين ("الناس.بن " ، "رب");
// التحقق مما إذا كان الملف قد تم فتحه
إذا (ملف == فارغ) {
برينتف ("خطأ في فتح الملف
");
خروج (1);
}
// قراءة البيانات من الملف
فريد (والشخص ، حجم (شخص البنية) ، 1 ، ملف);
// إخراج القراءة
بيانات برينتف ("الاسم: ٪ ق
", person.name );
برينتف ("العمر: ٪ د
"،شخص.العمر);
// إغلاق الملف
فكلوس (ملف);
العودة 0;
}
في هذا المثال ، يتم إنشاء بنية شخص تحتوي على حقول الاسم والعمر. ثم يفتح البرنامج ملف " الناس.بن " للكتابة ، يكتب البيانات إلى ملف ، يغلق الملف ، ثم يفتحه مرة أخرى للقراءة ويقرأ البيانات مرة أخرى في بنية الشخص. أخيرا ، يتم عرض البيانات على الشاشة. كما ترى من هذا المثال ، يمكنك استخدام ملف ثنائي لتخزين ومعالجة أنواع مختلفة من البيانات.
2. التخزين المؤقت للبيانات
مثال آخر على استخدام الملفات الثنائية هو التخزين المؤقت للبيانات. يسمح لك التخزين المؤقت بتسريع البرنامج عن طريق حفظ بعض النتائج المحسوبة أو البيانات المستلمة لاستخدامها لاحقا. يمكن استخدام الملفات الثنائية لحفظ بيانات ذاكرة التخزين المؤقت هذه بحيث يمكن استعادتها عند إطلاق البرنامج اللاحق.
نموذج التعليمات البرمجية:
# تشمل
# تشمل
باطلة سافيكاشيداتا (بيانات مزدوجة [] ، حجم إنت) {
ملف * ملف;
// فتح الملف الثنائي للكتابة
ملف = فوبين ("ذاكرة التخزين المؤقت.بن " ، "البنك الدولي");
// التحقق مما إذا كان الملف قد تم فتحه
إذا (ملف == فارغ) {
برينتف ("خطأ في فتح الملف
");
خروج (1);
}
// كتابة البيانات إلى الملف
الكتابة (البيانات ، الحجم (مزدوج) ، الحجم ، الملف);
// إغلاق الملف
فكلوس (ملف);
}
تحميل باطلالبيانات المخزنة مؤقتا (بيانات مزدوجة] ، حجم كثافة العمليات) {
ملف * ملف;
// فتح الملف الثنائي للقراءة
ملف = فوبين ("ذاكرة التخزين المؤقت.بن " ، "رب");
// التحقق مما إذا كان الملف قد تم فتحه
إذا (ملف == فارغ) {
برينتف ("خطأ في فتح الملف
");
خروج (1);
}
// قراءة البيانات من الملف
fread(data, sizeof(double), size, file);
// Закрываем файл
fclose(file);
}
int main() {
double cacheData[5] = {1.4, 2.7, 3.2, 4.5, 5.9};
// Сохраняем кэш-данные в файл
saveCacheData(cacheData, 5);
// Загружаем кэш-данные из файла
loadCacheData(cacheData, 5);
// Выводим загруженные данные
for (int i = 0; i < 5; i++) {
printf("%0.1f ", cacheData[i]);
}
return 0;
}
في هذا المثال ، وظائف سافيكاشيداتا و لوادكاشيداتا حفظ وتحميل بيانات ذاكرة التخزين المؤقت إلى / ب>ملف ثنائي "ذاكرة التخزين المؤقت.بن". بيانات ذاكرة التخزين المؤقت عبارة عن مصفوفة مزدوجة ، وفي هذا المثال ، يتم حفظ مصفوفة من خمسة عناصر واستعادتها. بعد تنزيل البيانات ، يتم عرضها على الشاشة. يوضح هذا المثال كيف يمكن استخدام الملفات الثنائية لحفظ وتحميل بيانات ذاكرة التخزين المؤقت بحيث يمكن استخدامها في المستقبل دون إعادة الحوسبة أو استرداد البيانات.
3. تسلسل الكائنات
يمكن أيضا استخدام الملفات الثنائية لتسلسل الكائنات ، أي تحويل الكائنات إلى دفق من وحدات البايت ، والتي يمكن تخزينها بعد ذلك في ملف. التسلسل يسمح لك لحفظ حالة كائن واستعادته في وقت لاحق. عادة ما تكون الملفات الثنائية واحدة من أكثر التنسيقات كفاءة وصغرا لتخزين البيانات المتسلسلة.
نموذج التعليمات البرمجية:
# تشمل
# تشمل
شخص الهيكل {
اسم الحرف [50];
كثافة العمليات العمر;
};
باطل تسلسل شخص (هيكل شخص شخص ، شار اسم الملف[]) {
ملف * ملف;
// فتح الملف الثنائي للكتابة
ملف = فوبين (اسم الملف، "البنك الدولي");
// التحقق مما إذا كان الملف قد تم فتحه
إذا (ملف == فارغ) {
برينتف ("خطأ في فتح الملف
");
خروج (1);
}
// كتابة البيانات إلى الملف
فوريت (&شخص ، سيزوف (شخص البنية) ، 1 ، ملف);
// إغلاق الملف
فكلوس (ملف);
}
هيكل شخص ديسيرياليزيبرسون (شار اسم الملف[]) {
ملف * ملف;
هيكل شخص شخص;
// فتح الملف الثنائي للقراءة
ملف = فوبين (اسم الملف، "رب");
// التحقق مما إذا كان الملف قد تم فتحه
إذا (ملف == فارغ) {
برينتف ("خطأ في فتح الملف
");
خروج (1);
}
// Читаем данные из файла
fread(&person, sizeof(struct Person), 1, file);
// Закрываем файл
fclose(file);
return person;
}
int main() {
struct Person person;
struct Person loadedPerson;
strcpy(person.name, "Мария Сидорова");
person.age = 25;
// Сериализуем объект Person в файл
serializePerson(person, "person.bin");
// Десериализуем объект Person из файла
loadedPerson = deserializePerson("person.bin");
// Выводим загруженные данные
printf("Имя: %s
", loadedPerson.name);
برينتف ("العمر: ٪ د
"،شخص محمل.العمر);
العودة 0;
}
في هذا المثال ، وظائف سيرياليزيبرسون و ديسيرياليزيبرسون تحويل كائن من نوع الشخص إلى تيار بايت وحفظه في ملف ثنائي "شخص.بن". ثم يقومون بتحميل الكائن من الملف وعرض بياناته على الشاشة. يوضح هذا المثال كيف يمكن تسلسل الكائنات وتخزينها في ملف ثنائي ، ثم استعادتها لاستخدامها في المستقبل.
هذه ليست سوى بعض الأمثلة على استخدام الملفات الثنائية في ج. يمكن استخدام الملفات الثنائية لأغراض مختلفة ، ويعتمد تطبيقها على متطلبات ومهام برنامجك.