帮忙用C#来写一个通讯录,带界面的

要求在这个网盘里,是英文的,直接扔到翻译器里面翻译就好了,还要做简单的UI界面关键是我对于文件流一直不了解,不知道怎么在文件里搜索字符串,删除字符串求大神帮帮忙,搞定了发... 要求在这个网盘里,是英文的,直接扔到翻译器里面翻译就好了,还要做简单的UI界面

关键是我对于文件流一直不了解,不知道怎么在文件里搜索字符串,删除字符串
求大神帮帮忙,搞定了发邮箱441098138@qq.com
http://pan.baidu.com/s/1eQgjRsm
换这个网盘地址http://pan.baidu.com/s/1qWygs5A
展开
 我来答
郏鸿祯C6
2014-05-07 · TA获得超过4549个赞
知道小有建树答主
回答量:1601
采纳率:50%
帮助的人:1202万
展开全部

看了一下需求,不是很复杂,但是因为不能用数据库开发时间会长一点,我可以尝试帮你写一个。

============================================================================

花了半天的时间写了一个,源码在附件中,以下是图片和核心代码:

核心代码:

namespace AddressBook.Utility
{
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using Entities;

    public static class IoHelper
    {
        public static void CreateDirectoryIfNotExists(string directory)
        {
            if (!Directory.Exists(directory))
            {
                Directory.CreateDirectory(directory);
            }
        }

        public static void CreateFileIfNotExists(string fileName)
        {
            if (!File.Exists(fileName))
            {
                File.Create(fileName);
            }
        }

        public static void AppendContact(string fileName, Contact contact)
        {
            File.AppendAllLines(fileName, new[] { GetLine(contact) });
        }

        private static string GetLine(Contact contact)
        {
            return string.Format(
                "{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t",
                contact.Id,
                contact.Name,
                contact.Type,
                contact.ConditionalInfo,
                contact.Birth,
                contact.Phone,
                contact.Email);
        }

        public static IList<Contact> GetContactList(string fileName, string name = null)
        {
            var lines = File.ReadAllLines(fileName);
            var contactList = lines.Select(t => t.Split('\t')).Select(cells => new Contact
                {
                    Id = Guid.Parse(cells[0]),
                    Name = cells[1],
                    Type = (ContactType)Enum.Parse(typeof(ContactType), cells[2]),
                    ConditionalInfo = cells[3],
                    Birth = Convert.ToDateTime(cells[4]),
                    Phone = cells[5],
                    Email = cells[6]
                }).ToList();

            return name == null ? contactList : contactList.Where(c => c.Name.StartsWith(name, StringComparison.InvariantCultureIgnoreCase)).ToList();
        }

        public static IList<Contact> GetContactList(string fileName, DateTime targetDate)
        {
            return GetContactList(fileName).Where(c => 
                c.Birth.Month == targetDate.Month && 
                c.Birth.Day >= targetDate.Day - 5 && 
                c.Birth.Day <= targetDate.Day).ToList();
        }

        public static IList<Contact> GetContactList(string fileName,int month)
        {
            return GetContactList(fileName).Where(c => c.Birth.Month == month).ToList();
        }

        internal static void DeleteContact(string fileName, Contact contact)
        {
            var targetLine = GetLine(contact);
            var lineList = File.ReadAllLines(fileName).ToList();
            lineList.Remove(targetLine);
            File.Delete(fileName);
            using (File.Create(fileName))
            {
            }

            File.AppendAllLines(fileName, lineList);
        }

        internal static void ModifyContact(string fileName, Contact contact)
        {

            var lineList = File.ReadAllLines(fileName).ToList();
            var targetLine = lineList.FirstOrDefault(l => l.Split('\t')[0].Equals(contact.Id.ToString()));

            lineList[lineList.IndexOf(targetLine)] = GetLine(contact);
            File.Delete(fileName);

            using (File.Create(fileName))
            {
            }

            File.AppendAllLines(fileName, lineList);
        }
    }
}

配置文件需要根据你自己的实际情况来改,另外,排序的功能实在是来不及了,我相信你自己是可以做出来的。花了不少心思,如果觉得对你有帮助,还希望可以采纳。

冬天之雪_
2014-05-05 · TA获得超过424个赞
知道小有建树答主
回答量:1304
采纳率:100%
帮助的人:600万
展开全部
用csdn的git,我帮你看看。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式