有规律格式化文本文件插入数据库
现有以下文本文件:
*理光(深圳)工业发展有限公司(D15)(位于福田区)
1.厨师1名;男;30岁以下;高中以上学历;中式烹调师中级以上,需备齐身份证/毕业证/流动人口婚育证明原件及复印件1份.经公司体检不合格者将不予录用,不合格者体检费自理.福利及待遇:工作时间8小时/天.5天/周,双休及国家规定之法定假日休息,免费中餐,免费住宿,为员工投养老工伤医疗保险.提供学习机会.
本公司经营范围:设计,生产复印机,传真机,打印机等;
有意者请于11月9日到本大厦二楼面试。
$
*百佳超市(C10)(位于罗湖区)
1.会计文员1名;女;中专以上学历;有1年以上财务工作经验;财会专业,有对帐经验者优先,成熟稳重,能适应较强的工作压力。
2.便衣保安2名;男;高中以上学历;沟通表达能力好,能吃苦耐劳,有一定的稽查及防损经验,为人正直,有同职工作经验优先。
以上职位要求应聘者身体健康,能自行解决食宿,有年薪假及社保等福利。
有意者请于11月9日、11月11日到本大厦二楼面试。
$
*山姆会员店(A14)(位于福田区)
1.防损员1名;25岁以上;大专以上学历;富有敬业精神和团队合作意识,个性稳定,有一定的判断能力和防损意识,两年以上相关经验。
2.干货部、电器部员工10名;男;高中以上学历;良好的沟通表达能力,有相关电器销售经验者优先。
3.果蔬部、冻品部员工10名;男;高中以上学历;良好的顾客服务意识和团队合作意识,2年以上相关工作经验者优先。
4.夜班理货员工3名;男;高中以上学历;能适应通宵班工作良好的顾客服务意识和团队合作意识,2年以上相关工作经验者优先。
有意者请于11月13日到本大厦二楼面试。
公司名称以*开头,每条记录间以$分隔,招聘信息以数字序号开始,需要根据以下数据结构进行入库处理:
HRNewsPaper
------------------
id(主键)
CompanyId(与Company表中id相对应)
PositionName
PositionNumber
Requirement
InfoFrom
UpdateTime
Company
------------------
id(主键)
CompanyName
CompanyInfo
Note
InfoFrom
UpdateTime
以下列出关键代码:
if(this.IsPostBack)
{
string infos = hR_Content.Text.Trim();
string[] arrInfos = infos.Split(new char[]{'$'});
string[] companyName = new string[arrInfos.Length];
StringBuilder sbNote = new StringBuilder();
string[] notes = new string[arrInfos.Length];
//逐条读取企业信息
for(int i = 0; i < arrInfos.Length; i++)
{
string info = arrInfos[i].Trim(new char[]{'/r', '/n'});
string[] arrInfo = info.Split(new char[]{'/n'});
int k = 0;
string[] positionName = new string[arrInfo.Length];
int[] positionNumber = new int[arrInfo.Length];
string[] requirement = new string[arrInfo.Length];
//逐行读取每个企业的招聘信息
for(int j = 0; j < arrInfo.Length; j++)
{
string strLine = arrInfo[j].Trim(new char[]{'/r', '/n'});
//获取公司名称
if(strLine.StartsWith("*"))
{
companyName[i] = strLine.Substring(1);
}
else
{
//获取职位,名额,要求
//strLine = @"1.厨师厨师厨师厨师厨师厨师200名;男;30岁以下;高中以上学历;中式烹调师中级以上,需备齐身份证/毕业证/流动人口婚育证明原件及复印件1份.经公司体检不合格者将不予录用,不合格者体检费自理.";
Regex r = new Regex(@"/d+/.(?<positionName>/D+)(?<positionNumber>/d+)(?<chineseMin>名;)");
Match m = r.Match(strLine);
if(m.Success)
{
positionName[k] = m.Groups["positionName"].Value;
if(m.Groups["positionNumber"].Value != null)
{
positionNumber[k] = int.Parse(m.Groups["positionNumber"].Value);
}
int index = m.Groups["chineseMin"].Index + 2;
requirement[k] = strLine.Substring(index);
k++;
}
else
{
//获取附加説明文字
sbNote.Append(strLine + "<br />");
}
}
notes[i] = sbNote.ToString().Trim("<br />".ToCharArray());
}
sbNote = new StringBuilder();
//入库
string aa="";
if(positionName.Length <= 0) return;
string myConnectString = ConfigurationSettings.AppSettings["ConnString"] ;
SqlConnection myConnection = new SqlConnection(myConnectString);
SqlCommand sqlCmd = myConnection.CreateCommand();
String strSql = "INSERT INTO COMPANY(CompanyName, CompanyInfo, Note, InfoFrom)" +
"VALUES(@CompanyName, @CompanyInfo, @Note, @InfoFromCompany);";
strSql += " Select @@IDENTITY";
sqlCmd.CommandText = strSql;
sqlCmd.CommandType = CommandType.Text;
SqlParameter CompanyName = sqlCmd.Parameters.Add
("@CompanyName", SqlDbType.VarChar, 256);
CompanyName.Value = companyName[i]. Replace("(", "(").Replace(")", ")");
SqlParameter CompanyInfo = sqlCmd.Parameters.Add
("@CompanyInfo", SqlDbType.VarChar, 4000);
CompanyInfo.Value = "";
SqlParameter Note = sqlCmd.Parameters.Add
("@Note", SqlDbType.VarChar, 4000);
Note.Value = notes[i];
SqlParameter InfoFromCompany = sqlCmd.Parameters.Add
("@InfoFromCompany", SqlDbType.Char, 10);
InfoFromCompany.Value = this.infoFrom;
myConnection.Open();
_lastID = int.Parse(sqlCmd.ExecuteScalar().ToString());
//sqlCmd.ExecuteNonQuery();
sqlCmd.Dispose();
for(int m = 0; m < positionName.Length; m++)
{
if(positionName[m] != null)
{
//入库
sqlCmd = myConnection.CreateCommand();
strSql = "INSERT INTO HRNewsPaper(CompanyId, PositionName, PositionNumber, Requirement, InfoFrom)" +
"VALUES(@CompanyId, @PositionName, @PositionNumber, @Requirement, @InfoFromHR)";
sqlCmd.CommandText = strSql;
sqlCmd.CommandType = CommandType.Text;
SqlParameter CompanyId = sqlCmd.Parameters.Add
("@CompanyId", SqlDbType.Int);
CompanyId.Value = this.LastID;
SqlParameter PositionName = sqlCmd.Parameters.Add
("@PositionName", SqlDbType.VarChar, 60);
PositionName.Value = positionName[m];
SqlParameter PositionNumber = sqlCmd.Parameters.Add
("@PositionNumber", SqlDbType.VarChar, 60);
PositionNumber.Value = positionNumber[m];
SqlParameter Requirement = sqlCmd.Parameters.Add
("@Requirement", SqlDbType.VarChar, 4000);
Requirement.Value = requirement[m];
SqlParameter InfoFromHR = sqlCmd.Parameters.Add
("@InfoFromHR", SqlDbType.Char, 10);
InfoFromHR.Value = this.infoFrom;
sqlCmd.ExecuteNonQuery();
sqlCmd.Dispose();
}
}
myConnection.Close();
相关文章:

java使用uploadify上传文件
一、简介Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示;可以上传多个文件;详细的使用方法网上有很多,建议到官网参考,这里仅仅展示其使用的效果;官网:www.uploadi…

微软亚洲研究院成立OpenNetLab,探索以“数据为中心”AI网络研究新范式!
2020年12月18日,微软亚洲研究院宣布联合清华大学、北京大学、南京大学、兰州大学、新加坡国立大学、首尔国立大学等多所亚洲地区高校,成立OpenNetLab开放网络平台联盟。 OpenNetLab官网地址:https://opennetlab.org/ 通过为研究人员提供通用的…

圆角文本框的制作
把border:0px;outline:none;就可以清除边框。然后在外面放一个圆角div,文本框在div内居中的话能够,设置行高和text-align:center。或者也能够在背景图上放文本框。
微软收购 GitHub 两年后,大咖共论开源新生态
头图 | CSDN 下载自视觉中国被微软收购两年的GitHub,现在怎么样了?据《 2020 年度 GitHub Octoverse 报告》显示,GitHub 上开发者数量达到 5600 万,新增 6000 万个存储库以及 19 亿个 contribution。GitHub 预计到 2025 年&#x…

网页中如何获取客户端系统已安装的所有字体?
如何获取系统字体?1.首先在需要获取系统字体的网页<body>后加入以下代码:<DIV style"LEFT: 0px; POSITION: absolute; TOP: 0px"><OBJECT ID"dlgHelper" CLASSID"clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b&q…

Web开发常见的软件架构
Web开发常见的软件架构 一、看需求分析,看产品PRD:Product Requirement Document 二、根据PRD和产品原型建数据库表,注意三范式要求,用工具到处数据库关系图,并快速地理清数据库思路 三、搭建项目架构,常用三层,自动…

thinkphp整合系列之gulp实现前端自动化
这又是一个一次整合终身受益;不止是终身;换个项目同样可以很方便复用;不信你看另一个项目: thinkphp整合系列之gulp实现前端自动化 虽然我等叫php程序猿;但是不可避免的是要跟html打交道的;而且php这么容易…
网上几种常见校验码图片分析
前几天受刺激了,准备把CSDN的校验码图片修改。就上网找了一些参考示例。和分析了一些校验码的功能。不敢独享,整理到一起,跟大家分享。 至于CSDN新的校验码写法,不是这里面的任何一种。也不是网上可以找到的。这个不好公开&#…

语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。...
语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。为了将本人的python培训提高一个层次,本人最近买了很多算法的书.这个书上的代码基本都是c语言实现的,c语言很久没有用了,…
百度飞桨全新升级:重磅推出PaddleHelix平台、开源框架V2.0RC,硬件生态路线图全公开...
12月20日,WAVE SUMMIT2020深度学习开发者峰会在北京举办。本届峰会,百度飞桨带来八大全新发布与升级,有支持前沿技术探索和应用的生物计算平台PaddleHelix螺旋桨,开发更加便捷的飞桨开源框架2.0 RC版,端云协同的AI集成…

Java解压zip文件(文本)压缩包
2019独角兽企业重金招聘Python工程师标准>>> 说明:由于我们的日志收集到指定服务器上,会按天压缩成一个zip格式的压缩包,但是有时候需要对这些日志进行处理,人工解压在处理,显示对于大量的日志处理是不行的…

Asp.Net 动态生成验证码
我们在设计用户登录模块时,经常会用到验证码,可以有效地防止黑客软件的恶意破解,现公开我常用的验证码的源代码,生成效果如图:。使用方法:1、在Web项目中添加一个类,如“CreateImage.cs”&#…

Hyper-v 3.0虚拟化平台群集共享磁盘无法failover的故障
碰到一个hyper-v 3.0虚拟化平台和HP存储的兼容性问题,放出来和大家分享一下。平台:windows server 2012 RTMhyper-v 3.0故障现象:生产虚拟平台宿主机意外重启,且重启后一块存储磁盘变成脱机状态,进一步测试发现宿主机上…
2020年中国AI算力报告发布:超大算法模型挑战之下,公共AI算力基建是关键
随着人工智能算法突飞猛进的发展,越来越多的模型训练需要巨量的算力支撑才能快速有效地实施。目前,如AlphaFold、GPT-3等模型已经逼近人工智能的算力极限,GPT-3的模型尺寸增大到了1750亿,数据量也达到了惊人的45TB。一方面&#x…

Spring中使用Log4j记录日志
以下内容引用自http://wiki.jikexueyuan.com/project/spring/logging-with-log4j.html: 例子: pom.xml: <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"x…

象 DEV-Club 那样的彩色校验码
要读懂这些代码主要是要了解ASP中操作二进制数据的对象ADODB.Stream!本程序主要用的就是Adodb.Stream,如果你有这个基础,就可以进一步添加更多的功能如加入杂点,渐变底色,数字行列错位,笔画短点,…

北斗时钟在国内各行业的应用前景
北斗时钟在国内各行业的应用前景 北斗时钟(GPS标准同步钟,GPS对时设备,北斗时间服务器)以北斗卫星信号作为时间源,同时可选GPS、IRIG-B码、OCX0、铷原子钟、CDMA信号等时钟源,对时精度达20nS。 上海锐呈电气有限公司产品采用表…
寻找长沙“科技之星”,CSDN星城大巡礼
2020年,长沙市委主要领导发出“软件产业再出发”的号召,并颁布了软件三年行动计划。今年5月,CSDN作为专业的IT社区,与长沙高新区签约,将全国总部落户长沙,这一战略决策,让CSDN与长沙的联结进一步…

DevDays2012 开发者日中文版资料下载
DevDays2012开发者日中文版资料已经上传到ADN网站,如果你是ADN会员,可以从下面地址下载:http://adn.autodesk.com/adn/servlet/item?siteID4814862&id21105549 作者:峻祁连邮箱:junqilian163.com 出处:…
对人脑而言,阅读计算机代码和阅读语言有何不同?
作者 | Anne Trafton 翻译 | 火火酱,责编 | 晋兆雨 出品 | AI科技大本营 头图 | 付费下载于视觉中国 神经科学家们发现,人类在解读代码时会激活一个通用的大脑区域网络,但不会激活语言处理中心。 就某些方面而言,学习计算机编程和学习一门新语…

如何在asp.net中动态生成验证码
现在越来越多的网站喜欢搞个验证码出来,而且各个语言基本上都能做到,今天我来一个C#写的! using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Drawing;using System.Web;using System.Web…

http_build_query用法
2019独角兽企业重金招聘Python工程师标准>>> http_build_query (PHP 5) http_build_query -- 生成 url-encoded 之后的请求字符串 描述string http_build_query ( array formdata [, string numeric_prefix] ) 使用给出的关联(或下标)数组生…

《JAVA与模式》之简单工厂模式
在阎宏博士的《JAVA与模式》一书中开头是这样描述简单工厂模式的:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。 那么简单工厂模式是…

ASP.NET MVC上传文件----uploadify的使用
课程设计需要实现上传文件模块,本来ASP.NET是有内置的控件,但是ASP.NET MVC没有,所以就有两种方法:自定义和采用第三方插件。由于时间的关系,故采用第三方插件:uploadify。 uploadify的使用必须下载相应的文件,下载地址…

QQ验证码识别源代码(C#/NET1.1)
using system; namespace qq { /// <summary> /// yzm 的摘要说明。 /// </summary> public class yzm { public yzm(public system.drawing.bitmap pic) { this.bp pic; } /// <summary> /// 将一个int值存入到4个字节的字节数组(从高地址开始…
身限辞退风波,Google AI 掌门人 Jeff Dean 不误折桂 IEEE 冯诺依曼奖
【CSDN 编者按】在 AI 圈,除了平常说的“人工智障”,“机器学习不学习”之类的,就数 Jeff Dean 的段子流传最多最广了。像什么”编译器从来不给Jeff编译警告,而是Jeff警告编译器“、“所有的指针都是指向 Jeff Dean 的”、“Jeff …

Javascript及Jquery获取元素节点以及添加和删除操作
用了javascript和jquery很久,把所有元素节点的操作总结了下,放在博客上作为记录。 Javascript获取元素的主要方式有三种 1、document.getElementById(main):表示从document中查找一个id是main的dom节点。(这个跟$(#main)的作用是一…

PHP版本发展历史
PHP版本发展历史 PHP1 PHP最初是作为一个快速、实用的工具包出现的。1994年,为了在自己的网站上增加一个小巧而实用的访客追踪系统,Rasmus Lerdorf编写了PHP的雏形程序。这是一个用Perl封装的简单工具。由于使用效果并不理想,Rasmus又用C语…
仅剩一周!!CSDN年终大放血!人人有份的大奖你确定不来?
我们的测评大赛自开展一周以来,已经收到了9位同学的优秀作品,我们的礼品数量远超参加的同学数量,所以现在参与的同学人人有大奖!这获奖的概率也太高了吧!!!还不快参与进来!ÿ…

局域网瘫痪 傀儡主机的DDoS***
接到客户求助,最近进行了一次网络“出诊”。这是一个由傀儡主机的DDos***引发的网络故障,案例比较典型,排错过程也颇曲折。笔者就还原其过程,与大家分享。1.网络环境这个客户是一家化工企业,网络规模不大。十多台交换机…