ComicsViewer英文版 1.42种类:图像浏览大小:1010KB语言:英文 评分:7.5标签:立即下载由于工作中会接触到很多不一样的数据库,像 oracle,access,mssql,mysql,db2 等,比较杂。所以一直想做一个通用的数据查看工具,支持所有些数据库,操作界面统一为 mssql 2005 的界面,如此可以少安装不少推广客户端工具,也无需在不一样的数据库推广客户端工具之间切换来切换去了。先放一个初始的截图,和mssql的操作界面一样,左侧是表、列信息显示区,右上是 sql 语句录入区,右下是结果显示区支持表和字段的自动提示,支持 csv,excel 的导入导出
ps:图中连接的数据库为 IBM DB2 9.5在做数据导入导出功能时,最基本的 csv 文件格式必须要支持吧,当时就想 csv还不简单,无非就是逗号分隔,回车换行的文本文件吗,非常快就写出来了刚开始的 csv 读取public static string[][] read_csv
{var text_array = new Liststring[];
string[] lines = text.Split;foreach
{if )
{string[] fields = line.Split;
text_array.Add;}
}return text_array.ToArray;
}public text){
lines).IsNullOrEmpty)
);text_array.Add;
}text_array.ToArray;
开始所有都好,没遇见那些问题,后来用的多了,问题开始出现了,发现有的 csv的字段中含有逗号,这下完了,遇见逗号就当成另外一个字段了,当然会显示错误,原来当初太轻视 csv 文件了,呵呵,事实上csv 也是有一些应该注意的规范的。
1.假如csv文件字段中有特殊字符,整个字段应该用双引号包起来
特殊字符有三种, 逗号[,] 回车换行[\r\n] 和处于字段开头的双引号[]
比如:字段 a, b,c(b,c 文本中包括逗号) ,d 就应该变成 a,b,c,d有回车换行的也是一样
2.假如 csv字段中有特殊字符,并且字段中含有双引号,则字段中的双引号应该写两次
比如:字段 a, b,caa ,d就应该变成 a,b,caa,d
有了这两个规范,把读取办法重新修改一下就完了,也不复杂修改后的 csv 读取public static string[][] read_csv{
ifreturn null;
var text_array = new Liststring[];var line = new Liststring;
var field = new StringBuilder;//是不是在双引号内
bool in_quata = false;//字段是不是开始
bool field_start = true;for
{char ch = text[i];
if{
//假如已经处于双引号范围内if
{//若是两个引号,则当成一个普通的引号处置
if{
field.Append;i++;
}else
//不然退出引号范围in_quata = false;
}else //双引号范围内的任何字符(除去双引号)都当成普通字符
{field.Append;
}}
else{
switch{
case ',': //新的字段开始line.Add);
field.Remove;field_start = true;
break;case '\'://引号的处置
ifin_quata = true;
elsefield.Append;
break;case '\r': //新的记录行开始
if{
line.Add);field.Remove;
}text_array.Add);
line.Clear;field_start = true;
//在 window 环境下,\r\n一般是成对出现,所以要跳过if
i++;break;
default:field_start = false;
field.Append;break;
}}
}//文件结束
ifline.Add);
iftext_array.Add);
return text_array.ToArray;}
经过修改后,基本上就没遇见那些问题了。TAG标签:csv(1)
转载请说明来源于当下软件园(https://www.gpsdan.com)
本文地址:https://www.gpsdan.com/news/250.html
郑重声明:文章来源于网络作为参考,本站仅用于分享不存储任何下载资源,如果网站中图片和文字侵犯了您的版权,请联系我们处理!邮箱3450399331@qq.com

赣公网安备 36010602000087号
相关文章