HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
0509
(´・ω・`)csv検索でのバッファ溢れ感知2未解決


(´・ω・`)

リンク

2009/5/9(Sat) 18:18:18|NO.25068

お世話様になります。もし対処法をご存知の方がいらっしゃいましたら、
ご教授いただけると幸いに思います。

csvfind命令では、検索結果が予め用意したバッファを越える場合、
超えた分は結果に残りませんよね。

 例:ほんとの検索ヒット行数は1万行でも、
   バッファが小さいと「ヒット300行」となる

結果がバッファオーバフローしたかどうかを検知する方法はないでしょうか?
(statかなと思ったのですがオーバーフローしても変化なしでした)

よろしくお願いいたします。(´・ω・`)



この記事に返信する


tsuka

リンク

2009/5/9(Sat) 22:00:08|NO.25077


#include "hspda.as" sdim a, 64 data = "aaaaaaaaaaaaaa,aaaaaaaaaaaaa,aaaaaaaaaaa,aaaaaaaaaaaaa,aaaaaaaaaaaa" csvsel data, ',' csvres a csvfind "a", 0, 0 mes a mes "Hit数 " + stat + "行" mes "" dupptr size, varptr(a) - 16, 4 mes "バッファサイズ " + (strlen(a) + 1) + "/" + size mes "" if (strlen(a)+1) = size { mes "バッファがいっぱい" } else { mes "バッファはまだ大丈夫" }
もっとスマートな方法がありそうですが・・・

ヘルプには

バッファオーバーフローは起こりません
と書いてありますよ・・・?



(´・ω・`)

リンク

2009/5/13(Wed) 15:41:04|NO.25127

お返事ありがとうございます。(´∀`)

>ヘルプには
>バッファオーバーフローは起こりません
>と書いてありますよ・・・?

ごめんなさい、わかりにくい質問でしたね・・・

検索結果がバッファをオーバフローする場合、オーバーした分は
捨てられるのでオーバーフローは起きない、というところまでは
把握してました。

問題は検索結果がバッファに奇跡的にピッタシ入りきったのか、
それともオーバーしてしまったのか。
それを何とか知りたいな、という意図での質問でした。

ただあれから考えてみたら、ピッタシ入りきるということは
極めてまれですし、確保したバッファいっぱい=オーバーフロー、
と把握しても問題ないかもと思い直した次第です。(´・ω・`)



いただいたソースを応用させていただきます。
ありがとうございました。(´∀`)



ONION software Copyright 1997-2023(c) All rights reserved.