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


HSPTV!掲示板


未解決 解決 停止 削除要請

2014
0720
山田保存を33KB以上にするには?4解決


山田

リンク

2014/7/20(Sun) 16:47:19|NO.62996

いつも大変お世話になっております

下記のサンプルソースを使って、WEBページをDLしているのですが、
保存したファイルが33KBになっていて、すべて途中で切れてしまいます。

sdim sDest, 90000を付けても変わりませんでした。

全てをDLするにはどうしたら良いのでしょうか?
すみませんが、どなたか解決方法を教えてください。


;***** URLを指定してhtmlテキストを取得 (comobj47.hsp) ***** ;※WinNT系のみ動作します。98系は不可 (Win2000で動作確認) ;Microsoft Data Access Components (MDAC) 2.8 SP1以降が必要 ;98系は、下記よりMDACをダウンロードすることにより、ADODB.Stream オブジェクトが ;使えるようになります。(URLは長いので、折り返しています。) ; ;▼▼▼▼ Microsoft Data Access Components ダウンロード ▼▼▼▼ ;http://www.microsoft.com/downloads/details.aspx? ;FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c&DisplayLang=ja #define adTypeBinary 1 #define adSaveCreateNotExist 1 #define adSaveCreateOverWrite 2 ;▼mesboxを作成 ReturnHTML="" font "MS ゴシック",14 : objmode 2 mesbox ReturnHTML,ginfo(10)-4,ginfo(11)-24,5 objectID=0 : objsel objectID ;▼URLを指定 sURL = "http://www.onionsoft.net/hsp/" ;▼セーブする場合のHTML名 (任意) sDest = dirinfo(0)+"\\dsthtml.htm" ;▼CharCodeを指定 charcode = "Shift_JIS" ;charcode = "UTF-8" title sURL newcom objXMLHTTP, "Microsoft.XMLHTTP" objXMLHTTP->"Open" "GET", sURL, 0 objXMLHTTP->"Send" ;▼status OKならHTMLテキストファイルを指定のCharCodeで取得 if objXMLHTTP("status") = 200 { newcom objRS,"ADODB.Stream" if stat!0 : dialog "ADODB.Streamがサポートされていません。",0 : end objRS("Type") = 1 objRS->"Open" sHtml=objXMLHTTP("ResponseBody") objRS->"Write" sHtml objRS("Position") = 0 objRS("Type") = 2 objRS("Charset") = charcode ReturnHTML=objRS("ReadText") ;ファイルとして保存する場合 ;objRS->"Savetofile" sDest,adSaveCreateOverWrite objRS->"Close" }else{ dialog "接続に失敗致しました。",0,"エラー" } objprm objectID,ReturnHTML if vartype(objRS)==6 { if varuse(objRS)==1 : delcom objRS } delcom objXMLHTTP stop



この記事に返信する


KOMARI

リンク

2014/7/20(Sun) 18:19:23|NO.62997

sDestは保存する名前が格納されているだけで、保存するサイズには関係なのでは?
さて、こちらで試してみたら248KBでも保存できました。なんででしょうね(・ω・)……
案としては、山田さんの環境でReturnHTMLが33KB以上の受け取りに成功しているなら、それをbsave等で保存されてはどうでしょうか?
objRS->"Savetofile"で保存するのと、bsaveで保存するので意味が違った場合はごめんなさい。
そもそも取得するURLによっては正しく保存できない、とかいうことは無いと信じたい(ゲー'A`ェ)



山田

リンク

2014/7/20(Sun) 18:45:58|NO.62998

KOMARI様

どうもありがとうございます。

すみません、UTF8からSJISに
文字コードを変換した後に33KBになってしまっているようでした
その場合はどうしたら良いでしょうか?


notesel 最新商品IDページbuf noteload "最新商品IDページ.txt" nkfcnv res,最新商品IDページbuf //SJISに変換 notesel res notesave "最新商品IDページ.txt"



cats

リンク

2014/7/20(Sun) 19:00:54|NO.62999

nkfcnvの第4パラメータで出力先の最大バッファサイズを指定しないと
デフォルトの32KBが設定されてしまいます。
第4パラメータに十分なサイズを設定する必要があります。



山田

リンク

2014/7/20(Sun) 19:10:27|NO.63000

cats様

どうもありがとうございます

nkfcnv res,最新商品IDページbuf,,,50000

このように設定したらうまくいきました



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