C# winform右击导入手机号码
private void 导入手机号ToolStripMenuItem_Click(object sender, EventArgs e)
{
using (OpenFileDialog Openfile = new OpenFileDialog())
{
Openfile.Filter = "文本文件|*.txt";
Openfile.Multiselect = false;
if (Openfile.ShowDialog() == DialogResult.OK)
{
Thread threadfile = new Thread(() => ReadFile(Openfile.FileName));
threadfile.IsBackground = true;
threadfile.Start();
}
}
} private void ReadFile(string filename)
{
txtlog.Invoke(new Action(() =>
{
txtlog.AppendText("开始读取手机号码".SetLog());
}));
var file = File.Open(filename, FileMode.Open);
int num = ;
int goods = ;
int repeat = ;
using (var stream = new StreamReader(file))
{
while (!stream.EndOfStream)
{
lock (lock_send)
{
if (sendlist.Count > )
{
break;
}
}
num++;
string linetemp = stream.ReadLine().Trim();
if (IsTel(linetemp))
{
lock (lock_send)
{
var data = sendlist.Where(m => m.Tel == linetemp).FirstOrDefault();
if (data != null)
{
repeat++;
continue;
}
}
goods++;
SendTel _send = new SendTel();
_send.Tel = linetemp;
_send.sms_status = status.待发送;
_send.send_time = null;
ListViewItem item = new ListViewItem(_send.Tel);
item.SubItems.Add(_send.sms_status.ToString());
item.SubItems.Add(_send.send_time);
item.SubItems.Add("");
listSend.Invoke(new Action(() =>
{
ListViewItem backitem = listSend.Items.Add(item);
dic.Add(_send.Tel, backitem);
}));
lock (lock_send)
{
sendlist.Add(_send);
}
}
}
}
txtlog.Invoke(new Action(() =>
{
string log = string.Format("添加完成!有效数据为:{0},过滤重复数据:{1},总数据:{2}", goods.ToString(), repeat.ToString(), num.ToString());
txtlog.AppendText(log.SetLog());
})); }
/// <summary>
/// 验证手机号是否合法
/// </summary>
/// <param name="tel"></param>
/// <returns></returns>
public static bool IsTel(string tel)
{
try
{
if (string.IsNullOrEmpty(tel) || tel.Length != )
{
return false;
}
return System.Text.RegularExpressions.Regex.IsMatch(tel, @"^[1]+[3,4,5,6,7,8]+\d{9}");
}
catch (Exception ex)
{
return false;
}
}
很久以前写的代码了,读取txt文件,一行一个手机号码,
好像要求txt文本文件必须是utf8格式,否则读取出来会乱码。
C# winform右击导入手机号码的更多相关文章
- C# winform 导出导入Excel/Doc 完整实例教程[网上看到的]
还真没做过winform的导出导入,今天上网百度了一下.结果--- 所以还是我自己写个吧.之前做过web的,半搬半做就OK. 1添加引用:Aspose.Cells.dll(我们就叫工具包吧,可以从网上 ...
- C# WinForm 导出导入Excel/Doc 完整实例教程[使用Aspose.Cells.dll]
[csharp] view plain copy 1.添加引用: Aspose.Cells.dll(我们就叫工具包吧,可以从网上下载.关于它的操作我在“Aspose.Cells操作说明 中文版 下载 ...
- winform 批量导入本地sql文件,批量导入mdb(access)文件到sqlserver
0.数据库连接 private void button1_Click(object sender, EventArgs e) { this.btnUpdate.Enabled = false; #re ...
- winform项目导入数据
一.点击导入按钮,弹出文件选择框 这个方法的使用要引用下面两个命名空间: using System.Windows.Forms;using DevExpress.XtraEditors; privat ...
- winform excel导入--自带office.interop.excel方式
用npoi方式,遇到一个问题,有的excel用加密软件(盖章,只读等)生成的解析不了,所以换成自带的方式,可以解决. 需要引用系统自带Microsoft.office.interop.excel pu ...
- winform excel导入--NPOI方式
项目中要用到excel导入数据,用NPOI方式做了一个demo,记录如下: Form1代码: public Form1() { InitializeComponent(); } private voi ...
- WinForm Excel导入
主要代码如下: 定义一个DataSet 存放Excel读取的数据 /// <summary> /// Excel 表中读取的数据 /// </summary> publi ...
- Winform中导入exicel文件
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); ...
- MySQL excel导入
说明: 1 因在测试发现如果用SQLyog导入数据需要下载excel驱动,因而选择Navicat 2 之前选择excel文件为xlsx 发现Navicat识别不了,因而转存为xls文件,测试OK 1 ...
随机推荐
- VMware的快照和克隆总结
原文:https://www.cnblogs.com/zxz1987/p/6480833.html 多重快照功能简介: 快照的含义:对某一个特定文件系统在某一个特定时间内的一个具有只读属性的镜像.当 ...
- Javascript 中ajax实现前台向后台交互
第一种情况:前台传入字符串参数 后台返回json字符串.或是json数组 代码如下: 前台: $.ajax({ url: "xxx/xxx.action", data: &quo ...
- 设计模式之模板方法模式&&迪米特法则(代码Objective-C展示)
模板方法模式 模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中.模板方法使得子类可以在不改变一个算法的结构即可重定义该算法的某些特定步骤. 比如说,小时候数学老师的随堂检测,都是在黑板 ...
- Sqlserver 2008 error 40出现连接错误的解决方法
说明(2017-5-25 15:00:16): 核心:把端口号改成1433 Sqlserver 2008 error 40出现连接错误的解决方法
- CTF之文件包含的猥琐思路
From: i春秋 百度杯”CTF 一: <?php include "flag.php"; //包含flag.php这个文件 $a = @$_REQUEST['hello' ...
- python read file(f,csv)
import csv def readfile0(): print('test read file') in_file = open('C:\python\demo\LiaoXueFeng\data\ ...
- OAuth2.0 授权的工作原理
作者:Barret李靖链接:https://www.zhihu.com/question/19781476/answer/81020455来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业 ...
- 【Unity】使用AssetDatabase编辑器资源管理
最近参考了各位大神的资源,初步学习了Unity的资源管理模式,包括在编辑器管理(使用AssetDatabase)和在运行时管理(使用Resources和AssetBundle).在此简单总结编辑器模式 ...
- virtualbox 安装 USB 扩展功能
virtualbox USB 扩展包下载 扩展包下载地址: http://download.virtualbox.org/virtualbox/ 选择你的 virtualbox 版本 看版本在 vir ...
- 线程的几种状态转换<转>
线程在一定条件下,状态会发生变化.线程一共有以下几种状态: 1.新建状态(New):新创建了一个线程对象. 2.就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法. ...