• ベストアンサー
  • すぐに回答を!

【C#】テキストボックスに入っているファイル名(文字列)のオープン

【C#】テキストボックスに入っているファイル名(文字列)のオープン C#初心者です。 C#で、テキストボックスに入力されているファイルをオープンして、一行ずつ読み込みたいのですが、なかなかうまくいきません。 分かる方いらっしゃいましたら教えていただけると幸いです。 宜しくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数880
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1

>C言語→C#に変換 の返信はないわけ? お礼もまともにできないのにこの先やっていけるのかと。 面倒なので、 -ainput.txt -bkeyword という引数から input.txt から keyword を検索するC言語のコード #include <string.h> #include <stdio.h> int main(int argc, char* argv[]) { FILE* fp; FILE* fpp; int i; char KEYWORD[256]; char buf[256]; //(1)アウトプットファイルのオープン fpp = fopen("output.txt", "w"); if (fpp == NULL) { printf("open error!\n"); return 1; } for (i = 1; i < argc; ++i) { //(2)入力ファイルのオープン if (strncmp(argv[i], "-a", 2) == 0) { fp = fopen(argv[i] + 2, "r"); if (fp == NULL) { printf("open error!\n"); fclose(fpp); return 1; } } //(3)キーワードの代入 else if (strncmp(argv[i], "-b", 2) == 0) { strcpy(KEYWORD, argv[i] + 2); } } //(4)一行読み込む while (fgets(buf, sizeof(buf), fp) != NULL) { //(5)キーワードの条件で文字列抽出 if (strstr(buf, KEYWORD) != NULL) { //(6)アウトプットファイルに出力 fprintf(fpp, "%s", buf); } } //ファイルクローズ fclose(fp); fclose(fpp); return 0; } そのC#版 using System; using System.IO; using System.Text; public class Program1 { static int Main(string[] args) { string inpath = null; string keyword = null; string outpath = "output.txt"; foreach (string cmd in args) { if (cmd.IndexOf("-a") == 0) { inpath = cmd.Substring(2); } else if (cmd.IndexOf("-b") == 0) { keyword = cmd.Substring(2); } } if (inpath == null || keyword == null) { return 1; } StreamReader sr = null; StreamWriter sw = null; try { sr = new StreamReader(inpath, Encoding.GetEncoding(932)); sw = new StreamWriter(outpath, false, Encoding.GetEncoding(932)); string line; while ((line = sr.ReadLine()) != null) { if (line.IndexOf(keyword) != -1) { sw.WriteLine(line); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { if (sr != null) { sr.Close(); } if (sw != null) { sw.Close(); } } return 0; } } あとは自分で考えて。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

すみません、仕事で納期が迫っていまして、いっぱいいっぱいになっていました。 ありがとうございます。 非常に参考になりました。

関連するQ&A

  • C#でテキストボックスに入力した文字列をビット列に変換

    C#で電子透かしのプログラムを作ってるのですが、テキストボックスに入力した文字列(日本語)をビット列に変換する方法はないでしょうか? VBだとchngBit()という関数がありますが、アルファベットしかダメみたいです。

  • 【C#】文字列の最後に改行を入れていく処理

    【C#】文字列の最後に改行を入れていく処理 C#初心者です。 ファイルを一行読み込むごとに、行の最後に改行\nを入れ、最後にその文字列を繋げ、出力したいのですが、やり方がわかりません。 結果は abcdefg hijklmn opqrstu のようになってほしいです。 分かる方いらっしゃいましたら教えていただけると幸いです。 宜しくお願いいたします。

  • VBA テキストボックス内の文字列を切り出したい

    フォームのテキストボックスに入力した文字列の一文字目だけを 切り出し、変数に格納したいのですが、 切り出す作業がどうしてもできません。 よろしくお願い致します。

  • EXCELで文字列の後ろに同じ文字列を追加するには?

    初心者です、教えてください。 ワークシート内の一行の文字列全てに同じ文字を追加したいのですが、方法を教えてください。 初歩的な質問で恐縮ですが、どうかよろしくお願いします。

  • C#における文字「¥」の結合

    C#開発初心者です。 ディレクトリとファイル名を結合してテキストボックスに表示させるために txtShiteiFile.Text = windir +\"\\\"+ fileName; 文字列の結合で以上のようなコーディングをすると 「定数の新しい行です」というメッセージとともにコンパイルエラーになります。 ちなみに「¥」以外の文字ならなんでも結合できます。 どご存知の方がいらっしゃれば、ご教授宜しくお願いします。

  • 文字列の部分読み込み

    C言語によるプログラムを勉強中なのですが、分からないことがあるので質問させてください。 「fgets」を用いてファイルから一行分の文字列を読み込んだのですが、この文字列の○文字目から×文字目を読み込む関数などはあるのでしょうか? もし無ければ、どのようにしたら読み込めるのでしょうか? 読み込んだ文字列は □□□□1234□□□5678□□abcd のようなもので、□は半角のスペースです。 区切り文字などが無く、先頭の半角スペース部分に文字が入る場合もあるので、○文字目から×文字目のように指定したいと思っています。 初心者で申し訳ありませんが、よろしくお願いいたします。

  • C#で文字列を抜き出す

    C#で”<”から”>”までの間の文字列を抜き出そうとしていますが、間に改行が入ると抜き出す事ができなくなってしまいます。 何かいい方法があったら教えて下さい。 初心者なので質問内容が分かりにくいかもしれませんが宜しくお願い致します。 if (HTML.StartsWith("<")) { endlen = HTML.IndexOf(">"); writer.WriteLine("tag"+"["+"]"); httext[0] = HTML.Substring(0,endlen); HTML = HTML.Remove(0,endlen1); }

  • ファイル名に同じ文字列があるファイルを探せるソフト

    重複している音楽を検索したいのですが、リミックスしており検索対象となるのはファイル名のみとなります。ただファイル名も頭や後ろに文字列を追加しているため、下記の機能を有するフリーソフトを探しています。 ・ファイル名に同じ文字列が含まれているファイルを検索(部分一致で、文字列を指定しない検索が可能なこと) ・指定する文字列を除外できる 手作業だとかなり面倒なので、ご存じあればご紹介いただけますと非常に助かります。

  • ある文字列を含むファイル名以外を移動させたい

    ある文字列を含むファイル名以外を移動させたい 現在Windows環境で下記のことをバッチでやりたいです。 イメージとしては、例えばH:\TEST\TEST1というフォルダに aabbbccc.avi aabbbbbb.avi bbbdddee.avi というファイルがあったとすると cccという文字列を含むファイル以外(つまり下2つのファイル)を H:\TESTに移動させたいです。 文字列を含むファイルを移動なら下記のコマンドでできるのですが for /f "usebackq tokens=*" %%A in (`dir /b /s *avi*`) do move "%%A" H:\TEST 含むファイル以外だとわかりません。 誰か教えてください。お願いします。 以上

  • ワードで文字列の参照はできないのでしょうか

    たとえば、Aテキストボックスに文字列を入力することにより、Bテキストボックスにも同じ文字列が反映される。みたいなことがしたいのですが、ワードではそのようなことはできないのでしょうか? エクセルの場合、A1セルに入力した文字列を、他のセルにも反映させたい場合は、反映させたいセルに「=A1」と入力すれば、そのセルにもA1に入力した文字列が参照されて反映されますよね。 それと同じようなことをワードでしたいのです。