قيم مفصولة بفواصل

ملف القيم المفصولة بفواصل (سي إس فّي) هو ملف نصي محدد يستخدم فاصلة لفصل القيم. يعد كل سطر من الملف سجل بيانات. يتكون كل سجل من حقل واحد أو مجموعة حقول مفصولة بفواصل. ويشتق اسم صيغة الملف من استخدام الفاصلة لفصل الحقول. يخزن ملف سي إس فّي عادةً البيانات المجدولة (الأرقام والنصوص) بنص بسيط، وفي هذه الحالة يكون لكل سطر نفس عدد الحقول.

تعتبر صيغة ملف سي إس فّي غير موحدة تمامًا. يعد فصل الحقول بفواصل هو الأساس، ولكن يجب التعامل مع الفواصل في البيانات أو فواصل الأسطر المضمنة بشكل خاص. لا تسمح بعض التطبيقات بهذا المحتوى في حين يحيط بعضها الآخر الحقل بعلامتي تنصيص، ما يخلق مرة أخرى الحاجة إلى الهروب من هذه العلامات إن وجدت في البيانات.

يشير اختصار «سي إس فّي» أيضًا إلى عدة تنسيقات مفصولة بمحددات وثيقة الصلة، تستخدم محددات حقول أخرى مثل الفواصل المنقوطة. وتشمل القيم المفصولة بعلامات جدولة والقيم المفصولة بمسافات. يبسط ضمان ألا يكون المحدد جزءًا من البيانات عملية التحليل النحوي إلى حد كبير.

يكون امتداد الملفات المفصولة بمحددات بديلة csv. غالبًا، رغم عدم استخدام الفاصلة كفاصل حقل. وقد يسبب هذا المصطلح الواسع مشاكل في تبادل البيانات. تحتوي العديد من التطبيقات التي تقبل ملفات سي إس فّي على خيارات لتحديد رمز المحدد ورمز التنصيص. تستخدم غالبًا الفاصلة المنقوطة بدلًا من الفواصل في العديد من المواقع الأوروبية بسبب استخدام الفاصلة كفاصلة عشرية والنقطة، ربما، كرمز تجميع عشري. لذا يُقترح مصطلح القيم المفصولة بالرموز كتعريف أوسع لصيغة الملف هذا.

تبادل البيانات 
تعتبر ملفات سي إس فّي صيغة شائعة لتبادل البيانات تدعمها التطبيقات الاستهلاكية والتجارية والعلمية على نطاق واسع. يعد نقل البيانات المجدولة بين البرامج التي تعمل أصلًا على تنسيقات غير متوافقة (تكون مملوكة أو غير موثقة غالبًا) من أكثر استخدمتها شيوعًا. يتم ذلك دون التقيد بمعيار آر إف سي 4180 (أو أي معيار آخر)، إذ تدعم العديد من البرامج الاختلافات في صيغة سي إس فّي لاستيراد البيانات.

قد يحتاج المستخدم مثلًا إلى نقل المعلومات من برنامج قاعدة بيانات يخزن البيانات بصيغة مملوكة، إلى جدول بيانات يستخدم صيغة مختلفة تمامًا. يمكن لمعظم برامج قواعد البيانات تصدير البيانات بصيغة سي إس فّي وثم يمكن استيراد ملف سي إس فّي المصدّر عن طريق برنامج جداول البيانات.

المواصفات 
يقترح معيار آر إف سي 4180 (معيار طلب التعليقات 4180) مواصفات لصيغة سي إس فّي؛ ولكن، لا تتبع الممارسة الفعلية غالبًا معيار آر إف سي وقد يشير مصطلح «سي إس فّي» إلى أي ملف يحقق ما يلي:

 يعد نص بسيط يستخدم مجموعة رموز مثل أسكي أو مجموعات رموز يونيكود مختلفة (مثل UTF-8) أو EBCDIC أو  Shift JIS
 يتكون من سجلات (عادةً سجل واحد لكل سطر)
 تكون السجلات مقسمة إلى حقول مفصولة بمحددات (تكون عادةً رمز واحدًا محجوزًا كالفاصلة أو الفاصلة المنقوطة أو علامة جدولة؛ وقد يتضمن المحدد أحيانًا مسافات اختيارية)
 يملك كل سجل فيه نفس تسلسل الحقول.

تستخدم عدة أشكال مختلفة، ضمن هذه القيود العامة. لذلك، لا تحدد مواصفات ملف موصوف ببساطة أنه بصيغة «سي إس فّي» تمامًا، دون معلومات إضافية (مثل ما إذا كان يطبق معيار آر إف سي 4180). ونتيجة لذلك، تسمح العديد من التطبيقات التي تدعم ملفات سي إس فّي للمستخدمين بمعاينة الأسطر القليلة الأولى من الملف ثم تحديد رمز (رموز) المحدد وقواعد التنصيص وغيرها. إذا تجاوزت اختلافات ملف سي إس فّي معين نطاق ما يدعمه برنامج استقبال معين، يمكن غالبًا فحص الملف وتحريره يدويًا (أي باستخدام محرر نصوص) أو كتابة نص أو برنامج لإنتاج صيغة مطابقة.

