帮忙用C#来写一个通讯录,带界面的
要求在这个网盘里,是英文的,直接扔到翻译器里面翻译就好了,还要做简单的UI界面关键是我对于文件流一直不了解,不知道怎么在文件里搜索字符串,删除字符串求大神帮帮忙,搞定了发...
要求在这个网盘里,是英文的,直接扔到翻译器里面翻译就好了,还要做简单的UI界面
关键是我对于文件流一直不了解,不知道怎么在文件里搜索字符串,删除字符串
求大神帮帮忙,搞定了发邮箱441098138@qq.com
http://pan.baidu.com/s/1eQgjRsm
换这个网盘地址http://pan.baidu.com/s/1qWygs5A 展开
关键是我对于文件流一直不了解,不知道怎么在文件里搜索字符串,删除字符串
求大神帮帮忙,搞定了发邮箱441098138@qq.com
http://pan.baidu.com/s/1eQgjRsm
换这个网盘地址http://pan.baidu.com/s/1qWygs5A 展开
展开全部
看了一下需求,不是很复杂,但是因为不能用数据库开发时间会长一点,我可以尝试帮你写一个。
============================================================================
花了半天的时间写了一个,源码在附件中,以下是图片和核心代码:
核心代码:
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);
}
}
}
配置文件需要根据你自己的实际情况来改,另外,排序的功能实在是来不及了,我相信你自己是可以做出来的。花了不少心思,如果觉得对你有帮助,还希望可以采纳。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询