• 締切済み

テキストデータと構造体。

テキストデータを構造体に代入し、キャッシュの仕組みの様に見せるプログラムをC言語で作れますか? 教えて下さい。ちょっと緊急です…

noname#86836
noname#86836

みんなの回答

  • Gotthold
  • ベストアンサー率47% (396/832)
回答No.6

> まず問題も理解出来ないんですが 問題が理解できない→説明できない→解決できるわけがない 慌てなくて良いので、問題が理解できてから説明をお願いします。 あと、文章の推敲も忘れずに。

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

自分で読んでもらえればわかるはずなんだけど, #2 の補足はそもそも日本語になってません. 日本語として意味が通るように書いてもらえませんか?

回答No.4

> キャッシュの処理のように見せるという事だと思います。 わかりません。「キャッシュの処理」ってどんな処理? ファイル上にあるデータを配列上にあるように見せかけるのかしら? だとすると、No.2の疑問に戻ります。

回答No.3

ごめんなさい、No.2補足ですが、何言ってんだかさっぱりわからんし、 それとキャッシュがどう繋がるのか輪をかけてわからんです。 質問になってません。

noname#86836
質問者

補足

実際に処理でキャッシュを使うわけではなくて、キャッシュの処理のように見せるという事だと思います。

回答No.2

データの総量はどんなもんでしょか。 きょうびのマシンなら数百MB程度ならまるっとメモリに読み込めるんで キャッシュの出番ありませんし。

noname#86836
質問者

補足

データ(文字数、領域)の総量は可変で保存されているテキストデータを構造体に格納し、何文字目から何文字をテキストを書き込むかを入力して構造体にデータを書き込む。何文字目から何文字読み込むかを入力し構造体から読み込む。読み込むデータがなければテキストファイルから構造体に読み込み画面に表示する。リスト構造体で表現するというものらしいんですけど、問題を出す側に問題があると思います↓ まず問題も理解出来ないんですが、処理の流れはわかるような分からないような感じで、プログラムの書き方がわかりません…

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

「キャッシュの仕組みの様に見せる」でどのような機構を想定しているのかよくわかりません. もうちょっと説明してもらえないでしょうか.

