Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
ACSquareStore
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 47975ad7
由
LN
编写于
2022-03-21 18:23:46 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
cvs读取bug修改
1 个父辈
cc9dce93
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
168 行增加
和
3 行删除
source/DeviceLibrary/acSquareStore/Square_BoxBean.cs
source/LoadCVSLibrary/CSVReaderBase.cs
source/LoadCVSLibrary/FileEncoding.cs
source/LoadCVSLibrary/LoadCSVLibrary.csproj
source/DeviceLibrary/acSquareStore/Square_BoxBean.cs
查看文件 @
47975ad
...
...
@@ -536,6 +536,7 @@ namespace OnlineStore.DeviceLibrary
}
}
IsIntSlvBlock
=
true
;
Thread
.
Sleep
(
200
);
IOManager
.
IOMove
(
IO_Type
.
Axis_Brake
,
IO_VALUE
.
HIGH
);
return
true
;
}
...
...
source/LoadCVSLibrary/CSVReaderBase.cs
查看文件 @
47975ad
...
...
@@ -74,7 +74,7 @@ namespace OnlineStore.LoadCSVLibrary
{
throw
new
FileNotFoundException
(
"未找到文件:"
+
filePath
);
}
string
[]
lines
=
File
.
ReadAllLines
(
filePath
,
Encoding
.
GetEncoding
(
"gbk"
)
);
string
[]
lines
=
File
Encoding
.
GetFileLines
(
filePath
);
return
lines
;
}
/// <summary>
...
...
@@ -88,7 +88,7 @@ namespace OnlineStore.LoadCSVLibrary
{
File
.
Delete
(
filePath
);
}
File
.
WriteAllLines
(
filePath
,
lines
,
Encoding
.
GetEncoding
(
"gbk"
)
);
File
.
WriteAllLines
(
filePath
,
lines
,
Encoding
.
UTF8
);
//备份保存
try
...
...
@@ -106,7 +106,7 @@ namespace OnlineStore.LoadCSVLibrary
{
File
.
Delete
(
backFile
);
}
File
.
WriteAllLines
(
backFile
,
lines
,
Encoding
.
GetEncoding
(
"gbk"
)
);
File
.
WriteAllLines
(
filePath
,
lines
,
Encoding
.
UTF8
);
}
catch
(
Exception
e
)
{
...
...
source/LoadCVSLibrary/FileEncoding.cs
0 → 100644
查看文件 @
47975ad
using
OnlineStore.Common
;
using
System
;
using
System.Collections.Generic
;
using
System.IO
;
using
System.Linq
;
using
System.Text
;
namespace
OnlineStore.LoadCSVLibrary
{
public
class
FileEncoding
{
public
static
bool
WritteFile
(
string
filePath
,
string
[]
lines
)
{
try
{
//备份保存
try
{
if
(
File
.
Exists
(
filePath
))
{
FileInfo
file
=
new
FileInfo
(
filePath
);
string
date
=
DateTime
.
Now
.
ToString
(
"yyyy-MM-dd"
);
string
targetBackPath
=
@"C:\configBack\" + date + @"
\
";
if
(!
Directory
.
Exists
(
targetBackPath
))
{
Directory
.
CreateDirectory
(
targetBackPath
);
}
string
fileName
=
file
.
Name
;
string
backFile
=
targetBackPath
+
fileName
;
if
(
File
.
Exists
(
backFile
))
{
File
.
Delete
(
backFile
);
}
File
.
Copy
(
filePath
,
backFile
,
true
);
}
}
catch
(
Exception
e
)
{
LogUtil
.
error
(
" WritteFile备份文件 filePath 出错:"
+
e
.
ToString
());
}
if
(
File
.
Exists
(
filePath
))
{
File
.
Delete
(
filePath
);
}
File
.
WriteAllLines
(
filePath
,
lines
,
Encoding
.
UTF8
);
}
catch
(
Exception
ex
)
{
LogUtil
.
error
(
ex
.
ToString
());
return
false
;
}
return
true
;
}
public
static
string
[]
GetFileLines
(
string
filePath
)
{
if
(!
File
.
Exists
(
filePath
))
{
return
new
string
[]
{
};
}
Encoding
encoding
=
Encoding
.
UTF8
;
if
(!
FileEncoding
.
GetType
(
filePath
).
Equals
(
Encoding
.
UTF8
))
{
encoding
=
Encoding
.
GetEncoding
(
"gb2312"
);
}
string
[]
lines
=
File
.
ReadAllLines
(
filePath
,
encoding
);
return
lines
;
}
/// <summary>
/// 给定文件的路径,读取文件的二进制数据,判断文件的编码类型
/// </summary>
/// <param name=“FILE_NAME“>文件路径</param>
/// <returns>文件的编码类型</returns>
public
static
System
.
Text
.
Encoding
GetType
(
string
FILE_NAME
)
{
FileStream
fs
=
new
FileStream
(
FILE_NAME
,
FileMode
.
Open
,
FileAccess
.
Read
);
Encoding
r
=
GetType
(
fs
);
fs
.
Close
();
return
r
;
}
/// <summary>
/// 通过给定的文件流,判断文件的编码类型
/// </summary>
/// <param name=“fs“>文件流</param>
/// <returns>文件的编码类型</returns>
public
static
System
.
Text
.
Encoding
GetType
(
FileStream
fs
)
{
byte
[]
Unicode
=
new
byte
[]
{
0xFF
,
0xFE
,
0x41
};
byte
[]
UnicodeBIG
=
new
byte
[]
{
0xFE
,
0xFF
,
0x00
};
byte
[]
UTF8
=
new
byte
[]
{
0xEF
,
0xBB
,
0xBF
};
//带BOM
Encoding
reVal
=
Encoding
.
Default
;
BinaryReader
r
=
new
BinaryReader
(
fs
,
System
.
Text
.
Encoding
.
Default
);
int
i
;
int
.
TryParse
(
fs
.
Length
.
ToString
(),
out
i
);
byte
[]
ss
=
r
.
ReadBytes
(
i
);
if
(
IsUTF8Bytes
(
ss
)
||
(
ss
[
0
]
==
0xEF
&&
ss
[
1
]
==
0xBB
&&
ss
[
2
]
==
0xBF
))
{
reVal
=
Encoding
.
UTF8
;
}
else
if
(
ss
[
0
]
==
0xFE
&&
ss
[
1
]
==
0xFF
&&
ss
[
2
]
==
0x00
)
{
reVal
=
Encoding
.
BigEndianUnicode
;
}
else
if
(
ss
[
0
]
==
0xFF
&&
ss
[
1
]
==
0xFE
&&
ss
[
2
]
==
0x41
)
{
reVal
=
Encoding
.
Unicode
;
}
r
.
Close
();
return
reVal
;
}
/// <summary>
/// 判断是否是不带 BOM 的 UTF8 格式
/// </summary>
/// <param name=“data“></param>
/// <returns></returns>
private
static
bool
IsUTF8Bytes
(
byte
[]
data
)
{
int
charByteCounter
=
1
;
//计算当前正分析的字符应还有的字节数
byte
curByte
;
//当前分析的字节.
for
(
int
i
=
0
;
i
<
data
.
Length
;
i
++)
{
curByte
=
data
[
i
];
if
(
charByteCounter
==
1
)
{
if
(
curByte
>=
0x80
)
{
//判断当前
while
(((
curByte
<<=
1
)
&
0x80
)
!=
0
)
{
charByteCounter
++;
}
//标记位首位若为非0 则至少以2个1开始 如:110XXXXX...........1111110X
if
(
charByteCounter
==
1
||
charByteCounter
>
6
)
{
return
false
;
}
}
}
else
{
//若是UTF-8 此时第一位必须为1
if
((
curByte
&
0xC0
)
!=
0x80
)
{
return
false
;
}
charByteCounter
--;
}
}
if
(
charByteCounter
>
1
)
{
throw
new
Exception
(
"非预期的byte格式"
);
}
return
true
;
}
}
}
source/LoadCVSLibrary/LoadCSVLibrary.csproj
查看文件 @
47975ad
...
...
@@ -46,6 +46,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="FileEncoding.cs" />
<Compile Include="CSVExection.cs" />
<Compile Include="position\ACSquareSPosition.cs" />
<Compile Include="storeConfig\ConfigItemBase.cs" />
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论