当前位置: 首页 > news >正文

INI和CSV文件保存

INI文件

INI文件是一种配置文件格式,通常用于Windows操作系统中的应用程序中。

它是一种文本文件,由多个节和键值对组成,用于存储应用程序的配置信息。

INI文件的特点包括:

  • INI文件是一种文本文件,易于编辑和阅读。

  • INI文件的结构简单,由多个节和键值对组成,易于理解和维护。

  • INI文件支持多层级节,可以方便地组织和管理配置信息。

  • INI文件不支持数据类型,所有的键值对都是字符串类型。

  • INI文件通常用于存储应用程序的配置信息,例如窗口位置、字体大小、数据库连接等。

INI文件是一种简单、易于使用和维护的配置文件格式,适用于存储应用程序的配置信息。

INI文件通常包含多个节(section),每个节包含多个键值对(key-value pair)。

每个键值对由一个键(key)和一个值(value)组成,中间用等号连接。例如:

[Database]
Server=127.0.0.1
Port=3306
Username=root
Password=123456
Database=mydb

 INI文件支持多层级节,可以方便地组织和管理配置信息

[Database]
Server=127.0.0.1
Port=3306
Username=root
Password=123456
Database=mydb[Logging]
Level=INFO
File=/var/log/myapp.log[相机1]
曝光=50
亮度=100

在上面的例子中,INI文件包含了两个节,[Database]和[Logging]。

每个节下面包含了多个键值对,分别描述了数据库连接和日志记录的相关信息。

INI文件不支持数据类型,所有的键值对都是字符串类型。

这意味着在读取INI文件时,需要将字符串转换成对应的数据类型,例如整数、浮点数、布尔值等。

总之,INI文件是一种轻量级的配置文件格式,非常适用于存储应用程序的配置信息。

它的结构简单,易于理解和维护,适用于不需要复杂数据类型和结构的场景

 

using Ini;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
//using Ini;namespace _01_INI文件读写
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private string cameName;private int expos;private int bright;private string Ip;private string FileName;private void button2_Click(object sender, EventArgs e){//获取配置信息 cameName = textBox1.Text;expos = Convert.ToInt32( textBox2.Text);bright = Convert.ToInt32(textBox3.Text);Ip = textBox4.Text;//保存//保存的地址string path =Directory.GetCurrentDirectory()+@"\配置文件";if (!Directory.Exists(path)){Directory.CreateDirectory(path);}//设置配置文件的名称string fileName = path + @"\相机配置文件.ini";FileName = fileName;//调用INIApi中的方法写入Ini.IniAPI.INIWriteValue(fileName, cameName,"曝光",expos.ToString());Ini.IniAPI.INIWriteValue(fileName, cameName, "亮度", bright.ToString());Ini.IniAPI.INIWriteValue(fileName, cameName, "IP", Ip);MessageBox.Show("保存成功");}//读取private void button1_Click(object sender, EventArgs e){expos = IniAPI.GetPrivateProfileInt(textBox1.Text,"曝光",0,FileName);bright = IniAPI.GetPrivateProfileInt(textBox1.Text, "亮度", 0, FileName);Ip=IniAPI.GetPrivateProfileString(textBox1.Text, "Ip", "", FileName);expos += 20;textBox2.Text= expos.ToString();textBox3.Text = bright.ToString();}}
}

 

Csv

CSV文件格式旨在存储表格数据,该数据通常包含行和列。每一行数据代表表格中的一行,每一列代表表格中的一列。CSV文件中每个数据字段之间都使用逗号分隔。每一行以换行符结束。如:

