اذهب إلى المحتوى

السؤال

Recommended Posts

  • 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) وهكذا.

 

بالتوفيق،،،

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...