ご意見箱 (作成物の箱用)

作成したVBAに対するご意見やバグ報告などお書きください。

yFlowGenの出力ファイル分割 - tmm

2024/12/04 (Wed) 22:04:41

toowakiさん こんにちは

1つのファイルに多数の関数を含むソースコードを食わせるとそれが1つの大きなdotファイルになってしまうのですが1関数1頁のように出力ファイルを分割出力できないでしょうか。それとも入力ファイルを分割してから食わせるしかない?

Re: yFlowGenの出力ファイル分割 - toowaki

2024/12/05 (Thu) 04:54:54

tmm様

ご連絡ありがとうございます。

不思議ですね。tmm様の現象は仕様と異なる動きになっているように思えます。

コマンドラインから実行する場合、通常(デフォルト設定)だと、関数ごとにdotファイルが出力され、-out1fileをつけると1つのdotファイルとして出力されます。

また、エクセルファイルのyFlowGenGUI.xlsmを使う場合は、「1ソースファイルにつき1gml/1dotを出力する」というチェクボックスをoffして実行することで別々に出力されます。

もしよければ、toowaki.fc2@gmail.comにCコードのファイルをお送りいただければ、確認させていただきます。

Re: yFlowGenの出力ファイル分割 - tmm

2024/12/05 (Thu) 20:48:49

toowakiさん こんにちは

迅速なご回答ありがとうございます
ExcelのGUIから起動しているのですが「1ソースファイルにつき1gml/1dotを出力する」のチェックを外した状態でソースファイルを読み込むとファイルの先頭にある1つの関数のdotファイルだけ作成して終了してしまいます。
入力ファイルが大きすぎたのかと思い同梱されていた\sample_c_source\sample_compx.cでやっても先頭の func_f 1個分のfunc_f.dotファイルしかできません
次に「1ソースファイルにつき1gml/1dotを出力する」のチェックを入れて実行させると3個の関数がすべて処理され3つのフローが並んだdotができますが、これが例えば100個ぐらい関数を含む10000行くらいのソースだと2Mbyteくらいのdot、8MbyteくらいのSVGが生成され畳一畳?くらいの図になってしまい何とかできないかと思いました

Re: Re: yFlowGenの出力ファイル分割 - toowaki

2024/12/06 (Fri) 03:43:33

tmm様

ご説明いただきありがとうございます。
yflowGenはCコード内のインデント数を確認しながらコードの関数の最初と最後を認識し、関数の開始から最後を一つのまとまりとしてdotファイルとして出力します。
おそらく、コードの記述のどこかでyflowGenが関数の終わりを認識できず、今回の事象が発生したものと思われます。
事象を確認させていただきますので、もし可能でしたら、機密情報を取り除いた事象が再現するCコードのサンプルファイルをtoowaki.fc2@gmail.comにお送りいただけますと助かります。

Re: yFlowGenの出力ファイル分割 - tmm

2024/12/06 (Fri) 10:40:43

toowakiさん こんにちは

早速のご回答ありがとうございます
やっと原因がわかりました!!
GraphvizはインストールしてあったのですがPATHが通っていませんでした。そのためファイルの先頭の関数をdotにした後、dot.exeでSVG変換しようとして失敗してそこで強制終了したために先頭関数.dotしかできなかったようです。コマンドプロンプトが瞬時で閉じるので気付きませんでした。お騒がせしましてすみません
複雑なフローでも破綻せずに描画していてフローチャートの出来は素晴らしいです。このようなツールを公開していただきありがとうございます!

あと細かいところですが"XXX.dot"ファイルが変換されると"XXX.dot.svg"と拡張子が長くなるのと
長い関数名で引数リストのところが改行されている表記:
void func
(int x,int y,int z)
とかだと生成されるdotファイル名が").dot"になってしまうことくらいです(図の中身の関数名は大丈夫)

Re: Re: yFlowGenの出力ファイル分割 - toowaki

2024/12/06 (Fri) 21:30:31

tmm様

ご確認、ご連絡いただきありがとうございます。
GraphvizのPATHの問題だったということですね。
マニュアルにPathを通す必要があることを追加しておこうと思います。

名前
件名
メッセージ
画像
メールアドレス
URL
文字色
編集/削除キー (半角英数字のみで4~8文字)
プレビューする (投稿前に、内容をプレビューして確認できます)

Copyright © 1999- FC2, inc All Rights Reserved.