xxxxxxxxxx 姓名,年龄,性别小明,20,男小红,18,女小华,19,女
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace csv
{public class CSVAPI{// 写入csvpublic void SaveData(string data,string result){// Directory.GetCurrentDirectory()  文件夹路径string path = Directory.GetCurrentDirectory() + "\\data";if (!Directory.Exists(path))// 如果不存在这个路径 指的文件夹{Directory.CreateDirectory(path);// 创建该路径}string fileName = $"{path}\\{DateTime.Now.ToString("yyyy-MM-dd")}.csv";// 文件路径if (!File.Exists(fileName))// 如果csv文件不存在{// FileStream 文件流// 参数一:文件操作路径// 参数二:FileMode.Create 如果有则替换 如果没有则新建// 参数三:FileAccess.Write 写入的权限FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);// StreamWriter 写入工具StreamWriter sw = new StreamWriter(fs, Encoding.Default);StringBuilder sb = new StringBuilder();// 定义可变字符串 保存存储的数据sb.Append("时间").Append(",").Append("姓名").Append(",").Append("事件");// 拼接表头sw.WriteLine(sb);// 添加表头sw.Close();// 关闭读取工具sw.Dispose();// 释放资源fs.Close();// 关闭文件流fs.Dispose();// 释放资源/}// 如果csv存在 只需要把此次的数据进行追加写入 不用写入表头using (StreamWriter sw2 = new StreamWriter(fileName, true, Encoding.Default)){StringBuilder sb = new StringBuilder();sb.Append(DateTime.Now.ToString("HH-mm-ss")).Append(",").Append(data).Append(",").Append(result);sw2.Write(sb);}}// 读取csvpublic string Read(){string path = Directory.GetCurrentDirectory() + "\\data";if (!Directory.Exists(path))// 如果不存在路径{Directory.CreateDirectory(path);// 创建该路径}string filename = $"{path}\\{DateTime.Now.ToString("yyyy-MM-dd")}.csv";if (!File.Exists(filename)){return "文件不存在";}StreamReader sr = new StreamReader(filename,Encoding.Default);// 读取工具string s = sr.ReadToEnd();// 读取数据sr.Close();sr.Dispose();return s;}}
}

 

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace csv
{public class CSVAPI{// 写入csvpublic void SaveData(string data,string result){// Directory.GetCurrentDirectory()  文件夹路径string path = Directory.GetCurrentDirectory() + "\\data";if (!Directory.Exists(path))// 如果不存在这个路径 指的文件夹{Directory.CreateDirectory(path);// 创建该路径}string fileName = $"{path}\\{DateTime.Now.ToString("yyyy-MM-dd")}.csv";// 文件路径if (!File.Exists(fileName))// 如果csv文件不存在{// FileStream 文件流// 参数一:文件操作路径// 参数二:FileMode.Create 如果有则替换 如果没有则新建// 参数三:FileAccess.Write 写入的权限FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);// StreamWriter 写入工具StreamWriter sw = new StreamWriter(fs, Encoding.Default);StringBuilder sb = new StringBuilder();// 定义可变字符串 保存存储的数据sb.Append("时间").Append(",").Append("姓名").Append(",").Append("事件");// 拼接表头sw.WriteLine(sb);// 添加表头sw.Close();// 关闭读取工具sw.Dispose();// 释放资源fs.Close();// 关闭文件流fs.Dispose();// 释放资源/}// 如果csv存在 只需要把此次的数据进行追加写入 不用写入表头using (StreamWriter sw2 = new StreamWriter(fileName, true, Encoding.Default)){StringBuilder sb = new StringBuilder();sb.Append(DateTime.Now.ToString("HH-mm-ss")).Append(",").Append(data).Append(",").Append(result);sw2.Write(sb);}}// 读取csvpublic string Read(){string path = Directory.GetCurrentDirectory() + "\\data";if (!Directory.Exists(path))// 如果不存在路径{Directory.CreateDirectory(path);// 创建该路径}string filename = $"{path}\\{DateTime.Now.ToString("yyyy-MM-dd")}.csv";if (!File.Exists(filename)){return "文件不存在";}StreamReader sr = new StreamReader(filename,Encoding.Default);// 读取工具string s = sr.ReadToEnd();// 读取数据sr.Close();sr.Dispose();return s;}}
}

API

应用程序编程接口(英语:Application Programming Interface,简称:API),是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

相关文章:

INI和CSV文件保存

INI文件 INI文件是一种配置文件格式,通常用于Windows操作系统中的应用程序中。 它是一种文本文件,由多个节和键值对组成,用于存储应用程序的配置信息。 INI文件的特点包括: INI文件是一种文本文件,易于编辑和阅读。…...

汽车智能钥匙中PKE低频天线的作用

PKE(Passive Keyless Entry)即被动式无钥匙进入系统,汽车智能钥匙中PKE低频天线在现代汽车的智能功能和安全保障方面发挥着关键作用,以下是其具体作用: 信号交互与身份认证 低频信号接收:当车主靠近车辆时…...

计算机等级考试

一、计算机等级考试——题库 (1)选择题 (2)基本操作题 (3)上网题 (4)文字题 (5)表格题 (6)演示文稿题 二、计算机等级考试——标准评…...

Geotools中获取Shapefile的属性表格字符集编码的一种方法

目录 前言 1、字符集编码的重要性 2、Geotools 在 GIS 开发中的地位 一、GeoTools的字符集知识 1、字符集的作用 2、shapefile中字符集信息 二、GeoTools中获取字符集的方法 1、默认获取 2、从DataStore中获取 3、从CPG文件中获取 4、生产字符获取实践 三、总结 前言…...

HTTP 与 HTTPS 协议:从基础到安全强化

引言 互联网的消息是如何传递的? 是在路由器上不断进行跳转 IP的目的是在寻址 HTTP 协议:互联网的基石 定义 HTTP(英文:HyperText Transfer Protocol,缩写:HTTP),即超文本传输协…...

Scrapy爬虫框架介绍

目录 什么是Scrapy Scrapy核心组件 Scrapy扩展组件 组件交互流程 安装Scrapy Scrapy项目目录结构说明 创建Scrapy项目 创建爬虫 运行爬虫 配置请求头 全局配置请求头 指定爬虫配置请求头 配置管道pipeline 全局配置pipeline 方式一:指定爬虫配置pipe…...

Stable Diffusion模型高清算法模型类详解

Stable Diffusion模型高清算法模型类详细对比表 模型名称核心原理适用场景参数建议显存消耗细节增强度优缺点4x-UltraSharp残差密集块(RDB)结构优化纹理生成真实人像/建筑摄影重绘幅度0.3-0.4,分块尺寸768px★★★★★☆皮肤纹理细腻,但高对比场景易出现…...

软考网络安全口诀

首先,我们来看第一个口诀 “防御为先,安全无小事”。这个口诀强调了网络安全中的防御意识。在软考备考过程中,我们需要深刻理解网络安全不仅仅是技术层面的问题,更是一种全面的防御思维。从网络架构设计到日常运维管理&#xff0…...

Baklib内容中台赋能企业智管

内容中台构建全场景智管 现代企业数字化运营中,全域内容管理能力已成为核心竞争力。通过智能知识引擎驱动的内容中台架构,企业能够实现跨部门、多形态数据的统一归集与动态调度。以某制造企业为例,其利用中台系统将分散在CRM、ERP及内部文档…...

vscode+vue前端开发环境配置

目录 一、安装Vue二、使用vue新建项目 一、安装Vue 在node.js安装好之后, npm config set registry https://registry.npmmirror.com# 安装vue相关工具,webpack用来项目构建、打包、资源整合等。 npm install webpack -g# 安装vue-cli脚手架 npm insta…...

Python项目-基于深度学习的校园人脸识别考勤系统

引言 随着人工智能技术的快速发展,深度学习在计算机视觉领域的应用日益广泛。人脸识别作为其中的一个重要分支,已经在安防、金融、教育等多个领域展现出巨大的应用价值。本文将详细介绍如何使用Python和深度学习技术构建一个校园人脸识别考勤系统&#…...

浅谈C++函数特性

C的函数特性 前言 在C中,函数加入了许多特性,例如:a、函数缺省参数 b、函数重载 c、内联函数 等等……,这里我会和大家详细去探讨这些特性。以及探讨这些特性的一些细节,同时在内联部分,我们还会把C语言的…...

Python----数据分析(Matplotlib三:绘图二:箱图,散点图,饼图,热力图,3D图)

一、箱图 箱图(Box Plot),又称为箱形图、箱线图、盒式图、盒状图或盒须图,是一种用于展示数据分布情况的统计图表 箱图通过显示数据的中位数、上下四分位数(Q1和Q3)、异常值和数据的分布范围,提…...

高性能PHP框架webman爬虫引擎插件,如何爬取数据

文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...

【2025年后端开发终极指南:云原生、AI融合与性能优化实战】

一、2025年后端开发的五大核心趋势 1. 云原生架构的全面普及 云原生(Cloud Native)已经成为企业级应用的核心底座。通过容器化技术(DockerKubernetes)和微服务架构,开发者能够实现应用的快速部署、弹性伸缩和故障自愈…...

健康养生:开启活力人生的钥匙

在这个瞬息万变的时代,人们愈发珍视健康。健康养生,宛如一把神奇的钥匙,为我们打开通往活力人生的大门,全方位呵护身心,提升生活品质。 从饮食层面看,均衡膳食是核心。每餐力求包含碳水化合物、蛋白质、脂…...

vue2+ele-ui实践

前言:真理先于实践,实践发现真理,再实践检验真理 环境:vue2 & element-ui 正片: Select 选择器 简称 下拉框 下拉框完整的使用循环 下拉框 → 点击下拉框 → 展示数据 → 选择数据 → 下拉框显示数据 核心具有…...

三维重建(十五)——多尺度(coarse-to-fine)

文章目录 一、多尺度与图像金字塔:从全局结构到局部细节二、特征提取与匹配2.1 从数据采集的角度2.2 从数据增强的角度2.3 从特征提取的方式三、以多尺度的方式使用特征3.1 特征提取与匹配3.1.1 多尺度特征检测3.1.2 金字塔匹配3.2 深度估计与立体匹配3.2.1 多尺度立体匹配3.2…...

SparkStreaming之04:调优

SparkStreaming调优 一 、要点 4.1 SparkStreaming运行原理 深入理解 4.2 调优策略 4.2.1 调整BlockReceiver的数量 案例演示: object MultiReceiverNetworkWordCount {def main(args: Array[String]) {val sparkConf new SparkConf().setAppName("Networ…...

勿以危小而为之勿以避率而不为

《故事汇之:所见/所闻/所历/所想》:《公园散步与小雨遇记》(二) 就差一点到山顶了,路上碰到一阿姨,她说等会儿要下大雨了,让我不要往上走了,我犹豫了一会儿,还是听劝地返…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

React 第五十五节 Router 中 useAsyncError的使用详解

前言 useAsyncError 是 React Router v6.4 引入的一个钩子&#xff0c;用于处理异步操作&#xff08;如数据加载&#xff09;中的错误。下面我将详细解释其用途并提供代码示例。 一、useAsyncError 用途 处理异步错误&#xff1a;捕获在 loader 或 action 中发生的异步错误替…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

Qt Http Server模块功能及架构

Qt Http Server 是 Qt 6.0 中引入的一个新模块&#xff0c;它提供了一个轻量级的 HTTP 服务器实现&#xff0c;主要用于构建基于 HTTP 的应用程序和服务。 功能介绍&#xff1a; 主要功能 HTTP服务器功能&#xff1a; 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...