使用Visual Studio 2022中的Windows窗体应用项目模板,将读出来的shp文件保存为text,然后再把它(此时它的格式是text)读出来
时间: 2023-12-10 16:39:24 浏览: 140
学会用C#文件读取的shp(shapefile格式)文件并在窗口绘制
5星 · 资源好评率100%
可以使用以下代码将shp文件读取为文本,并保存为txt文件:
```c#
// 打开shp文件
string path = "path/to/shp/file.shp";
Shapefile shapefile = new Shapefile(path);
// 将记录转换为文本
string text = "";
foreach (var record in shapefile.Records)
{
// 将记录中的每个字段的值转换为字符串,并用逗号分隔
string recordText = string.Join(",", record.Fields.Select(f => f.Value.ToString()));
// 将记录文本添加到整个文本中
text += recordText + Environment.NewLine;
}
// 保存为txt文件
string outputPath = "path/to/output/file.txt";
File.WriteAllText(outputPath, text);
```
然后可以使用以下代码将保存的txt文件读取回来:
```c#
// 读取txt文件
string text = File.ReadAllText("path/to/output/file.txt");
// 将文本转换为记录
List<Record> records = new List<Record>();
foreach (string line in text.Split(Environment.NewLine))
{
// 将逗号分隔的字段值转换为对象数组
object[] values = line.Split(",");
// 创建一个包含所有字段的记录
Record record = new Record();
for (int i = 0; i < values.Length; i++)
{
record.Fields.Add(new Field(i, values[i]));
}
// 将记录添加到列表中
records.Add(record);
}
// 创建一个新的shapefile并将记录添加到其中
Shapefile newShapefile = new Shapefile(ShapeType.Point);
newShapefile.Records = records;
newShapefile.Save("path/to/new/shp/file.shp");
```
请注意,这些代码只是示例,可能需要根据实际情况进行修改和调整。
阅读全文