• 締切済み

c/c++でのファイル読み込みについて

C/C++で、現在勉強をしていますが、csvファイル形式で 作成したファイル(仮に30件ほど)を読み込んだ後、特定のファイル 1件分のみを指定して削除をしたいコードを作成しようと思っています。 どのようなコードを記述してよいか教えてください。

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

「削除したいデータ」以外を別のファイルに書き出す.

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

関連するQ&A

  • VBScriptでのファイル読込について

    CSVファイル内のデータをキー項目(コード)ごとに分け、 それぞれ別のCSVファイルに出力しようとしています。 使用する言語はVBSです。 CSVファイルは以下のような形式です。 連番,コード,フラグ,日付 1,0001,A,20091001 2,0002,A,20091001 3,0002,U,20091002 4,0001,D,20091003 CSVファイルは既定の文字コード(UnicodeBE BOMなし)の形式であり、 通常のファイルを読み込むような処理では正しく 読み込むことが出来ませんでした。 (OpenTextFileメソッドの第4引数にUnicodeBEは指定できないのでは…?) また、CSVファイル内のデータは"コード"でソートされておらず、 VBSではソート機能を標準で持っていないため そちらについても実装する必要があります。 ファイルを取り込む際の文字コードの指定や ソート処理について詳しい方、ご回答よろしくお願いします。

  • C#のファイル読み込みについて

    Visual C#を使用したプログラムを勉強中です。 今まではCOBOLでの開発しか、経験したことがありません つい先日から勉強を始め、現在ドリル式の参考書を読み終え 各種コントロール、コンポーネント、ダイアログなども ごく簡単なサンプルプログラムを使用して触ってみました。 つぎのステップとして、自作のプログラムを作成してみようと 考えていたのですが、最初の段階で躓いてしまったので 質問させていただきます。 仕様としては、csvファイルにて 「番号,名前,値1,値2,値3」というデータファイルを作成しておき それをアプリケーション起動時に読み込む TextBoxに文字を入力し、検索ボタンを押すことで データファイルの「名前」部分と一致したデータの内容(値1,値2...)を Label、もしくはTextBoxの指定した箇所にそれぞれ表示をさせようと考えています。 こういった仕様のプログラム(というより、C#での考え方)の場合 最初のデータ読み込みの段階で、csvファイルから配列にデータを 読み込んでおくのか、 検索ボタンを押した段階でファイルから読み込み該当項目を探すのか どちらが良いのでしょうか? データ件数が膨大な量でない限り、前者の方法が適しているのではないかとは 考えています。 また、よろしければ簡単にプログラムでの書き方も 併せて教えていただけると、とてもありがたいです・・・ 今現在のスキルとしては、ファイルの読み込みに関してはopenFileDialogを使用して ファイルを指定し、FileStreamを取得、streamReaderで読み込み richTextBoxに表示させる、というような処理しか理解できていません

  • C++でのcsvファイル読み込みについて

    C++でのcsvファイル読み込みについて質問です. 読み込みcsvファイルの規模は300*1000として,その情報をdouble型の2次元配列に格納したいですが,ネットでいろいろ調べたり自分でコードを作ってみてもabort()has been calledなどいくつかエラーが表示されてしまい先に進めません. csvファイル名をa.csv,格納したい2次元配列をA[300][1000]などとしてサンプルコードを提供してくださいますと幸いです. 質問前に散々調べましたがプログラミング初心者でして今現在の力では対応できませんでした.申し訳ありませんが何卒ご教示お願いします.

  • C# OpenFileDialog

    C# OpenFileDialogで指定した拡張子以外のファイルが選ばれた際のエラー処理 いつもお世話になっております。 唐突な質問で申し訳ございません。 現在、C#でOpenFileDialogによってcsv形式のファイルを選択し、ダイアログを閉じた後、 テキストボックスにファイルのパス(名前)の表示をしようとしています。 その際、もしcsv形式のファイルが選ばれなかったときに 「csv形式のファイルを選択してください」などのエラーを表示させようと思っています。 ファイルのパスを表示させるまではできましたが、エラーを表示させる判断の処理をどうしてよいのかわかりません。 どなたかご教授おねがいします。 あと当方、初心者ですので、コードなど載せてくださるとありがたいです。 以上、よろしくお願いします。

  • VB6.0同一プログラム上で複数のExcelファイルの編集をしたいのですが…

    目にとめていただき有難うございます。 VBについては初心者です。宜しくお願い致します。 VB6.0で、フォーム上で指定した2つのExcelファイルについて、それぞれ特定の行・列を削除してCSVとして保存、そのデータを使って処理を行うプログラムを作成しようとしています。 同じVB6.0のプログラム上で、複数のExcelファイルに対して編集をかけることは可能でしょうか。 プログラムの流れとしては (1)エクセルオブジェクトの新しいインスタンスを作成 (2)エクセルファイル1を開き、特定行を削除する (3)エクセルファイル1をCSVとして保存、閉じる (4)オブジェクトを解放する (5)エクセルオブジェクトの新しいインスタンスを作成 (6)エクセルファイル2を開き、特定行を削除する (7)エクセルファイル2をCSVとして保存する (8)オブジェクトを解放する というものです。 (1)~(4)と(5)~(8)は同じSubプロシージャでファイルのパスだけ変えるようにしています。 (1)~(5)迄は素直に行くのですが、(6)の削除行を指定する段階で ‘Rows’メソッドは失敗しました’_Global’オブジェクト と出てしまう状態です。 (1)~(4)は問題なく動き、ファイル1の編集もきちんと出来ているため、混乱しております。 同じコードでパスだけ変えてやろうという考えが無理な話なのか、コードの組み方が悪いのか… 質問で不明瞭点があれば説明させて頂きますのでご指摘下さい。 宜しくお願い致します。 #ソースまで出した方が良かったのでしょうか…

  • ファイルの読み込みが遅い

    VC++6で、CSVファイル読み込むプログラムを作成しています。件数は、1万件ほどで、ファイルサイズは、20MBぐらいです。 CFile&CArchiveで、一行ずつ読み込んでいるのですが、徐々に遅くなっていきます。これは、しょうがないのでしょうか? 改善する方法は、あるでしょうか? よろしくお願いします。

  • C# datagridview csv 読込

    datagridviewにcsvファイルを読み込んでいるのですが,csvファイル内の行列数分のみ列数・行数をdatagridviewに生成したいのですが,どうも必要以上の列数・行数を生成してしまいます. 下記にそのプログラムを記載いたします. どなたか,必要分のみするにはどうすればよろしいかご教授願えないでしょうか? private void button1_Click(object sender, EventArgs e) { string strName = "xxx.csv"; // 仮のファイル名 string strPath = "c:/csv/"; // 仮のディレクトリ名 OpenFileDialog sfd = new OpenFileDialog(); sfd.InitialDirectory = strPath; sfd.FileName = strName; sfd.Filter = "CSVファイル(*.csv)|*.csv|xlsファイル(*.xls)|*.xls|xlsxファイル(*.xlsx)|*.xlsx|テキスト(*.txt)|*.txt"; sfd.Title = "開くファイルを選択してください"; sfd.RestoreDirectory = true; sfd.CheckFileExists = false; if (sfd.ShowDialog() == DialogResult.OK) { // CSVファイルオープン System.IO.StreamReader sw = new System.IO.StreamReader(sfd.FileName); // CSVファイルの各セルをDataGridViewに表示 int r = 0; String lin = ""; do { lin = sw.ReadLine(); if (lin != null) { dataGridView1.Columns.Add("clmName1", "日付"); this.dataGridView1.Columns.Add("Time","データ"); this.dataGridView1.Rows.Add(); String[] csv = lin.Split(','); for (int c = 0; c <= csv.GetLength(0) - 1; c++) { if (c < this.dataGridView1.Columns.Count) { this.dataGridView1.Rows[r].Cells[c].Value = csv[c]; } } r += 1; } } while (lin != null); // CSVファイルクローズ sw.Close(); }

  • EXCEL VBAでのCSVファイルの編集

    CSVファイル(ダブルクォーテーション)形式のファイルをEXCEL VBAにて行の編集(削除)をした後、上書き保存をしたらダブルクォーテーション区切りではなくカンマ区切りのCSVファイルの形式になってしまいます。 ダブルクォーテーション区切りのCSVファイルで上書き保存する記述があれば教えて下さい。おそらくEXCELでCSV形式の上書きはCSV2の形式で保存されるみたいです。 困っています。どなたかお助け下さい。

  • エクセル形式のファイルの読み込み

    C言語で、エクセル形式のファイルの読み込みの仕方を教えてほしいです。 CSV形式のファイルにするまでは分かっているのですが、そこからどのように読み込めば良いのか分かりません。 何か分かりやすく解説されている本、またはサイトがありましたら教えて下さい。 テキスト形式のファイルの読み込みはやった事があるのですが、同じようなやり方でできますか?

  • VBSでソート&ファイル分割

    VBScriptでCSVファイルを最大5件のレコードになるように ファイル分割しようとしています。 ただし、同じコードが複数のファイルに分かれないようにしたいです。 入力するCSVファイル(test_in.csv)は以下のような形式です。 (実際のファイルに項目行はありません) 連番,コード,フラグ,日付 01,0001,A,20091001 02,0002,A,20091001 03,0003,A,20091002 04,0001,U,20091003 05,0003,D,20091003 06,0004,A,20091003 07,0005,A,20091003 08,0001,D,20091005 09,0006,A,20091003 10,0006,A,20091003 ※入力ファイルに同じコードのレコードが5件を超えることはありません) 上記の入力ファイルの場合は以下の3つのファイルに分割することになります。 【test_out_001.csv】 01,0001,A,20091001 04,0001,U,20091003 08,0001,D,20091005 02,0002,A,20091001 【test_out_002.csv】 03,0003,A,20091002 05,0003,D,20091003 06,0004,A,20091003 07,0005,A,20091003 【test_out_003.csv】 09,0006,A,20091003 10,0006,A,20091003 ※コード"0003"のレコードは2件あるので、test_out_001.csvには出力せず、  test_out_002.csvに出力します。  コード"0006"についても同様でtest_out_003.csvに出力します。 処理の手順としては 入力ファイルのデータをコードでソートし、 1ファイルに5件を超えないように追加していくのかと思いますが、 ソートと5件制限はどのように記述すればよいでしょうか?