検索結果 19 件

by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

書きかけの部分を除いたものを乗せようとしたら、失敗してしまったようです。ごめんなさい。 最後に、table t[]の中の中身を使用しようと思って中身を確認していたら、t[].gbv[]の中身が入っていないようなのです。 具体的には(3)~(5)の中で printf("%d,%d,%f,%ld\n,%d,%d,%d,%ld,%ld\n",t[1787].yakujou,t[1787].time_hms,t[1787].dpp,t[1787].xv,t[1791].yakujou, t[1791].gap[0],t[1791].gbp[0],t[1791].gav[0],t[1791].gbv[0...
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

oohike_time,itayose_timeの方をint型にしてiと揃えました。 大小関係は必ずitayose_time<oohike_timeです. itayose_timeは存在しない場合がありますが、その時は0で問題ありません oohike_timeは必ず存在します 代入する条件を見直したら、解決しました. #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <direct.h> #include <string.h> #include <math.h> #define CSV_MAX 500000 ...
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

デバックしてみても、デバックの出力には 'market_order.exe': 'D:\tick2012\2014\market_order\Debug\market_order.exe' を読み込みました。シンボルが読み込まれました。 'market_order.exe': 'C:\Windows\SysWOW64\ntdll.dll' を読み込みました。Cannot find or open the PDB file 'market_order.exe': 'C:\Windows\SysWOW64\kernel32.dll' を読み込みました。Cannot find or open the...
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

この掲示板次のページが存在したのですね。 銘柄ごとの出力はできたのですが、出力されたファイルの内容が希望した内容になっていなくて、どこがいけないのか探している最中なのですが、どうやら、itayose_timeとoohike_timeが関数(6,7)に渡されていないので、処理が全くなされていないようです。 どこがいけないのでしょうか? #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <direct.h> #include <string.h> #include <math.h> #define CSV_MAX...
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

あ、初歩的なところでしたね。直しました。 #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <direct.h> #include <string.h> #include <math.h> #define CSV_MAX 500000 #define MEIGARA_MAX 4000 #define START_YEAR 2012 #define STOP_YEAR 2012 #define MA_RANGE 10 #define SMOOTH 0.1 #define START 50 #define DD ...
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

直してみました。 先ほどの実行時のエラーは直りました。 その次に実際に必要なデータが入っているか確認してみたところ、t[].gap,t[]gbp,t[].gav,t[].gbvに想定した値が入っていないことが確認されました。 例えば410とt[1788].gap[0]には入っていてほしかったのですが、1843342という値が入っていました。 何が原因なのでしょうか? atoi(hituyou_data_t[j+16]);のところに問題があるのではと思い、一時変数(h)を用意して、h=j+16として atoi(hituyou_data_t[h]);とかやってみましたが直りませんでした。 #inc...
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

参考に修正してみたんですが、これを実行してみると、Debug Assertion Fiaed!と表示されました。 File : f:\dd\vctools\ctr_bld\self_x86\crt\src\strtol.c Line:94 Expresssion:nptr !=NULL これを検索してみたら,strtol関数の使い方がいけないみたいなんですが、何がいけないかよくわかりません。 #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <direct.h> #include <string.h> #in...
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

csvファイルの列番号,格納する項目
1 t.yakujou
4 t.exc
9 t.esr
8 t.time
10 t.timesec
12 t.dpp
13 t.xv
14 t.es
17~24 t.gap[0]~t.gap[7]
28~35 t[i].gbp[0]~t[i].gbp[7]
39~47 t[i].gav[0]~t[i].gav[8]
50~58 t[i].gbv[0]~t[i].gbv[8]

最大104列です
行によっては最大までない行もあります
t[i].time+t[i].timesecを後で行います
(何時何分+何秒)
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

まずはmeigara_list_readだけやってみました。 table_syutokuにも同じようにやろうと思ったのですが、必要な列のみそれぞれ別の変数に代入する方法がよくわからないのです。 #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <direct.h> #include <string.h> #include <math.h> #define CSV_MAX 500000 #define MEIGARA_MAX 4000 #define START_YEAR 2012 #define STOP_Y...
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

直りました。 #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <direct.h> #include <string.h> #include <math.h> #define CSV_MAX 500000 #define MEIGARA_MAX 4000 #define START_YEAR 2012 #define STOP_YEAR 2012 #define MA_RANGE 10 #define SMOOTH 0.1 #define START 50 #define DD 300 typedef st...
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

(3)~(5)の関数の問題点は解決しました (6)(7)を関数化してみたのですが、実行してみると(3)~(5)の時と同様に動かなくて、 今度は output.cという知らないcファイルが開き、 #else /* _UNICODE */ if (flags & (FL_LONG|FL_WIDECHAR)) { if (text.wz == NULL) /* NULL passed, use special string */ text.wz = __wnullstring; bufferiswide = 1; pwch = text.wz; while ( i-- && *pwch ) ++pw...
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

まだ直せていません。
エラーが出たときにvisual studioでデバックしてみたら、159行目に→が表示され止まりました。(下に載せた部分)

コード:

                   t[i].yakujou = t[i].yakujou * 10 +(c-'0');  break;
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

例外で落ちているというのはどういう意味でしょうか?

(3)~(5)のところでエラーとなる所を言っているのでしたら、その場合というのは、開こうとしている日が取引日ではない場合です
このコードは2012年の1月1日から順にその名前のcsvを開くようにしていて、そのファイルが無かったら、次の日のものを開くようにしています。
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

(3)~(5)の部分だけまずはj関数化してみたのですが、現状から言いますと、動きません。 (1)の関数の時に指摘されたエラーの時の exit(EXIT_FAILURE); を入れてみたら、次の日に進まなかったので以前のコード通りcontinueを使ってみました。 実行してみると「ハンドルされていない例外が発生しました」と出てしまいます。 #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <direct.h> #include <string.h> #include <math.h> #define CSV_M...
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

(1)の関数を呼び出す部分を加えたときに、f_numの最後の値も必要なことがわかり、(1)の関数に少し追加してみました。 (3)~(7)の関数化 (3)~(5)はデータの読み込み,(6),(7)は処理なので分けて考えたいです。(処理の部分は今後追加分析が必要になる可能性があるため) (3)~(5)の関数 入力:fp //(2)で読み込んだ証券コードのフォルダ内にあるcsvファイル 出力:table t[] (その日のt構造体) :basyo(t[0].excの値), :t .amkt,t .bmkt,t .mkt_i //t[]から作る :itayose_time,oohike_time(区切...
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

指摘されたdayの部分については、色々処理を追加していた名残で、消し忘れた部分で今回の処理では全く使っていない部分です。 (今回提示したコードは色々追加していた部分を省いて基本的な処理だけにしたものなので) (1)の関数化 入力:list.csv 出力:なし? 戻り値:f_name[](銘柄コードが入った配列) このように考えて、単純に関数化?してみましたが、戻り値が配列なので、これって複数の戻り値ってことですよね?ということはこのままではダメなんですよね? char meigara_list_read(char x){ if((fp = fopen("x","r")) == NULL){ p...
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

処理の流れをコメントしました。処理がもう一つありましたので(9)としてついかしました。 関数化に関しては下記のようなほんとに基本しかやったことないので、どこを調べたら(1),(3)~(7)ができそうですか? #include <stdio.h> int add( int x, int y ) { int z; z = x + y; return z; } #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <direct.h> #include <string.h> #include <math.h> #def...
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

Re: 出力ファイルを複数作るには、プログラムの高速化

関数化というのは例えば、加算するところを関数として作っておいて、その関数に引数を渡して答えだけそこで返すものですよね?今回のコードではどこの部分を関数化した方がいいのでしょうか?例えば回数と量を合計するところとかですか? 提示したソースの処理の流れは、 list.csvから処理したい銘柄コードを読み込む 読み込んだ銘柄コードのフォルダの中にあるcsvファイルを日付順に開く 1列目の値をt .yakujouに4列目の値をt .excに…使用する列の値をそれぞれ別の変数に代入する その日のcsvの最後まで行ったら、まずその日の成行注文全てを買と売に分類する 区切りとなる時間を探して変数に代入する ...
by datte123
9年前
フォーラム: C言語何でも質問掲示板
トピック: 出力ファイルを複数作るには、プログラムの高速化
返信数: 38
閲覧数: 14599

出力ファイルを複数作るには、プログラムの高速化

[1] 質問文  [1.1] 私は今、金融商品の取引データを分析したくてプログラムを書いています  [1.2] それぞれの銘柄のコード(会社の番号)のフォルダに入っている日付のついたcsvファイルを読み込んで、処理を行っています。 ファイルは銘柄コードのフォルダ内に20120104.csv,20120105.csv…という風にあります。 現在下記に示した、コードのようにcsvファイルの内容を読み込んである特定の行の時、その行の特定の列の数字を合計して1日の集計結果として出力し、それを1年分行っています。 これを複数の銘柄にわたって行っています。 今困っているのは、現在のコードだと出力ファイルが...

詳細検索ページへ移動する