当我的.ini文件';s的strvalue为null或为空

本文关键字:strvalue null ini 我的 文件 | 更新日期: 2023-09-27 18:21:39

我正在从.ini文件中读取一个strvalue。它的阅读和每件事都很好。但我想展示一些东西,比如当keyname和strvale不在的时候,我想展示一个消息框,比如"联系管理员"。

所以当我在form_load上编码时。。每次加载带有消息框的表单时。哈哈。我不想改正。请帮帮我。

我的代码片段

 private void Form1_Load(object sender, EventArgs e)
    {
        if (!System.IO.File.Exists(ini.ReadValue("Action", "User")))
        {
            MessageBox.Show("Contact Admin");
            Environment.Exit(0); 
        }
       else
        { 
        //do something
        }
   }

我的.ini文件中的代码

  [Action] 
  User=Company'Group

我正在寻找一些类似的东西,如果.ini [Action] filed is empty,意思如下!!!

[Action]
User=

所以我需要在表单加载时显示一个消息框,然后我想退出。

我单独上了一节课来读和写.ini文件。.ini文件的代码段

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace MovedFiles
{
class INIFile
{
    [DllImport("kernel32.dll")]
    private static extern int WritePrivateProfileString(string ApplicationName, string KeyName, string StrValue, string FileName);
    [DllImport("kernel32.dll")]
    private static extern int GetPrivateProfileString(string ApplicationName, string KeyName, string DefaultValue, StringBuilder ReturnString, int nSize, string FileName);
    private string fileName = string.Empty;
    public INIFile(string _fileName)
    {
        fileName = _fileName;
    }
    private string DefaultSection = "SECTION1";
    public INIFile(string _fileName, string _defaultSection)
    {
        fileName = _fileName;
        DefaultSection = _defaultSection;
    }
    public void WriteValue(string SectionName, string KeyName, string KeyValue)
    {
        WritePrivateProfileString(SectionName, KeyName, KeyValue, fileName);
    }
    public string ReadValue(string SectionName, string KeyName)
    {
        StringBuilder szStr = new StringBuilder(255);
        GetPrivateProfileString(SectionName, KeyName, "", szStr, 255, fileName);
        return szStr.ToString().Trim();
    }
    public void WriteValue(string KeyName, string KeyValue)
    {
        WriteValue(DefaultSection, KeyName, KeyValue);
    }
    public string ReadValue(string KeyName)
    {
        return ReadValue(DefaultSection, KeyName);
    }
}

}

当我的.ini文件';s的strvalue为null或为空

一个问题是在非文件路径上使用System.IO.File.Exists()。我不知道你用什么库来读取ini文件,我想它只是包装Win32调用。你可能正在寻找这样的东西:

if(!string.IsNullOrEmpty(ini.ReadValue("Action", "User")))
{
    MessageBox.Show("Contact Admin.");
}

这假设您已经指定了文件,并在创建ini变量时检查了该文件是否存在。

您应该这样检查。您正在检查文件是否存在,而不是值是否为null。

string strVal = ini.ReadValue("Action", "User");
if(string.IsNullOrEmpty(strVal))  //This will return true if the value is null or blank.
{
    MessageBox.Show("Contact Admin."); //So the message will display only when value is not assinged.
}