関連するQ&A

  • テキストデータ 構造体 入出力

    テキスト(何が入っているか分からない)データの内容を構造体に格納して、格納された構造体の内容を画面に表示するのは可能でしょうか? C言語でソフトはVCです。 宜しくお願いします。

  • 構造体から他の構造体への代入

    現在C言語で簡単なプログラミングを書いているのですが、 構造体(1)(下記参照)から、構造体(2)(下記参照)への代入の方法がわからず悩んでいます。もしよければ手を貸してください!! 標準関数などがないということはわかったので、 地道に代入を行いたいです。 イメージ・・・(data[n].b = moji[n].d;) (1)struct list_kouzou{ int a; char b[30]; char c[8]; }data[100]; (2)struct list_tai{ char d[30]; }moji[15];

  • 構造体について

    プログラムを勉強し始めて3日目の初心者なんですが、構造体を使う意味がいまいちよくわかりません。 たとえば、構造体の定義が { 縦の長さ 横の長さ 重さ } だとしたら、それを使うためにも { 縦の長さ= a 横の長さ= b 重さ= c } と同じものを2回書く必要があり、なんだか冗長な感じがしてしまいます。 それとも、定義で決めたデータをわかりやすく、間違えないようにするためですか? 本当に未熟で仕組みや使い方もわからない自分の質問なのですが、答えていただければうれしいです。

  • C言語で、テキストファイルに下記の構造体データのバッファを保存し、

    C言語で、テキストファイルに下記の構造体データのバッファを保存し、 PHPで構造体データの中身を取ることは可能でしょうか。 struct ParamData{ signed short paramA; signed short paramB; signed short paramC; signed short paramD; signed short paramE; signed short paramF; signed short paramG; }; C言語では、 ParamData* params = (ParamData*)readData; で取得できたのですが・・・。 宜しくお願いします。

  • 構造体の削除について

    C言語にて 構造体をポインタで繋いだ住所録等のサンプルプログラムは、本などで良く見かけますが、データの入力や検索のコードはあるのですが、”データ削除”のコードは載っていません。 データ削除は少し難しくなるのでしょうか? データ削除が載っているサイトや本をご存知の方がみえましたら紹介ください。 よろしくお願いいたします。

  • Cの構造体のデータのbyte配列をjavaのclassに入れるには

    サーバーからCの構造体のデータをbyte配列で受け取ったものをjavaのclassに入れるにはどうすればよいでしょうか? クライアントプログラムがCなら受け取ったデータをそのまま構造体にコピーすれば終わりなのですが(サーバーもクライアントもx86なのでendianを気にする必要が無い)、java で簡単に書く方法が分からないので、今はbyte配列から1バイトづつ読みだして、classのメンバーに代入しています。もっとスマートな書き方はないでしょうか?

  • すみません。C言語の構造体で簡単なプログラムがあれば教えてください。

    すみません。C言語の構造体で簡単なプログラムがあれば教えてください。

  • 【VC++2005 MFC】構造体のコピーについて

    【VC++2005 MFC】構造体のコピーについて 構造体をコピーする時、単純に「=」で代入しているのですが、先輩に 「それじゃコピー出来ないから各メンバごとに代入するような関数作れ」 と言われました。 私自身、C言語の初心者ですが、ネットで調べてみると、単純に「=」で代入出来る ような気がしております。 ただ拝見したサイトに記載されている構造体は型が「int」「char」なのですが、 「CString」を使っていたり、構造体の中に更に構造体が入っていたりする場合も 単純に「=」で代入出来るのでしょうか? (というか、実際にコーディング、デバッグして、コピー出来ている事は確認しているん ですが、先輩いわく、「CStringとかのクラスが含まれている場合はダメだと思う。 メモリが壊れると思う」との事でした。)

  • ファイルのデータを構造体に代入する方法

    学習し始めてから時間が経ちましたが、まだ初心者のまま・・・少しずつ頑張っている状態の者です。 今回はタイトルのことで御質問させてください。 関数Read(自己作成)でcsvファイルの内容を読み取り、読み取ったデータを用意しておいた構造体の変数ポインタを利用して代入しようと試みているのですが・・・要領がつかめません。 それで気になったのですが、読み込んだファイルを用意しておいた構造体に入れるにはどんな方法があるかよろしければご教授下さい。 私としてはforを使ったやり方があるのなら是非見本を見せてほしいのですが・・・ ちなみに、私が考えていたプログラム案は以下の通りです。 構造体にはcsvファイル・1レコード分の情報が入る構成。 構造体と読み取るファイルの構造は酷似しているが構造体全てに入る情報でない場合がある。 構造体には必要な分、配列領域を確保する ファイルの先頭アドレスはファイルポインタに代入。 構造体の先頭アドレスはポインタ変数に代入。   main関数とは別の関数の引数に2つのアドレスをコピー。 ★ そこでファイルデータを構造体へ代入しmainに戻って出力する。    その関数での戻り値は特になし(成功したら0・・・と考えていたのですが使い道が今のところはreturnだけです) ★で特に悩んでいるので、よろしくお願い致します。

  • テキストデータから構造体にデータを保存する方法

    C言語初心者です。 大きなテキストデータ(730MB)からデータを取得して、構造体に保存し表示するというプログラムを作成しています。テキストのサイズが大きいため構造体のサイズを400000とし、 残りをftellとfseekを使用してファイルポインタをずらして全データを順次読み込んで表示しようとしているのですが、実行すると400000行目以降(最初の構造体のMAX時点)がうまく読み込めません。 詳しい方がいましたら、ご教授願います。 #define MAX_SIZE 400000 char filename[] = ″test.txt"; struct ALL_DATA{ char cmd[10]; int addr; int bsize; }; for (int lp = 0; lp < 100; lp++){ FILE *fp; struct ALL_DATA ADATA[MAX_SIZE]; // 構造体配列の宣言 if (lp > 0){ fseek(fp, LP, SEEK_SET); } if ((fp = fopen(filename, "r")) == NULL){ printf("%s open error !\n", filename); exit(1); } for (fc = 0; fc < MAX_SIZE; fc++) { if (feof(fp)){ break; } else{ fscanf(fp, "%s %d %d\n", ADATA[fc].cmd, &ADATA[fc].addr, &ADATA[fc].bsize); } } LP = ftell(fp); //現在のFPの取得 printf("********** FP-> %ld *********\n", LP); fclose(fp); while (i < MAX_SIZE){ if (loopcnt == 0){ printf("ADATA[i].cmd -> %s, ADATA[i].addr -> %d, ADATA[i].bsize -> %s\n",ADATA[i].cmd, ADATA[i].addr, ADATA[i].bsize); // i++; } } 上記のような形で作成しています(一部抜粋)。 読み込むテキストデータは testA 123456 20 testA 23415 2 testB 12114567 678 のように「文字列 スペース 数字 スペース 数字」と並んでおり 値はランダムになっています。 初めて質問するため、わかりにくい記述があるかと思いますが、よろしくお願いします。

専門家に質問してみよう