C\#DAT 파일 생 성 및 읽 기 동작
많은 프로그램 들 이 설정 을 저장 하기 위해 dat 파일 을 만 듭 니 다.자신 만 이 처리 할 수 있 는 dat 파일 을 만 들 고 읽 고 쓸 수 있 는 클래스 를 만 듭 니 다.이 클래스 를 사용 해 야 처리 할 수 있 는 dat 파일 을 만 들 수 있 습 니 다.
dat 파일 에 데 이 터 를 읽 거나 기록 할 때 도 이 클래스 를 사용 하여 기록 을 읽 을 수 있 습 니 다.
쉽게 말 하면 이 종 류 는 이 dat 파일 을 읽 고 기록 하 는 열 쇠 를 여 는 것 입 니 다!사실 설정 한 파일 접미사 이름 을 저장 하 는 데 는 여러 가지 가 있 습 니 다.
1.읽 기와 쓰기 설정 파일 클래스
/// <summary>
/// 、
/// </summary>
public class EncryptUtilSeal
{
private static byte[] key = new byte[] { 78, 56, 61, 94, 12, 88, 56, 63, 66, 111, 102, 77, 1, 186, 97, 45 };
private static byte[] iv = new byte[] { 36, 34, 42, 122, 242, 87, 2, 90, 59, 117, 123, 63, 72, 171, 130, 61 };
private static IFormatter S_Formatter = null;
static EncryptUtilSeal()
{
S_Formatter = new BinaryFormatter();//
}
/// <summary>
/// Rijndael128
/// </summary>
/// <param name="para"> </param>
/// <param name="filePath"> </param>
/// <returns></returns>
public static bool EncryptObject(object para, string filePath)
{
// .bat .bat ,
using (Stream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None))
{
RijndaelManaged RMCrypto = new RijndaelManaged();
CryptoStream csEncrypt = new CryptoStream(fs, RMCrypto.CreateEncryptor(key, iv), CryptoStreamMode.Write);
S_Formatter.Serialize(csEncrypt, para);// csEncrypt
csEncrypt.Close();
fs.Close();
return true;
}
}
/// <summary>
/// Rijndael128
/// </summary>
/// <param name="filePath"> </param>
/// <returns> </returns>
public static object DecryptObject(string filePath)
{
// .bat
using (Stream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
{
object para;
RijndaelManaged RMCrypto = new RijndaelManaged();
CryptoStream csEncrypt = new CryptoStream(fs, RMCrypto.CreateDecryptor(key, iv), CryptoStreamMode.Read);
para = S_Formatter.Deserialize(csEncrypt); // csEncrypt ;
csEncrypt.Close();
fs.Close();
return para;
}
}
}
호출:
string ConfigFilePath = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "config.dat");
//
Hashtable para = new Hashtable();
para.Add("ZH", tbxZH.Text);
para.Add("MM", pbxMM.Password);
EncryptUtilSeal.EncryptObject(para, ConfigFilePath);
//
Hashtable para = new Hashtable();
object obj = EncryptUtilSeal.DecryptObject(ConfigFilePath);
para = obj as Hashtable;
string ZH = para["ZH"].ToString();
string MM = para["MM"].ToString();
추가 지식:C\#데이터 시트 출력 및.dat 파일 생 성현재 실현 하고 자 하 는 기능 은 출력 매개 변수(예 를 들 어 거리,출력 등)가 특정한 구간 에서 변화 할 때 대응 하 는 전송 손실 데 이 터 를 그린 다음 에 그림 을 그 리 는 것 이다.
출력 된 데 이 터 를 textbox 에 표시 하고.dat 파일 을 만 드 는 것 이 일시 적 으로 실 현 됩 니 다.이렇게 되면 뒤에 gnuplot 를 호출 하여 그림 을 만 들 때 이.dat 파일 만 사용 하면 됩 니 다.
그래서 이 블 로 그 는 C\#로 여러 그룹의 데 이 터 를 만들어 textbox 에 표시 하고 이 데 이 터 를.dat 파일 로 저장 하 는 방법 을 소개 합 니 다.
1.데이터 생 성 및 표시
Hata 모델 에서 도시 의 전송 손실 계산 을 예 로 들 면 발사 주파 수 를 900 MHz 로 고정 시 키 고 기지 국 안테나 높이 30m,이동 대 안테나 높이 1m,전송 거리 범 위 는 1~20km 로 전송 손실 값 을 계산 하 며 출력 에 대응 하 는 데이터 테이블 을 textbox 에 표시 한다.
int f_c = 900; //
int h_te = 30; //
int h_re = 1; //
int d; //
double L;
for (d = 10; d <= 20; d++)
{
L = 69.55 + 26.16 * (Math.Log10(f_c)) - 13.82 * (Math.Log10(h_te)) - (3.2 * (Math.Log10(11.75 * h_re)) * (Math.Log10(11.75 * h_re)) - 4.97) + (44.9 - 6.55 * (Math.Log10(h_te))) * (Math.Log10(d));
Txt_data.Text += d.ToString();
Txt_data.Text += " ";
Txt_data.Text += L.ToString("0.00"); //
Txt_data.Text += "\r
"; //textbox
}
실행 결과:2.dat 파일 생 성
실제 텍스트 박스 의 데 이 터 를 만 든 데이터 파일 에 기록 합 니 다.
인용 추가 필요:
using System.IO;
코드:
FileStream fs = new FileStream("D:\\a.dat", FileMode.Create); //
BinaryWriter bw = new BinaryWriter(fs); //
bw.Write(System.Text.Encoding.Default.GetBytes(this.Txt_data.Text));
//
bw.Flush(); //
bw.Close();
fs.Close();
VC 로 a.dat 를 연 결과:3.명령 창 을 사용 하여 데 이 터 를 그림 으로 그립 니 다.
a.dat 가 있 는 디 렉 터 리 열기
C:\Users\Adninistrator>D:
gnuplot 명령 사용 하기
D:\>gnuplot
데이터 파일 로 그림 만 들 기:
gnuplot>plot "a.dat" w l
실행 결과:
4.다음 미 션
다음은 C\#gnuplot 를 사용 하여 그림 을 그 리 는 것 입 니 다(명령 창 을 사용 하지 않 고 명령 을 입력 하지 않 아 도 됩 니 다).그리고 그림 을 저장 한 다음 C\#의 picturebox 에 표시 하면 됩 니 다.
이상 의 C\#DAT 파일 을 만 들 고 읽 는 작업 은 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 가 되 고 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.