テキストファイルの行を編集するコードを使用しようとしています。私は実行すると :ファイルでC#テキストファイルの行を編集できません
public static void Updateconfigfile(bool updateall, int linenotoedit)
{
if (updateall == true)
{
//update all lines of files
MessageBox.Show("start 1");
} else
{
MessageBox.Show("start");
noprojecton = 10;
//update only a specified line
//line index for file.readalllines beguins at zero
string updatestring = Updateconfigfilegetvalue(1);
string[] textfile = File.ReadAllLines(appdataconfigpath);
MessageBox.Show(textfile[0]);
textfile[0] = Updateconfigfilegetvalue(0);
MessageBox.Show(textfile[0]);
File.WriteAllLines(appdataconfigpath, textfile);
}
}
public static string Updateconfigfilegetvalue(int lineno)
{
//determine which line the user wants to update starts at line 0
//return the correct line
string toreturn = "";
switch(lineno)
{
case 0:
toreturn = ("numberofprojectson: " + noprojecton);
return toreturn;
default:
return "";
}
}
テキストの現在の行が「1 numberofprojectson」を言う:私は私のコードはここ
7.ウィンドウで.NET 4.5のVisual StudioでC#を使用していますそれ、私は開始を言うメッセージが表示されます。
「1」と「10」というメッセージが表示されます。
文字列の配列形式でテキストファイルを取得していて、配列の0のインデックスを変更していますが、テキストファイルに書き込んでいません。テキストファイルには「numberofprojectson:1」と表示されています。
ファイルパスをチェックし、ブレークポイントを使用してすべてのコードが実行されていることを確認し、すべての行を実行して正しいファイルに書き込んでいます。
ご協力いただければ幸いです。
コンソール出力:
'
'Pseudocode Writer.exe' (CLR v4.0.30319: DefaultDomain): Loaded C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Pseudocode Writer.exe' (CLR v4.0.30319: DefaultDomain): Loaded 'E:\Pseudocode Writer\Pseudocode Writer\bin\Debug\Pseudocode Writer.exe'. Symbols loaded.
'Pseudocode Writer.exe' (CLR v4.0.30319: Pseudocode Writer.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Pseudocode Writer.exe' (CLR v4.0.30319: Pseudocode Writer.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Pseudocode Writer.exe' (CLR v4.0.30319: Pseudocode Writer.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Pseudocode Writer.exe' (CLR v4.0.30319: Pseudocode Writer.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Pseudocode Writer.exe' (CLR v4.0.30319: Pseudocode Writer.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
'Pseudocode Writer.exe' (CLR v4.0.30319: Pseudocode Writer.exe): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Exception thrown: 'System.IO.IOException' in mscorlib.dll
The program '[4276] Pseudocode Writer.exe' has exited with code 0 (0x0).
アプリケーションデータの設定・パス
public static String appdatapathprovisonal = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
appdatapath = (appdatapathprovisonal + asciicharbackslash + "Pseudocode Writer");
appdataconfigpath = (appdatapath + asciicharbackslash + "config.pwc");
public static string asciicharbackslash = (Convert.ToChar(92)).ToString();
92 ASCIIコードは '\' .pwcは、テキストファイル(.txt)
例外でありますコンソールにスローされました:
Exception thrown: 'System.IO.IOException' in mscorlib.dll
WriteTheFileのコードが実行された後、ファイルのパスに移動し、ファイルの更新日が変更されていることを確認し、メモ帳などのファイルを開き、ファイルの値が変更されているかどうかを確認します。私はたぶん、あなたがビジュアルスタジオでアプリケーションを実行するたびに、ファイルが元の値で上書きされているのだろうかと思っています。 –
こんにちは、appdataconfigpathは私のプログラムのアプリケーションデータフォルダとそのconfig.txtファイルにつながります。私は実行後にメモ帳でチェックし、更新されていません。 –
'appdataconfigpath'をどのように取得して、デバッガからの値を教えてください。私はあなたがプロジェクトフォルダではなく、ビルドされたファイルや配備されたファイルを探していると思います。 –