ショッピングモール  掲示板ランキング


【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板1こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    使用可能タグ一覧

No.2746

リソースファイルとデータファイルからそれぞれデータを読み込んで
投稿者---蛙(2004/10/04 19:08:53)


はじめまして。よく見ているのですが初めて投稿します。蛙といいます。
今現在、やっていることはリソースファイル{(複数有り)<例:NO = d ,MAME = 3s , ADDR = 5s > これで一つ。}とデータファイル{(複数有り)<例:1,aaa,AAAAA,2,bbb,BBBBB,3,ccc,CCCCC,...>をそれぞれ読み込んで、そのリソースファイルの形式でデータファイルを出力するというものです。一つのファイルだけの入出力ならわかるのですが、その指定したリソースファイルでデータファイルを出力とうところがどうやればいいかわかりません。ヒントなどで結構ですのでご指導お願いします。m(__)m


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:リソースファイルとデータファイルからそれぞれデータを読み込んで 2747 Sciggepy 2004/10/04 19:18:55


No.2747

Re:リソースファイルとデータファイルからそれぞれデータを読み込んで
投稿者---Sciggepy(2004/10/04 19:18:55)


リソースファイル: NO = d ,MAME = 3s , ADDR = 5s
データファイル: 1,aaa,AAAAA,2,bbb,BBBBB,3,ccc,CCCCC,...
の場合、どのような出力を期待していますか?


この投稿にコメントする

削除パスワード

No.2750

Re:リソースファイルとデータファイルからそれぞれデータを読み込んで
投稿者---蛙(2004/10/05 09:01:40)


>リソースファイル: NO = d ,MAME = 3s , ADDR = 5s
>データファイル: 1,aaa,AAAAA,2,bbb,BBBBB,3,ccc,CCCCC,...
>の場合、どのような出力を期待していますか?
1,aaa,AAAAA
2,bbb,BBBBB
3,ccc,CCCCC
以下続く・・
と言う感じです。
もしリソースファイルがNO = d ,MAME = 3sなら
1,aaa
2,bbb
3,ccc
といった感じです。


この投稿にコメントする

削除パスワード

No.2751

Re:リソースファイルとデータファイルからそれぞれデータを読み込んで
投稿者---Sciggepy(2004/10/05 18:47:04)


>>リソースファイル: NO = d ,MAME = 3s , ADDR = 5s
>>データファイル: 1,aaa,AAAAA,2,bbb,BBBBB,3,ccc,CCCCC,...
>>の場合、どのような出力を期待していますか?
>1,aaa,AAAAA
>2,bbb,BBBBB
>3,ccc,CCCCC
>以下続く・・
>と言う感じです。
NO、MAME、ADDRというのは何ですか?あと、dと3sや5sのsの意味が解りません。


この投稿にコメントする

削除パスワード

No.2752

Re:リソースファイルとデータファイルからそれぞれデータを読み込んで
投稿者---RAPT(2004/10/05 22:45:13)


Sciggepyさん>
NO、MAME、ADDRというのは何ですか?
多分、項目名(DB的には列名?)
dと3sや5sのsの意味
多分、書式指定子。%d, %3s, %5s, スレ主> 普通の言葉で表現してください。 以下、憶測と想像と創造と思い込みによる質問例。 --------------------------------------------------ここから---------- 【概要】 「データファイル」と、「データファイル」のデータ形式が記述された 「リソースファイル」があります。 そのリソースファイルの形式でデータファイルを出力するというものです。 【質問内容】 一つのファイルだけの入出力ならわかるのですが、その指定したリソース ファイルでデータファイルを出力というところがどうやればいいかわかり ません。ヒントなどで結構ですのでご指導お願いします。 【ファイルの定義】 「リソースファイル」に「データファイル」の項目名と書式が記述されています。 書式は、printf()などの書式指定子のようになっています。 たとえば、「NO = d ,MAME = 3s , ADDR = 5s」とあったとき、 列名 型 NO int型 NAME char型x3 ADDR char型x5 を1レコードと定義します。 「データファイル」には、カンマ区切りで上記のレコードが連続して入っています。 たとえば、「1,aaa,AAAAA,2,bbb,BBBBB,3,ccc,CCCCC,...」となっています。 【私の作ったソースコード】 ・・・ --------------------------------------------------ここまで---------- ■確認事項 この処理の流れは、
  1. 「入力用リソースファイル」の読み込み
  2. 「入力用リソースファイル」のデータを解釈
  3. 解釈した「入力用リソースファイル」の書式を元に「データファイル」の読み込み
  4. 「出力用リソースファイル」の読み込み
  5. 「出力用リソースファイル」のデータを解釈
  6. 解釈した「出力用リソースファイル」の書式で「データファイル」の書き出し
といった流れになるかと思われますが、どこが問題ですか?
一つのファイルだけの入出力
これは、どういうことですか? 対応としては、
  • 「入力用リソースファイル」の書式をscanf系書式指定子に変換
  • 「出力用リソースファイル」の書式をprintf系書式指定子に変換
の2点が解決できれば造作もないことと思われますが、いかがでしょうか? それから、大事な事ですが、開発環境は、何ですか? あなたの作ったコードを提示してみてください。



この投稿にコメントする

削除パスワード

No.2753

Re:リソースファイルとデータファイルからそれぞれデータを読み込んで
投稿者---蛙(2004/10/06 17:11:07)


Sciggepyさん、RAPTさん>
お返事遅くてすいません。
>NO、MAME、ADDRというのは何ですか?
項目名です。↑は例で色々なパターンを想定しなくてはいけません。

>dと3sや5sのsの意味</blockquote>
私の考えではd=int型(4bit),3s=char型の3バイト,5s=char型の5バイトです。

>普通の言葉で表現してください。
すいません。うまく表現できなくて;どういう風に言えばよいかわからなくて・・・;

>以下、憶測と想像と創造と思い込みによる質問例。
この質問例を使わせていただきたいと思います。すいません。
--------------------------------------------------ここから----------
【概要】
「データファイル」と、「データファイル」のデータ形式が記述された
「リソースファイル」があります。
そのリソースファイルの形式でデータファイルを出力するというものです。

【質問内容】
一つのファイルだけの入出力ならわかるのですが、その指定したリソース
ファイルでデータファイルを出力というところがどうやればいいかわかり
ません。ヒントなどで結構ですのでご指導お願いします。

【ファイルの定義】
「リソースファイル」に「データファイル」の項目名と書式が記述されています。
書式は、printf()などの書式指定子のようになっています。
たとえば、「NO = d ,MAME = 3s , ADDR = 5s」とあったとき、
列名 型
NO int型
NAME char型x3
ADDR char型x5
を1レコードと定義します。

「データファイル」には、どのようにデータファイルが入っているかは自分で考えて作らなくてはなりません。
たとえば、「1,aaa,AAAAA,2,bbb,BBBBB,3,ccc,CCCCC,...」、
もしくは、「1aaaAAAAA2bbbBBBBB3cccCCCCC....」、
もしくは、「バイナリデータで・・・(バイナリになるとどう書けばいいかわからないもので・・・すいません。」
となっています。

【私の作ったソースコード】

(リソースファイル)
No = d Name = 6s Addr = 8s
(データファイル)
1aaaaaaAAAAAAAA2bbbbbbBBBBBBBB...10jjjjjjJJJJJJJJ
/* データファイルとリソースファイルを読み込みリソースファイルの型に合った形で出力する */
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct DATA{
char name[100]; /* リソースファイルのデータの種類を入れる */
int size; /* リソースファイルのバイト数を入れる */
char kata[100]; /* リソースファイルのそれぞれの型を入れる */
}DATA;
void main(){
FILE *d_fp, *r_fp;
struct DATA data[20];
char inbuf[100];
int i,j=0,size=0; /* i,jはfor文で使う。sizeはリソースファイルのsizeの合計を入れる */
char temp[100],temp1[100]; /* 代わりに入れとく入れ物 */
int nRead;

if((r_fp = fopen("resorcsfile.txt","r"))==NULL){
printf("リソースファイルオープンエラー\n");
}
if((d_fp = fopen("datafile2.txt","r"))==NULL){
printf("データファイルオープンエラー\n");
}

for(i=0;;i++){
fscanf(r_fp,"%s ",&temp);

if(temp[0] == temp1[0]){ /* これが成り立てばfor文終了 */
break;
}
strcpy(temp1 ,temp);
/* リソースファイルが no = d name = 6s addr = 8s だった場合に
読み込んだ順に 1 2 3 4 5 6 7 8 9 となるので以下のようにした */
if((i+2+1)%3==0){ /* ↑でいう1,4,7番目を取得 */
strcpy(data[j].name ,temp);
}
if((i+1)%3==0){ /* ↑でいう3,6,9番目を取得 */
strcpy(data[j].kata ,temp);

if(temp[0] == 'd'){ /* dの場合int型(4bit) */
data[j].size = 1;
strcpy(data[j].kata ,"int");
}else{ /* sの場合それぞれのbit */
data[j].size = atoi(data[j].kata);
strcpy(data[j].kata ,"char");
}

j++;
}

}
for(i=0;i<j;i++){
printf("name[%d] = %s \n",i,data[i].name);
printf("size[%d] = %d \n",i,data[i].size);
printf("kata[%d] = %s \n",i,data[i].kata);
size = size + data[i].size;
}
printf("size = %d \n",size);
inbuf[0] = 0x00;

for(i=0;;i++){
nRead = fread(inbuf,sizeof(char),size,d_fp);
if(nRead < 15){
break;
}

printf("%s\n", inbuf);

}

fclose(d_fp);
fclose(r_fp);

}
--------------------------------------------------ここまで----------

■確認事項
この処理の流れは、
>
>「入力用リソースファイル」の読み込み
できてると思います。
>「入力用リソースファイル」のデータを解釈
構造体に入れ色々なパターンに対応できるようにしようと思っています。
>解釈した「入力用リソースファイル」の書式を元に「データファイル」の読み込み
一応やったつもりですが・・・。
>「出力用リソースファイル」の読み込み
>「出力用リソースファイル」のデータを解釈
>解釈した「出力用リソースファイル」の書式で「データファイル」の書き出し
一応できてるんですが、int型のところで数が二桁になったときが・・・;
>どこが問題ですか?
バイナリでできればしたいのですが、どうすればいいのかがわかりません。
>一つのファイルだけの入出力。これは、どういうことですか?
今回のように一つの例を取り上げた場合はうまくいく?のですが、色々な場合(リソースファイル、データファイルとも)を想定してできるようなプログラムにしなくてはならない。ということです。
>対応としては、
>
>「入力用リソースファイル」の書式をscanf系書式指定子に変換
>「出力用リソースファイル」の書式をprintf系書式指定子に変換
>の2点が解決できれば造作もないことと思われますが、いかがでしょうか?
私のなかでは、構造体をヘッダーファイルにしてやりたいのですが、(そうするのが良いといわれていまして)今の段階ではこれがやっとの状況です。

>それから、大事な事ですが、開発環境は、何ですか?
WindowsXP [Version.5.1.2600]でK2Editorにプログラムを書き、コマンドプロンプトでコンパイルしています。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    使用可能タグ一覧




掲示板提供:Real Integrity