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


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0515
杉村祐介”\n”ではない改行コード6解決


杉村祐介

リンク

2012/5/15(Tue) 11:52:11|NO.46653

ちょっと困ったことになったので相談させて頂きます。


今、FC2のアクセス解析のログダウンロード機能で保存したcsvデータを
HSPでグラフにまとめたりできないかと思案中なのですが、
ファイルをロードする時点で、改行が反映されませんでした。

エクセルやノートパッド、HSPのスクリプトエディタでは
きちんと改行されるのですが、
"\n"での改行ではないためnoteloadで読み込むと
一行のデータとして読み込んでしまいました……。

これを改行として読み込むことはできませんか?
(もしくはfc2のログを読み込んでグラフにするツールでもいいです(;´∀`)
どうぞよろしくお願いします!



この記事に返信する


(´ω`)

リンク

2012/5/15(Tue) 14:56:36|NO.46654

んー、とりあえずバイナリ単位で変換処理をするのが、素直なやり方ですね。

noteloadで読み込んだ文字列変数を対象に、2bytes単位でその改行コードに該当するコード
ではないかチェックし、該当するなら"\n"に変換し、しないならそのままで別の文字列変数に
コピー。
その後、変換後のバイナリが入った変数をnoteselで選択すればおk。

拡張プラグイン"mod_regexp.as"内のreplaceがバイナリにも対応してるなら、
bloadで読み込んだ文字列変数を対象にreplace命令を実行すればいいかもです。
そこらへんは色々試してみてください。(´ω`)



fortunehill

リンク

2012/5/15(Tue) 15:20:38|NO.46655

/*ご参考(nkfについてもお調べ下さい)*/

#include "hspinet.as" ss = "aaa\nbbb\n" SetNkfOption "Lu" ;改行コードLF(0A)に変換する。 NkfConvert ss,ss mesbox ss,200,50 wait 100 SetNkfOption "Lw" ;改行コードCR+LF(0D0A)に変換する。 NkfConvert ss,ss objprm 0,ss



(´ω`)

リンク

2012/5/15(Tue) 15:59:06|NO.46656

アラヤダ、もっとスマートなやり方が。
「バイナリー!(キリッ」とか恥ずかしいわ……(*-ω-)



杉村祐介

リンク

2012/5/15(Tue) 20:05:43|NO.46658

お二方、どうもありがとうございます。
NKFについて調べて、実行してみたのですが
「動作を停止しました」というWinのエラーが出てしまいました。
あまりに長い文字列だったのがいけなかったのでしょうか(´・ω・`)

バイナリ単位でも作ろうと思いましたが、
改行コードが分からないので作りようがありませんでした。
どうやら1byte単位での改行だというところまでは突き止めたのですが……

引き続きアドバイスお願いしたいです。



暇人

リンク

2012/5/15(Tue) 20:14:11|NO.46659

保存したcsvは改行コードとして10が使われていて
note系命令は13が無いと改行と認識しない

改行が目的じゃなく行ごとにデータが分けられれば意良いと思うので
splitを使った例

dialog "csv",16,"csvファイル" if stat=0 {end } notesel csv noteload refstr str_code10=strf("%c",10) //文字コード10を文字に変換 split csv,str_code10,csv_Line //str_code10で分割 Line_max=stat repeat Line_max mes csv_Line(cnt) loop //おまけ(データ毎に違う配列に分ける) screen 1,640,480,0,640,200 repeat Line_max csv_temp=strtrim(csv_Line(cnt),3,'\"') //「 " 」を取り除く split csv_temp,",",IP_Address(cnt),Host_Name(cnt),Access_Time(cnt), Access_URL(cnt), HTTP_Referer(cnt),User_Agent(cnt) mes Access_Time(cnt)+" "+Host_Name(cnt) loop



杉村祐介

リンク

2012/5/16(Wed) 13:23:27|NO.46663

>>暇人さん
おお、無事解決しました、ありがとうございますヽ(´∀`*)ノ
改行コードは10なんですね……勉強になります。
これで開発が続けられそうです。

fortunehillさんも(´ω`)さんもありがとうございましたm(_ _;)m



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