#include <windows.h> #include <stdio.h> #include <io.h> #include <fcntl.h> #include "MKTSYS.h" int main(void) { int fpin; FILE *fpout; KW_DATA kw_data; // 入力ファイルのオープン if((fpin=open("C:\\MKTSYS2.TCP",O_RDONLY | O_BINARY, 0, 0)) == -1) { printf("ファイルが開けません\n"); exit(1); } // 出力ファイルのオープン if ((fpout = fopen("C:\\MKTSYSX.TCP", "w")) == NULL) { printf("ファイルが開けません\n"); exit(1); } while(!eof(fpin)) { //------------------------------------------------------------- ここに変数A2バイト分 変数B6バイト分ほしい //------------------------------------------------------------- if(read(fpin, (char *)&kw_data, KW_DATA_SIZE) != KW_DATA_SIZE) { printf("read err 2 + 6\n"); close(fpin); break; } fprintf(fpout,"%s,%s,%d,%d,%d,%d,%d,%d\n", /*ここ変数AとBを足すってと後ろ32バイトだけとれるっていってた*/ kw_data.szHour, kw_data.szMin, kw_data.iOpen, kw_data.iHigh, kw_data.iLow, kw_data.iClose, kw_data.iBid, kw_data.iOffer); } close(fpin); fclose(fpout); exit(1); return 0; }
まったく意味わからないのでよろしくおねがいしますよ! ヘッダー部分もほしかったらいってくださいよ! wueldy > 全く何のことだか解かりません、ごめんなさい (06/08/06 14:52) Groove > 俺もなんのことだかわかりません (06/08/07 00:32) Groove > ここに変数A2バイト分 変数B6バイト分ほしいってゆう部分
if(read(fpin,char変数A, 2) != 2) if(read(fpin,char変数B, 6) != 6) これつけるとどうなりますか? (06/08/10 15:01) Today > 純粋なCは詳しくわかりません! つけてみればいいじゃん!! あってる気がする とりあえずやって見て結果をみる printfを使って小まめにデバッグするといいよ (06/08/10 17:14) Shink > 今回は自信ないっていってるけどもお返事がきました。
たぶんif文で読み込んでる8つの要素を格納するための 変数だと思うので char A[2]; char B[6]; とかやって文字として読み込んで使うときにはキャストすれば いいと思います。(char型は常に1バイト)
ともいっこ聞いてたやつ 関数readはファイルから読み込んだデータの項目数を 返す関数なので、ここでは大きさがkw_data分のサイズの 項目がKW_SIZE_DATA以外の場合読み込みファイルfpinを閉じる、 という動きだと思います。 err 2 + 6 が何を意味するのかまではちょっとわかんないです。 (06/08/10 17:47)
名前 |