قارن بين نسختين من ملف واحد
أداة تقارن ملفين نصيين أو CSV وتُظهر بدقة كل سطر أُضيف أو حُذف أو تغيّر بينهما، بدل مطالبتك بمراجعة كل نسخة سطرًا سطرًا بعينك المجردة. تفيد من يراجع نسختين من عقد، كشف حساب بنكي، أو تصدير بيانات في تاريخين مختلفين تمامًا.
شغّل الأداة مجانًا
تعمل هذه الأداة داخل متصفحك — مجانًا، ولا تُرسل بياناتك إلى أي خادم
متى تحتاج مقارنة لا مراجعة يدوية
عقد أُرسل للتعديل ثم عاد بنسخة جديدة، كشف حساب بنكي بين شهرين، أو ملف عملاء صُدِّر مرتين بفارق أسبوع؛ في كل هذه الحالات تحتاج معرفة ما تغيّر تحديدًا، لا إعادة قراءة الملف كاملًا من الصفر. العين البشرية تفوت فروقًا دقيقة بسهولة، خصوصًا في ملف طويل أو رقم واحد تغيّر وسط مئات الأرقام المتشابهة، بينما مقارنة آلية تكشف كل فرق مهما كان صغيرًا خلال ثوانٍ معدودة.
كيف تُعرَض النتيجة
تخرج الأداة الفروقات مبوَّبة بوضوح: أسطر أُضيفت في النسخة الثانية، أسطر حُذفت منها، وأسطر تغيّر محتواها بين النسختين. لكل ملف CSV، يمكن المقارنة صفًا بصف أو خلية بخلية، فتظهر بدقة العمود الذي تغيّرت قيمته دون التأثر بترتيب الصفوف إن اختلف بين الملفين. النتيجة تقرير واضح يمكن نسخه أو تنزيله، لا مجرد إشارة عامة إلى وجود اختلاف بين الملفين المرفوعين، بل موضع كل فرق بدقة.
الاستخدام من الصفحة مباشرة
ارفع الملفين، واحصل على تقرير الفروقات فورًا مرتبًا سطرًا بعد سطر بلا حاجة لبرنامج خارجي أو معرفة تقنية مسبقة. المعالجة كاملة داخل متصفحك، بلا رفع إلى أي خادم، بلا حدّ للاستخدام وبلا تسجيل، وتعمل من الحاسوب أو الجوال بالطريقة نفسها. مناسبة لمراجعة عقد أو ملف بيانات مرة واحدة أو بانتظام كل فترة زمنية محددة تختارها بنفسك، ودون أي تدريب مسبق على الأداة.
الأتمتة عبر الـAPI
لمن يراقب ملفًا يتغيّر بانتظام — تصدير مخزون يومي، أو قائمة أسعار أسبوعية — تتوفر الأداة عبر الـAPI: يُرسل الملفان معًا وتعود قائمة الفروقات كبيانات منظمة. السعر $0.002 للطلب الواحد حتى 25 MB لكل ملف، فتُكتشف الفروقات تلقائيًا ويمكن ربطها بتنبيه فور حدوث تغيير مهم يستحق المراجعة من فريقك دون انتظار الجولة اليدوية التالية، ودون فوات موعد مهم أو تغيير يمر دون ملاحظة أحد في الفريق.
حالات الاستخدام
مراجعة نسختي عقد قبل التوقيع
يقارن عبدالله المنصوري نسخة العقد الأصلية بالنسخة المعدَّلة العائدة من الطرف الآخر، ليعرف بالضبط أي بند تغيّر قبل التوقيع النهائي.
متابعة تغيّر قائمة أسعار المورد
تقارن شركة الواحة للتجارة المحدودة قائمة أسعار المورد الشهرية بالنسخة السابقة، لتكتشف فورًا أي صنف ارتفع سعره قبل تحديث كتالوجها الخاص.
التحقق من كشف حساب بنكي
تقارن نورة القحطاني كشف حساب الشهر الحالي بالشهر السابق للتأكد من مطابقة الرصيد الافتتاحي ورصد أي معاملة غير متوقعة بينهما.
الأسئلة الشائعة
هل يدعم ملفات CSV بترتيب صفوف مختلف؟
نعم، يمكن اختيار مقارنة صف بصف حسب موضعه، أو مقارنة أذكى تتجاهل اختلاف الترتيب وتطابق الصفوف بمحتواها.
هل الاستخدام من المتصفح مجاني؟
نعم بلا حدّ وبلا تسجيل؛ المدفوع فقط عبر الـAPI بسعر $0.002 للطلب الواحد.
هل يُرسل الملفان لأي خادم عند الاستخدام من الصفحة؟
لا، تجري المقارنة بالكامل داخل متصفحك؛ فقط عبر الـAPI ينتقل الملفان لأن المعالجة تتم من طرفنا حينها.
هل يعمل مع ملفات PDF مباشرة؟
لا، يعمل على نص أو CSV؛ لمقارنة ملفي PDF بصريًا توجد أداة منفصلة لمقارنة PDF.
هل يُظهر الفرق داخل السطر نفسه أم السطر كاملًا فقط؟
يُظهر السطر أو الخلية التي تغيّرت، مع القيمة القديمة والجديدة معًا لمعرفة طبيعة التغيير بدقة.
ما الحد الأقصى لحجم كل ملف؟
25 ميغابايت لكل ملف في الطلب الواحد، وهو كافٍ لعقد طويل أو كشف حساب كامل.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/data/diff \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/diff", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/diff",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/diff", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/diff", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"input": "…"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.diff",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_mb | 25 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |