• 0

كيف اقوم بكتابة ملف Vcf يحفظ جميع ارقام الهاتف

السوؤال واضح من العنوان اي كيف اقوم ب كتابه سكربت او ملف يقوم بتصدير ملف vcf يحتوي علي ارقام الهواتف جميعا 

ماهي الغه المطلوبه وكيف يتم ذالك 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

تعرضت لمسألة مثل هذه، كان لدي بيانات عدد كبير من العملاء، يمكنك الاكتفاء بالاسم والرقم او الرقم فقط.

قمت بعمل تطبيق بسيط على السي شارب، يقوم فقط بالمرور على هذه البيانات (في حالتي وضعتها في جدول قاعدة بيانات) ومن اجل كل رقم، قمت بتوليد نص، وبالنهاية قمت بكتابة النتيجة إلى ملف contacts.vcf

TempContactsEntities db = new TempContactsEntities();
var contacts = await db.Contacts.ToListAsync();
StringBuilder vcf = new StringBuilder();
List<string> names = new List<string>();
foreach (var item in contacts)
{
    if (names.Contains(item.Name))
        item.Name = item.Name + names.Count(x => x == item.Name);
    if(item.Phone.Length>=8)
    {
        vcf.AppendLine("BEGIN:VCARD");
        vcf.AppendLine("VERSION:2.1");
        vcf.AppendLine($"FN:{item.Name}");
        vcf.AppendLine($"TEL;CELL:{item.Phone.Substring(0,8)}");
        vcf.AppendLine("END:VCARD");
    }
    names.Add(item.Name);
}
File.WriteAllText("contacts.vcf", vcf.ToString());

لست بحاجة للتقيد بلغة السي شارب أو بأي جزء من هذا الكود، باستثناء كود توليد النص، لاحظ من السطر 11 كيف اقوم بتوليد النص ودمجه مع المتغير vcf ليتكون لدي في النهاية نص طويل هو محتوى ملف vcf

if (names.Contains(item.Name))
    item.Name = item.Name + names.Count(x => x == item.Name);

قمت بإضافة هذا الشرط، لانه في بعض الاحيان قد يتكرر لديك نفس الاسم في الملف الاصلي، لذلك قمت بخطوة بسيطة وهي في حال تكرار الاسم نضع بجانب الاسم عدد مرات التكرار، فيصبح لدي مثلا (أحمد، أحمد 1، أحمد 2، أحمد 3) وهكذا.

 

بالتوفيق،،،

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن