• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C#言語 ゲーム作りの質問について 続き)

C#言語でのテキストファイル読み込みができない問題について

このQ&Aのポイント
  • C#言語でテキストファイルからの文字の読み込みができない問題について質問です。プログラムや保存場所の問題かわかりません。
  • この前C#でテキストファイルでのゲーム作りについて質問して回答を頂きましたが、テキストファイルの読み込みができません。プログラムか保存場所の問題か分からないので助けてください。
  • C#言語でテキストファイルからの文字の読み込みができない問題が発生しています。プログラムか保存場所の問題なのか分からないため、質問させていただきました。助けていただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

>fs = new FileStream("map.txt", FileMode.Open); (カレントディレクトリからの)相対パス指定のようですが、実行時のカレントディレクトリはどこになっています? fs = new FileStream(@"C:\Documents and Settings\kathudon_\My Documents\map.txt", FileMode.Open); などのように「絶対パス」で指定してみてはどうですか? 「『相対パス』『カレントディレクトリ』『絶対パス』ってなに?」とかいう場合は…検索して下さい。

noname#188499
質問者

お礼

ご回答ありがとうございます うーんわかんないです; わかりました、調べてやってみます^^

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • wormhole
  • ベストアンサー率28% (1622/5659)
回答No.3

#1 の方のいわれるようにパスが原因かもしれませんが ファイル名は"map.txt"と"mao.txt"どちらが本当なんでしょうか。

noname#188499
質問者

補足

ご回答ありがとうございます map.txt ですすいません

全文を見る
すると、全ての回答が全文表示されます。
noname#259269
noname#259269
回答No.2

try catch を止めるか、 catch した IOException の内容を表示するようにした方がデバッグ時の役に立ちます。何のエラーが発生しているのかは、ここで質問するよりマシンに聞いたほうが、という事です。

noname#188499
質問者

お礼

ご回答ありがとうございます なるほど、エラーの内容を表示させるということですかね? いろいろ調べてやってみます!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C# 読み込んだテキストファイルが文字化けします

    C#初心者です。 ファイルストリームからファイル名を指定して テキストを読み込んで出力しようとしているのですが、 読み込んだテキストが文字化けしてしまいます。 原因を教えていただけないでしょうか。 下記にコードを記述します。 よろしくお願いいたします。 String s = ""; FileStream fip = new FileStream("test.txt", FileMode.OpenOrCreate); StreamReader r_fip = new StreamReader(fip); while (true) { s = r_fip.ReadLine(); if (s == null) break; fld00.AppendText(s); } r_fip.Close();

  • C#からテキストファイルへの出力について

    お世話になります。 .NET C#で開発をしております。 下記のコードで、テキストファイルへ書き出す際、 何故か最初の1レコード目が書き出されない現象が 起きてしまいます。 どなたかご親切な方、ご教示頂きたく宜しくお願い致します。     記 public static int Syori() { string MitxtPath = @"D:\MData"; string SotxtPath = @"D:\SData"; for (int x = 0; x < 2; x++) { if (x == 0) { FileName = "\\JF01.txt"; } else if (x == 1) { FileName = "\\JS05.txt"; } FileStream fs = new FileStream(MitxtPath + FileName, FileMode.Open); StreamReader r = new StreamReader(fs, Encoding.GetEncoding("Shift_JIS")); if (r.ReadLine() != null) { StreamWriter textFile; textFile = new StreamWriter(SotxtPath + FileName, true, Encoding.GetEncoding("Shift_JIS")); //レコードを書き込む string ZanData; string newData; byte[] bytesData; while ((OkuriNokosi = r.ReadLine()) != null) { bytesData = System.Text.Encoding.GetEncoding(932).GetBytes(ZanData); newData = System.Text.Encoding.GetEncoding(932).GetString(bytesData); textFile.WriteLine(newData); } textFile.Close(); r.Close(); } }

  • [C#]FTPでの複数のファイルのアップロード

    ネットで調べたところ1つのファイルであれば、 下記の記述でアップロードできることがわかったのですが、 別々のフォルダにあるにファイルを複数同時にアップロードするプログラムがわかりません。 どなたかご教示ください。よろしくお願いいたします。 using System; using System.Net; using System.IO; class FtpWebPut {  static void Main()  {   string uri = "ftp://servername/Upload/secret.png";   string myFile = "tmp.png";   WebRequest req = WebRequest.Create(uri);   req.Credentials = new NetworkCredential("user01", "mypassword");   req.Method = WebRequestMethods.Ftp.UploadFile;   using (Stream st = req.GetRequestStream())   using (FileStream fs = new FileStream(myFile, FileMode.Open))   {    Byte[] buf = new Byte[1024];    int count = 0;    do    {     count = fs.Read(buf, 0, buf.Length);     st.Write(buf, 0, count);    }    while (count != 0);   }  } }

  • C#で空白行を削除する方法

    C#でテキストを読み込んで、文字列型の変数に代入、そしてtextBoxに表示させます。その中にいくつかの空白だけの行があります。その空白行だけを削除する方法がわかりません。わかる方がいらっしゃいましたらよろしくお願いします。 FileStream file = File.Open(@"C:\text.txt",FileMode.Open); Encoding enc = Encoding.GetEncoding("Shift_JIS"); StreamReader reader = new StreamReader(file,enc); string A = reader.ReadToEnd(); A = Regex.Replace(A,"\r\n",""); textBox1.Text = A; とすると全ての改行が削除されてしまいます。 正規表現をうまくつかうと出来るような気がするんですが・・・

  • C#テキストファイルから1バイト除去する

    数ギガのテキストファイルがあり、語尾の1バイト(EOF)を瞬時に除去したいと思います。 バイトで読んで1バイトのみ出力しないと言う方法が一番簡単ですが、時間がかかる上、巨大ファイルには向きません。 下記語尾を置換するソースを書きましたが、除去の方法がわかりません。初心者ですので、簡単にお願いします。 FileStream fs = new FileStream("test.txt", FileMode.Open); byte[] b = new byte[1]; fs.Seek(fs.Length - 1, SeekOrigin.Begin); fs.Write(b, 0, 1); fs.Close();

  • C# StreamReader,StreamWriter による文字化

    C# StreamReader,StreamWriter による文字化け お世話になります。 文字化けで悩んでいます。 Visual Studio 2008 C# にて、テキストファイルからデータを読んで別のテキストファイルに そのまま書き出す(もちろん実際の運用では加工するわけですが)処理で文字化けが起こります。 そのテキストファイル自身を C# で作れば問題はないのですが、メモ帳を使って書き込んだファイルでは 文字化けが起こります。 対処方法があれば教えてください。 以下はその実験に使ったコードです。 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ConsoleApplication5 { class Program { static void Main(string[] args) { // これは正常に書き込みできました StreamWriter sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test.txt"); sw.WriteLine("これはてすとです。"); sw.WriteLine("This is test."); sw.Close(); // これも正常に読み込め、書き込みもできました StreamReader sr = new StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test.txt"); sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\newtest.txt"); while (!sr.EndOfStream) { sw.WriteLine(sr.ReadLine()); } sr.Close(); sw.Close(); // 次はあらかじめメモ帳で作ったファイルを読んで、別のファイルに書き出します // これが文字化けします sr = new StreamReader(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\test2.txt"); sw = new StreamWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\newtest2.txt"); while (!sr.EndOfStream) { string dat = sr.ReadLine(); sw.WriteLine(dat); Console.WriteLine(dat); } sr.Close(); sw.Close(); } } }

  • 排他ロックが掛かっているファイルを読み込む

    排他ロックが掛かっている(別のプロセスが使用している) テキストファイルを読み込みたいのですが、 System.IO.FileStreamを実行した後に、IOExceptionエラーが発生し、 読み込みができません。 System.IO.FileStreamにはこだわってませんので、 排他ロックが掛かっているテキストファイルを読み込む方法を ご存知の方は、ご教授頂けませんでしょうか。 宜しくお願いします。 <ソースコード> 'ファイルパス wFullPath = "\\XXX.XXX.XXX.XXX\TEXT\TEST.TXT" (XXX.XXX.XXX.XXX:IPアドレス) 'ファイルを開く Dim fs As New System.IO.FileStream(wFullPath, _ System.IO.FileMode.Open, _ System.IO.FileAccess.ReadWrite, _ System.IO.FileShare.ReadWrite) 'FileStreamを基にしたStringReaderのインスタンスを作成 Dim enc As System.Text.Encoding = _ System.Text.Encoding.GetEncoding("shift_jis") Dim sr As New System.IO.StreamReader(fs, enc) 'ファイルの内容をすべて読み込む Dim s As String = sr.ReadToEnd() <開発環境> 言語:VB.NET Microsoft Visual Studio 2008 Microsoft .NET Framework Version 3.5 SP1

  • C# ファイルを読み込みlistviewに展開

    C#でtxtファイルを読み込み、listviewに展開したいのですが、txtファイルが ○○○,○○○ △△△,△△△ となっている場合、最初の一文字が消えて ○○,○○○ △△△,△△△ と表示されます。 コードは下記の通りです。 System.IO.StreamReader load = new System.IO.StreamReader(@".\test.txt", System.Text.Encoding.GetEncoding("shift_jis")); load.Read(); String file; while ((file = load.ReadLine()) != null) { string[] txtdate = file.Split(','); itemx = new ListViewItem(); itemx.Text = txtdate[0]; itemx.SubItems.Add(txtdate[1]); listView1.Items.Add(itemx); } load.Close(); 何を直せば最初の一文字目も読み込まれるかご教授下さい。

  • C#でタグを削除する方法

    htmlファイルをtextBoxに読み込んで、その中にあるタグのみを正規表現で削除したいです。 FileStream file = File.Open ( @"c:\test.html", FileMode.Open ); Encoding enc = Encoding.GetEncoding("Shift_JIS"); reader = new StreamReader( file ,enc); StringBuilder text = new StringBuilder(); while(reader.Peek() != -1) {   string A = reader.ReadLine().ToString();   A = Regex.Replace(A,@"<(([^>]|\n)*)>","");   text.Append(A); } textBox1.Text = text.ToString(); とすると、ある程度のタグは削除できるんですが、<DIV などの大文字で書かれたタグが削除できませんでした。 解る方いらっしょいましたら宜しくお願いします。

  • インスタンス化について

    .NETでのインスタンス化について .NETでプログラムの勉強をしています。インスタンスについてお教えください。 ↓では、「sr」はnewキーワードを使ってインスタンス化しています。 ********************************************************************************** //"C:\test.txt"をShift-JISコードとして開く System.IO.StreamReader sr = new System.IO.StreamReader( @"C:\test.txt", System.Text.Encoding.GetEncoding("shift_jis")); //内容をすべて読み込む string s = sr.ReadToEnd(); //閉じる sr.Close(); //結果を出力する Console.WriteLine(s); ↓では、「enc」はnewキーワードを使ってインスタンス化していません。 ********************************************************************************** //読み込むテキストファイル string textFile = "C:\\text.txt"; //文字コード(ここでは、Shift JIS) System.Text.Encoding enc = System.Text.Encoding.GetEncoding("shift_jis"); //テキストファイルの中身をすべて読み込む string str = System.IO.File.ReadAllText(textFile, enc); //行ごとの配列として、テキストファイルの中身をすべて読み込む string[] lines = System.IO.File.ReadAllLines(textFile, enc); ********************************************************************************** 質問1: インスタンス化させる時にはnewキーワードが必要だと思っていましたが、「enc」はnewキーワードが使用されていません。 なぜでしょうか? 質問2: System.IO.StreamReader sr = new System.IO.StreamReader( @"C:\test.txt", System.Text.Encoding.GetEncoding("shift_jis")); 上記のように、newと同時にパスやエンコーディングを引数として渡しています。この事をコンストラクタとよぶのでしょうか? Googleで調べていますが、いまいち意味がわかりません・・・物凄くひらたくいうとどういったことなのでしょうか?何かプログラムではない、一般的な事で例えて頂けるとありがたいです。 宜しくお願い致します。