الوظيفة العامة 
يعد تمثيل مجموعات أو تسلسلات السجلات التي يحتوي كل سجل فيها على قائمة متطابقة من الحقول أفضل استخدام لصيغ سي إس فّي. يقابل هذا علاقة واحدة في قاعدة بيانات علائقية، أو بيانات (إن لم تكن حسابات) في جدول بيانات نموذجي.

يعود تاريخ الصيغة إلى الأيام الأولى لحوسبة الأعمال واستخدمت على نطاق واسع لتمرير البيانات بين حواسيب ذات أحجام كلمات داخلية واحتياجات تنسيق البيانات مختلفة وغيرها. لهذا السبب، انتشر استخدام ملفات سي إس فّي على جميع منصات الحواسيب.

يعتبر ملف سي إس فّي ملف نصي محدد يستخدم فاصلة لفصل القيم (تسمح العديد من تطبيقات استيراد/تصدير ملفات سي إس فّي باستخدام فواصل أخرى؛ فمثلًا، يتسبب استخدام صف «^=Sep» كأول صف في ملف سي إس فّي في فتح إكسل الملف متوقعًا أن تكون علامة الإقحام «^» هي الفاصل بدلًا من الفاصلة «،»). قد تحظر تطبيقات سي إس فّي البسيطة قيم الحقول التي تحتوي على فاصلة أو رموز خاصة أخرى مثل الأسطر الجديدة. في حين تسمح تطبيقات سي إس فّي الأكثر تعقيدًا بها، وتتطلب غالبًا وضع رمزي " (علامتا تنصيص مزدوجتين) حول القيم التي تحتوي على رموز محجوزة (مثل الفواصل أو علامتي التنصيص المزدوجتين أو الأسطر الجديدة الأقل شيوعًا). ويمكن بعد ذلك تمثيل علامتي التنصيص المزوجتين المضمنتين بزوج متتالي من علامات التنصيص المزدوجة، أو وضع رمز هروب قبل علامتا التنصيص المزدوجتين مثل الشرطة المائلة الخلفية (مثل أداة سايبيس سنترال).

لا تقتصر صيغ سي إس فّي على مجموعة رموز معينة. تعمل بشكل جيد مع مجموعات رموز يونيكود (مثل UTF-8 أو UTF-16) ومع أسكي (رغم أن بعض البرامج المحددة التي تدعم ملفات سي إس فّي قد تملك قيود خاصة بها). تنجح ملفات سي إس فّي عادةً في الترجمة البسيطة من مجموعة رموز إلى أخرى (على عكس جميع صيغ البيانات المملوكة تقريبًا). ولكن، لا توفر صيغ سي إس فّي أي طريقة للإشارة إلى مجموعة الرموز المستخدمة، لذلك يجب توصيلها بشكل منفصل أو تحديدها عند الطرف المتلقي (إن أمكن).

البرمجيات وحدود الصفوف 
يوجد حد أقصى لعدد الصفوف التي يمكن أن يحتويها ملف سي إس فّي لكل برنامج يتعامل مع ملفات سي إس فّي. فيما يلي قائمة بالبرامج الشائعة وحدودها:

 مايكروسوفت إكسل: لحد 1,048,576 صف
 نمبرز من أبل: لحد 1,000,000 صف
 جداول بيانات غوغل: لحد 5,000,000 خلية (تقاطع الأعمدة والصفوف)
 أوبن أوفيس وليبر أوفيس: لحد 1,048,576 صف
 برامج تحرير النصوص (مثل الدفتر وتيكست إديت وفيم وغيرها): لا يوجد حد للصفوف أو الخلايا

التوحيد المعياري 
يشير الاسم «سي إس فّي» إلى استخدام الفاصلة لفصل حقول البيانات. ولكن، يستخدم مصطلح «سي إس فّي» على نطاق واسع للإشارة إلى مجموعة كبيرة من التنسيقات المختلفة في نواح كثيرة. تسمح بعض التطبيقات أو تتطلب وضع علامات تنصيص مفردة أو مزدوجة حول بعض الحقول أو كلها؛ ويحجز البعض السجل الأول كعنوان يحتوي على قائمة بأسماء الحقول. لا تحدد مجموعة الرموز المستخدمة: إذ تتطلب بعض التطبيقات علامة يونيكود لترتيب البايتات (بي أو إم) لفرض تفسير يونيكود (تتطلب أحيانًا علامة ترتيب البايتات UTF-8).  يمكن الإشارة بدقة أكبر إلى الملفات التي تستخدم رموز الجدولة بدلًا من الفاصلة بـ«تي إس فّي» للقيم المفصولة بعلامات جدولة.

تشمل اختلافات التطبيق الأخرى التعامل مع فواصل الحقول الأكثر شيوعًا (مثل المسافة أو الفاصلة المنقوطة) ورموز السطر الجديد داخل حقول النص. ويعد الأمر الأكثر دقّة هو تفسير السطر الفارغ: إذ يمكن أن يكون نتيجة كتابة سجل ذو حقول صفرية، أو سجل حقل واحد بطول صفري؛ وبالتالي يعد فك تشفيره مبهمًا.

مراجع 

تنسيقات مفتوحة
برمجيات جداول ممتدة
تنسيقات ملف جداول البيانات