トップページphp
983コメント364KB

<%= ASP総合 %> Part.4

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/07/03(日) 12:27:28ID:???
レガシASPについて語るスレです。質問や雑談もOK。
何より手軽なので社内イントラであればまだまだ第一線です。
ASP.net については専用スレッドでお願いします。

関連スレ:
【質問】ASP.NETスレ Part2【議論】
http://pc8.2ch.net/test/read.cgi/php/1111480331/

過去スレ:
==ASP== Part 3
http://pc8.2ch.net/test/read.cgi/php/1059401269/
==ASP== Part 2
http://pc2.2ch.net/php/kako/1028/10280/1028024916.html
==ASP==
http://pc.2ch.net/php/kako/984/984840107.html
0262nobodyさん2005/12/13(火) 06:38:36ID:???
>>261
VBScriptにはネットワークにアクセスするメソッドがないからね

BASP使ってSocketで何とかするか…
またはVBでDLL作っちゃっても良さそうだけどね
0263nobodyさん2005/12/13(火) 21:54:09ID:???
>>261
DNSから引くって考えるより、実際にメールを送信してみた方が早いかも。
ドメインがなければサーバエラーを受け取れるし。
0264nobodyさん2005/12/16(金) 14:00:18ID:ys2aEO8I
初歩的な質問かもしれませんが

フォームで価格を送信して貰う→数字以外の値が入力されていた場合、エラー表示
ができません。

TypeName関数では無理だったのですが分かる方いたら教えて下さい。
0265nobodyさん2005/12/16(金) 18:50:57ID:???
>>264
isNumeric
0266nobodyさん2005/12/16(金) 19:57:23ID:???
>>264
isNaN
0267nobodyさん2005/12/17(土) 02:17:00ID:???
>>265-266
できました
本当にありがとう

0268nobodyさん2005/12/24(土) 16:15:38ID:???
特殊文字「"#$%&'()」のような文字を弾く(エスケープ)するには、
HTMLEncodeを使用する以外の方法はあるんでしょうか?
0269nobodyさん2005/12/24(土) 18:06:46ID:???
>>268
つString型
0270nobodyさん2005/12/24(土) 20:17:32ID:???
>>268
そういう特殊文字をどうしたいの?
textboxとかに入力されたそういう文字を何とかしたいのか、
そういう文字を画面に出したいのか、
querystringで渡すときにおかしくならないようにしたいのか、
input type=textの初期値として設定したいのか。
「特殊文字を弾く」なんていう日本語では何をしたいのか全く通じない。

>>269
VBScriptにそんな型なんかねえよ
0271nobodyさん2005/12/24(土) 21:47:32ID:???
>270
まぁまぁ。
TypeName("aaa")は"String"を返してくるんだし。
0272nobodyさん2005/12/25(日) 02:25:45ID:???
>>270
君のような融通のきかない馬鹿はエンジニアとして失格。
0273nobodyさん2005/12/25(日) 07:52:31ID:???
>>272みたいに融通を利かせてしまう奴が
東証のシステムみたいなのを作ってしまうんだろうな。
0274nobodyさん2005/12/25(日) 11:42:36ID:???
>>273
なるほど。>>270が融通のきかない馬鹿な使えないエンジニアであることは
認めるわけですな。ご苦労さん。
0275nobodyさん2005/12/25(日) 11:44:05ID:???
>>273
え? 東証のシステムのどこがおかしいの?
おかしいのは周辺の人間であってシステム自体は至極まっとうなもの。

やっぱお前だめだよ。まともなシステムに関わったことないんだね。
カワイソス
0276nobodyさん2005/12/25(日) 18:50:40ID:???
なんか香ばしくなってきてるな。

>>270の指摘は、言葉はくどくて感じ悪いが言っている事は至極真っ当だと思う。
>「"#$%&'()」のような文字
って、確かにどれもアルファベットや数字の類ではないけど
それらを十把一絡げに「特殊文字」と呼んで「弾く(エスケープ)」
と言われても何についてのことだか分からない…。
02772762005/12/25(日) 18:57:56ID:???
なんか傍から見てると
>>270=言葉遣いがきつく対人能力は低そうだが仕事は細かい使えるPG
>>272=大雑把な雰囲気だけ指図して満足、
     その後PGから指示漏れを指摘されると逆切れして相手を馬鹿扱い…
     という使えないSE
みたいに見えるんだけどw

しかも
>>274 11:42:36
>>275 11:44:05
これ明らかに>>272の自演だろw
0278nobodyさん2005/12/25(日) 23:10:43ID:???
>>277
いや、自作自演じゃないよ。自作自演つうのは自作自演だと
ばれないようにやるのが自作自演なわけで。しかも>>275>>274
対するレスでもないし。

やっぱ馬鹿の集まりってのは一味違うねぇ。
0279nobodyさん2005/12/25(日) 23:24:07ID:???
この板も早く強制ID制になってほしいものだ
0280nobodyさん2005/12/25(日) 23:45:05ID:???
>278
バレバレの自作自演なんて数えられないくらい存在する
今回のも非常に分かりやすいな

>>272=>>274=>>275=>>278
0281nobodyさん2005/12/26(月) 22:51:19ID:???
そういえばここって強制IDじゃないんだよね。
さすが過疎板の代名詞
0282nobodyさん2005/12/29(木) 14:08:54ID:W4CzIrpP
お初で失礼します。
PHPプログラマですが既存のシステムを大人の事情でASP5.0 on IIS5.0への移行を行うことになりました。

だいたい言語仕様やアーキテクチャの仕様を調べたのですが
一つ大きな問題に直面してしまいました。
ASPsessionIDをクッキーでなく、自動でform内にhiddenで埋め込むことはできるのでしょうか?
(GETで?の後につけてはいけない)
クッキーoffでもセッションを使えるようにしなければならないというのが当初からの命題の一つなのです
0283nobodyさん2005/12/29(木) 17:35:44ID:BZLcPqC6
>>282
普通にできる
hiddenで埋め込んだ値をPOST送信 か Session 変数を使えばOk
0284nobodyさん2005/12/29(木) 21:03:25ID:???
>282 ちなみに ASP3.0 な
0285nobodyさん2005/12/29(木) 22:37:15ID:???
ん?
Session変数はクッキーで渡されたIDをキーにサーバの値を使うものだから
クッキーレスでは使えないぞ。

それをやるとしたら…うーん。
DB使うか、ApplicationにFreeThreadedDom突っ込んで
そこにデータを出し入れするかかな。

でも実のところHiddenの防御力はCookie以下だということは
認識しておいた方がいいかと。
書き換える気になればquerystringを書き換えるのと大して変わらないので。
0286nobodyさん2005/12/30(金) 01:45:46ID:???
>>285
確かに純粋にはくクッキーの一つだけど
でもIEのクッキー設定を無視するからクッキーoff環境でも問題ないよ
0287nobodyさん2005/12/30(金) 03:26:10ID:???
IEならどうにでもなるんだけどね…
クッキーレスを要求するっていうことはすなわち
それ以外のブラウザでも使えるようにって要件ではないかと思われる
0288nobodyさん2006/01/01(日) 19:02:30ID:Vw/N6o5Y
ディレクトリ再帰検索の降順表示について質問します。

<やりたいこと>
@特定のディレクトリの下位階層を無制限に再帰検索して展開表示
Aボタンで判別して最上位ディレクトリのみ表示か、すべて再帰的に展開表示するか選択
B表示されたディレクトリに対してonClickで開閉することが可能
Cソート機能(ディレクトリ名降順表示)

@〜BについてはソースAで動作しますが、Cで四苦八苦しています。
ディレクトリ名の降順表示はソースBの仕組みを使ったり、BASP21のソート機能等も検討しましたが、
問題は入れ子のものを展開していくなかで、途中上位のディレクトリに戻るので
動的配列を使っても展開中で再定義するとおかしくなってしまいます。
ちなみにリアルタイム性と速度を求められるので、テキストやDB格納は現段階では考えておりません。

どなたかアドバイスお願いします。
0289nobodyさん2006/01/01(日) 19:04:32ID:Vw/N6o5Y
<ソースA>
<%

strPwd = Server.Mappath("./")
BTN = Request.Form("BTN")
x = 0

If BTN = "開く" Then
BTN = "閉じる"
strCatDisp = "display:block;"
Else
BTN = "開く"
strCatDisp = "display:none;"
End If

%>

<script language=JavaScript>
function ClickShow(catid){
if(document.getElementById){
if(document.getElementById(catid).style.display == 'block'){
document.getElementById(catid).style.display = 'none';
} else {
document.getElementById(catid).style.display = 'block';
}
}
}
</script>
<form method=POST>
<input type=submit name=BTN value='<%=BTN %>' class=submit>
</form>
0290nobodyさん2006/01/01(日) 19:06:01ID:Vw/N6o5Y
<%

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Call DirSearch(strPwd)

'ディレクトリ検索
Sub DirSearch(TmpDir)
Set objDir = objFSO.GetFolder(TmpDir)
Set objSubDir = objDir.SubFolders
x = x + 1
For Each objSD In objSubDir
Response.Write "<span style='cursor:hand' onClick=ClickShow('cat" & x & "')>" & vbCRLF
Response.Write objSD.Name & vbCRLF
Response.Write "</span>" & vbCRLF
Response.Write "<br>" & vbCRLF
Response.Write "<div id=cat" & x & " style='" & strCatDisp & "'>" & vbCRLF
Call DirSearch(TmpDir & "\" & objSD.Name)
Response.Write "</div>" & vbCRLF
Next
End Sub

Set objSubDir = Nothing
Set objDir = Nothing
Set objFSO = Nothing
%>
0291nobodyさん2006/01/01(日) 19:06:50ID:Vw/N6o5Y
<ソースB>

<%

Dim strFile()
Set Fs = Server.CreateObject("Scripting.FileSystemObject")
Set objFiles=Fs.GetFolder("C:\winnt\system32").Files
ReDim strFile(objFiles.Count-1)
For Each objFile In objFiles
tmp0=objFile.Path
For J=I-1 To 0 Step -1
If tmp0 < strFile(J) Then
Exit For
Else
strFile(J+1)=strFile(J)
End If
Next
strFile(J+1)=tmp0
I=I+1
Next

For I=0 To objFiles.Count-1
Response.Write strFile(I) & "<BR>"
Next

%>
02922882006/01/01(日) 19:09:55ID:Vw/N6o5Y
忠実に再現しようと思ったら、長くなってしまいました・・・orz
長文失礼しました。よろしくお願いします。
0293nobodyさん2006/01/01(日) 22:50:12ID:???
>>288
速さのためって言ってるけど。
毎回全フォルダ情報をクライアントに送りつけるっていうのは
フォルダ階層の数によるがかなり重くなると思う。

俺は子への展開時にAjax使って取り直し、みたいな形で実装したことがある。

そうしないとしたら、再帰関数内で
@フォルダ内の全子フォルダを関数内の局所配列に取得
  (ソートするならその時に)
Aその配列からフォルダ名を順に取り出し、DIVを表示して再帰
とすれば大枠変えずに出来るんじゃないか。

ちなみに
>>問題は入れ子のものを展開していくなかで、途中上位のディレクトリに戻るので
>>動的配列を使っても展開中で再定義するとおかしくなってしまいます。
動的配列の再定義を繰り返すとか文字列の追加追加っていうのは
VBScript on ASPでは禁止事項。
そうやってでっち上げると忘れた頃にパフォーマンス劣化の原因になる。
VBScript上の変数にバッファリングしようとは思わないこと。
生成したデータを片っ端から表示していけるようなアルゴリズムにするのが原則。
02942882006/01/02(月) 20:27:19ID:N1rmW7hx
>>293
アドバイス有難うございます。

>>そうしないとしたら、再帰関数内で
>>@フォルダ内の全子フォルダを関数内の局所配列に取得
>>  (ソートするならその時に)
>>Aその配列からフォルダ名を順に取り出し、DIVを表示して再帰
>>とすれば大枠変えずに出来るんじゃないか。
@は再帰的に格納するということでしょうか?
再帰するのはDIV表示が終わってからではなく、表示させる前段階で再帰処理する必要があります。
だからといってソートしている最中に再帰する方法だと動的配列の再定義をせざるを得ません。
(が、うまくいきません)

>>俺は子への展開時にAjax使って取り直し、みたいな形で実装したことがある。
クリック時のフォルダ展開は言い忘れてしまいましたが、画面遷移しないという要件なので、
確かにAjaxが適していると思います。XMLHttpRequestで試してみます。ヒント有難うございました。
0295nobodyさん2006/01/03(火) 16:07:07ID:???
>>294
>>@は再帰的に格納するということでしょうか?

いや、そうじゃなくて単階層。
再帰関数の引数は妥当な線だとあるフォルダのパスでしょ?
関数の流れをざっと書くと
1.まずそのフォルダの子フォルダ一覧を配列に取得する。
2.必要があるならソートする。
3.親フォルダのDIV開始タグを書く。
4.そしてfor〜nextで子フォルダ配列をなめながら再帰。
5.親フォルダのDIV終了タグを書く。

こんな感じでやりたいことが出来るのでは?ということ。
0296nobodyさん2006/01/04(水) 13:03:07ID:O9dUywF6
大量のデータを1ページに50件ずつ1行ずつ表示させる時って、
みなさんはどうしてますか?
今のところ、全データをとりあえず取得して、
Doループで回してるのですが、
どうも負荷が大きすぎて…。

DBの方での質問なのかなとも思ったのですが、
とりあえず。

よろしくお願いします。
0297nobodyさん2006/01/04(水) 13:36:35ID:???
>>296
漏れはこんな感じでやってる(実際はもっと細かいチェックがいろいろと)
他にもっといい方法無い?
Dim conn, rs
Dim CurrentPage, i
Const DefaultPageSize = 50
CurrentPage = Request("P")
If CurrentPage = "" Then
 CurrentPage = 1
ElseIf IsNumeric(CurrentPage) = False Then
 CurrentPage = 1
Else
 CurrentPage = CLng(CurrentPage)
End If
Set conn = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorType = adOpenKeyset
rs.LockType = adLockReadOnly
(厨略)
conn.Open
rs.PageSize = DefaultPageSize
rs.AbsolutePage = CurrentPage
rs.Open
Do Until rs.EOF Or i > DefaultPageSize
 Response.Write(rs.Fields(0).Value)
 Response.Write("<br>")
 i = i + 1
Loop
rs.Close
conn.Close
Set conn = Nothing
Set rs = Nothing
0298nobodyさん2006/01/04(水) 22:17:29ID:???
DBがPostgreSQLだったらOFFSETとLIMITを使えば簡単。
SQLServerでも取得するデータ列にユニークなキーがあれば
TOPとnot existsを駆使することで、結構負荷軽めに
レコードセットの中間だけ取り出す事が可能だよ
0299nobodyさん2006/01/05(木) 12:18:06ID:???
なるほど。
0300nobodyさん2006/01/05(木) 16:56:41ID:KdflC/KD
VBScriptで、自分のPC(Win2000)をサーバーにして作業をしています。(この書き方おかしかったらすみません。)

Excelの既存ファイルを開き、データ書き込み、別名で保存ということをしています。
その時、作業フォルダとは別に、Cの直下に、作業フォルダ、開いたファイル、保存したファイルの3つのショートカットができるんですけど、なぜなんでしょうか?仕様ですか?
0301nobodyさん2006/01/05(木) 18:09:35ID:???
>>300
そんなショートカット出来たこと無いぞ
0302nobodyさん2006/01/05(木) 18:41:21ID:???
>>300
Officeいくつ?
あと、ASP越しにやってるの?それともWSH越し?
0303nobodyさん2006/01/05(木) 22:34:33ID:???
>>296 
開始位置の格納
ページカウンタの格納
DBオープン
rs.AbsolutePosition = 開始位置

[ループ開始]

 開始位置=開始位置+1
 If 開始位置 = (ページカウンタ * 1ページあたり表示件数 + 1) Then ループ抜ける

[ループ終了]
ページングのためのリンクを表示
0304nobodyさん2006/01/05(木) 23:21:52ID:???
>>303
それは普通の方法だから重いのでは?
0305nobodyさん2006/01/06(金) 00:10:03ID:???
しかし全体の行数がものすごく多かったりする場合は
ひょっとするとReadForwardOnlyのレコードセットで空読みするより
素直にランダムアクセス可能なレコードセットを使う方が
結果としては速くなるやも知れんな。

やってみたこと無いから分からんけど。
03063002006/01/06(金) 09:03:43ID:1e+7Xjcv
レスありがとうございます。
>>301
そうですか・・・。
>>302
officeは2000です。
後半意味がわかりませんが(すみません)、wsfは使っていないので、ASP越しだと思います。
後、マクロを含んだExcelだと別名保存ができません。
参照設定なども必要なのでしょうか?

以下、ソースです。
<%
Dim XL
Dim XB
Dim OpenFile
Dim SaveFile
Set XL = Server.CreateObject("Excel.Application")
Err.Clear
On Error Resume Next
OpenFile = Server.MapPath("./TEST.xls")
SaveFile = Server.MapPath("./TEST1.xls")
XL.Visible = False
Set XB = XL.Application.Workbooks.Open(OpenFile)
XB.ActiveSheet.Cells(1,1).value = "AAAA"
XB.ActiveSheet.Cells(1,2).value = "BBBB"
XB.Application.DisplayAlerts = False
XB.SaveAS SaveFile
XL.Quit
Set XB = Nothing
Set XL = Nothing
%>
0307nobodyさん2006/01/06(金) 21:31:41ID:???
>>306
ASPでOfficeとかShellとかのユーザ的なCOMを操作するのはMSのサポート外。
つまり何が起こっても文句は言えないということ。

ASP越しだとカレントディレクトリや%TEMP%変数の概念がShellと全然違うから
C:\直下に一時ファイルができたり削除されなかったりするのは仕様かもね。
03083002006/01/07(土) 10:51:35ID:???
>>307
ふむぅ・・・。そうなんですか。
最終的には、DBからデータを取得して、Excel開いてデータを書き込んで、
マクロ起動してグラフの表示ってことをしたいのですが、前途多難ですな。
ファイルを開くのや、マクロの起動のサンプルを拾って、アレンジしながら試しているのですが、
全く思ったように動いてくれません。
0309nobodyさん2006/01/07(土) 14:31:30ID:???
>>308
ASPでグラフ表示はVMLを使うのが普通
0310nobodyさん2006/01/08(日) 06:31:53ID:???
>>309
そうでもないよ
0311バッカーです ◆KeuXjwWDdE 2006/01/08(日) 20:30:42ID:???
棒グラフなら単純に画像の横や縦の設定だけでいいんじゃないの?
ビローンと伸ばすかギュッと縮めるかっつーことで
03123002006/01/09(月) 08:51:14ID:???
スキルアップもかねてということで、Excel操作ができるようにと、提示されているのです。
VMLって、IEのバージョン限定でしか使えないんじゃないですか?
0313nobodyさん2006/01/09(月) 10:49:02ID:???
>>312
確かにIE4より前だと使えないが、
そんな古い環境じゃDHTMLもろくに使えないし、
今更そこまでサポートせんでもいいだろ。

ちなみにExcel.Applicationをサーバで使うのは
今ではMSの完全サポート外、むしろ止めとけって事になってるので
そこは気をつけておいた方がいいぞ。
元々Excelはクライアントアプリだから意味合い上ライセンス的にも微妙だし。
MS的にはOffice Web Componentでも使え、って話だ。
0314nobodyさん2006/01/09(月) 14:55:35ID:???
>>312
ASP使ってグラフ表示っていうと、イントラでしょ?
イントラならIE限定でいいんじゃね?

それにIE以外だとxlsファイルもブラウザで直接見れないんじゃなかったっけ?
0315nobodyさん2006/01/14(土) 16:04:01ID:???
>>300
SVG使えばいんでない。
とりあえず、IEでもプラグイン入れてれば見れるし。
0316nobodyさん2006/01/14(土) 16:04:19ID:6WSzNtEC
ASPのIf文の条件として
varDateというある日付の入った変数を
システム日付プラス1日より過去のものはtrueという
条件をつくりたいのですが、どう記述すればよろしいでしょうか?
よろしくお願い致します。
0317nobodyさん2006/01/15(日) 00:22:44ID:???
DateAdd(d,1,Date()) > varDate
0318nobodyさん2006/01/16(月) 16:00:20ID:???
質問です。

Response.ContentType="application/vnd.ms-excel"
Response.AddHeader "Content-Disposition" , " attachment; filename= data.csv"

Response.Write csvdata

この様な感じで、csvファイルをクライアントに保存させようとしています。
100件程度なら問題ないのですが、数千単位のレコードになると保存のダイアログは出るものの、
ダウンロードのファイル名もaspのファイル名になってしまい、保存できません。

何か対処方法はありますでしょうか?
0319nobodyさん2006/01/16(月) 16:01:10ID:UBjBFy/D
 
0320nobodyさん2006/01/16(月) 17:08:53ID:rp3amqOf
つContent-lngth
0321nobodyさん2006/01/16(月) 21:02:51ID:???
>>318
何故にexcel?
0322nobodyさん2006/01/17(火) 14:00:57ID:???
ASP.NET(aspx)ではなく、既存のASP(asp)の『Server.createObject』を
使用して呼出すことの出来るDLL(COM)を、.NET2003で作成したいのですが、
どうしても上手くいきません...orz

〜試したこと〜
@C# ⇒ クラスライブラリで作成 ⇒ 「COM の相互運用機能に登録」オプションをtrue ⇒ DLL完成
A試しに、VBSから@で作ったDLLを呼出して見る(createObject) ⇒ 成功
BASPから@で作ったDLLを呼出して見る(Server.createObject) ⇒ 失敗..orz
ファイルまたはアセンブリ名 ClassLibrary5、またはその依存関係の 1 つが見つかりませんでした。

VBSから呼出せるってことは、レジストリに
登録されてるってことだと思う。(実際に登録されている)

なんで、ASPからだと使えない?
0323nobodyさん2006/01/17(火) 14:42:30ID:???
>>322
IUSR_XXXがDLLに対するアクセス権を持っていない……とか。
03243222006/01/17(火) 15:03:56ID:???
DLLをC:\winnt\system32の下へ持っていったら...orz...動いた...

なんで?レジストリには、DLLのファイルパスまで
あったし、VBSも動いてた!!

全然、わからない!!
0325nobodyさん2006/01/17(火) 17:18:24ID:???
つ 自分のアカウントの PATH とIISサービスの PATH が同じとは限らない。
  というか違う。
0326nobodyさん2006/01/17(火) 21:05:04ID:4JhQoD7f
aspのソースって暗号化出来るんでしょうか?
dbの接続のパスとか書いてるそのままのソースを置くのは、
ちょっとアレかな〜と思いまして。
0327nobodyさん2006/01/17(火) 21:14:51ID:???
>>326
スクリプト エンコーダ
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/SeconScriptEncoderOverview.asp
0328nobodyさん2006/01/17(火) 23:07:48ID:???
DBの接続文字列とかはレジストリに登録してそれをCOMあたりで呼び込むのがいいと思う。
(レジストリってVBScriptから直接呼び出せたっけ?)
0329nobodyさん2006/01/18(水) 02:57:39ID:???
WshShell.RegRead()使えば読める……はず。そいや使ったことないや。
0330nobodyさん2006/01/18(水) 18:40:54ID:???
>>326
このあたりをどぞ。ASP.NETとありますがASPでも適用できるかと。
Building Secure ASP.NET Applications: Authentication, Authorization, and Secure Communication
Storing Database Connection Strings Securely
ttp://msdn.microsoft.com/security/securecode/dotnet/default.aspx?pull=/library/en-us/dnnetsec/html/SecNetch12.asp#secnetch12_storingdatabaseconnectionstrings

・Encrypted with DPAPI
・Clear text in Web.config or Machine.config
・UDL files
・Custom text files
・Registry
・COM+ catalog
03316382006/01/21(土) 13:32:23ID:GsEUkG9T
ASPにてシステム日付の3日前の日付を取得したいのですが、
下記のようにすると変数varAに 38735 という数字が入ってきます。
システム日付の1日後のvarBには 2006/01/22 と入るのですが、
x日前の日付の取得はどうすればよろしいのでしょうか?

varA =DateDiff("d", 3, date)
varB =DateAdd("d", 1, date)
0332nobodyさん2006/01/21(土) 14:49:32ID:???
>>331
varB =DateAdd("d", -3, date
0333nobodyさん2006/01/21(土) 18:49:21ID:AIj0kho+
326に便乗質問
俺はweb.configに置いてるけどweb.configはサーバーだけで動くとか何とか
呼んだ気がするから安心してたけどひょっとして安心ではない?
03346382006/01/21(土) 19:00:34ID:GsEUkG9T
>>332
なるほど、DateAddを使うですね。
ありがとうございました。
0335nobodyさん2006/01/22(日) 01:05:17ID:???
>>333
ここはASP.NETスレじゃないよ><
0336nobodyさん2006/01/27(金) 14:12:25ID:???
ASP → ASP.NET より
ASP → PHPのほうが、乗換えとして、自分の好みに合っている気ガス
0337nobodyさん2006/01/27(金) 21:52:21ID:???
そんなあなたにpythonですよ
0338nobodyさん2006/01/29(日) 22:28:57ID:???
ASPにはhtmlエスケープの関数ってありますか?
昔どこかのサイトで見かけた気がするのですが
失念してしまいました…。
0339nobodyさん2006/01/29(日) 23:25:38ID:???
>>338
JScriptならできる
0340nobodyさん2006/01/30(月) 00:12:50ID:???
>>339
レスありがとうございます。
VBscriptで書いてしまったので、
replaceでしこしこやってみますorz
0341nobodyさん2006/01/30(月) 03:19:35ID:???
>>338-340
Server.HTMLEncode() のことじゃないの?
そうならVBScriptでも使えるけど。
0342nobodyさん2006/02/01(水) 18:59:54ID:Im+A4ONK
かなり行き詰ってて助けてください。

Framework2.0(C#)ベースで作ったDLLをASPで動かしたいのですが、
XPのiis上ではうまく動くのに2003Serverのiisではクリエイトで失敗します。

Set hoge = Server.CreateObject("hoge.hoge")←ここで失敗

両環境下でRegAsmで登録しFrameworkのバージョンも同一です。

なぜ動かないか分からないのですが、
どなたかご教授お願いします。
0343nobodyさん2006/02/01(水) 21:22:49ID:???
>>342 エラー メッセージ プリーズ
03443422006/02/01(水) 21:45:57ID:???
>>343
Server オブジェクト エラー 'ASP 0177 : 80070002'

Server.CreateObject に失敗しました

です。
権限とかの問題でしょうか?
0345nobodyさん2006/02/01(水) 22:08:21ID:???
>>342 %SystemRoot%は、両方のOSで同じ名前?
03463422006/02/01(水) 22:18:40ID:???
>>345
2003サーバの%SystemRoot%が標準で:/windows/system32なら同じにしてます。
03473452006/02/01(水) 22:21:21ID:???
>>342 違ってたらゴメンネ。海外のサイトで同じような質問していて

I suspect this is because the DLL is not in a particular location that the CLR is looking
when you create the object. Try copying the DLL to C:\Winnt\System32 or C:\Windows\System32
depending upon whether you have Windows 2000 or Windows XP Professional / 2003 Server.
って答えてたから。
03483422006/02/01(水) 22:33:26ID:???
>>347
確認しましたらC:\windows\system32にDLLをおいてTLBを作成しているので
ほかに原因があると思います。

もしかしてRegasmで登録しているのが原因でしょうか?

03493422006/02/02(木) 02:42:30ID:bVYIWBsA
どうしても解決しないので一旦age
0350nobodyさん2006/02/03(金) 02:47:28ID:???
ASPでIPアドレスの比較(?)をしたいと考えています。
IPマスクで192.168.1.0/24のような形式のもの(20項目程度)と$ipを比較して含まれていれば真を返すにはどのようにすればいいのでしょうか?
鯖はWinXP ProのIIS(.net Framework無し)、開発環境はVS.net 2005 ExpressEditionです。
0351nobodyさん2006/02/03(金) 20:14:27ID:???
>>350
正規表現?
0352バッカーです ◆KeuXjwWDdE 2006/02/03(金) 20:44:49ID:???
範囲の問題じゃないの?

0353nobodyさん2006/02/04(土) 01:23:48ID:???
まんま24ビットの整数にしてAnd取る……って話ぢゃないのか。
0354nobodyさん2006/02/04(土) 08:16:33ID:???
.NETは知らんがVBSじゃオーバーフローしたような記憶が
>24ビットの整数にしてAnd取る
0355nobodyさん2006/02/04(土) 10:46:54ID:???
>>350
IPが連続してるなら正規表現、
バラバラであれば配列にして比較するか、DBを使ってるならSQLだな。
0356nobodyさん2006/02/04(土) 16:29:50ID:???
VBSでもちゃんとCLngすれば24bitも大丈夫だよ
03573502006/02/06(月) 02:39:19ID:???
レスありがとうございます。
$ipになってましたがipのミスですorz

検査してくれるような便利な関数があれば良いなぁと考えてたのですが無いのですか・・・。
やはり/で2つに分けて地道にホゲホゲさせないと駄目なのでしょうか?
0358nobodyさん2006/02/06(月) 10:00:27ID:kQjET4Ig
文字列から検索対象文字がいくつあるかカウントする関数はありますでしょうか?
strTest という変数からchar(10)の改行文字のカウントをしたいのですが。
0359nobodyさん2006/02/06(月) 21:24:02ID:???
俺なら地道にFunctionステートメントで、InStr()関数と
For〜Next文でループさせて数えるけどね
0360nobodyさん2006/02/06(月) 22:22:25ID:???
>>350
ipaddrとipnetの間で比較する流れを完全に想像だけで書いてみるw

function conv(ip)
Dim ipary
ipary = split(ip,".")
conv = clng(ipary(0)*256^3) + clng(ipary(1)*256^2) + clng(ipary(2)*256) + clng(ipary(3))
end function

function bitmask(masklng)
Dim mask
mask = clng(0)
for i = 31 to 31-masklng
mask = mask + clng(2^i)
next
bitmask = clng(mask)
end function

function check(ipaddr,ipnet)
ary = split(ipnet,"/")
netaddr = conv(ary(0))
mask = bitmask(ary(1))
if (clng(netaddr) = clng(conv(ipaddr)) and clng(mask)) then
check = true
else
check = false
end if
end function

clngの挟み方は適当。多分使いすぎ。
bitmask辺りは99%の確率でバグってる悪寒w
03613602006/02/06(月) 22:24:50ID:???
ミスった!
bitmaskのforはstep -1 でw
0362nobodyさん2006/02/07(火) 09:32:11ID:o795fuVl
レコードセットで、[列名]hoge1,hoge2,hoge3,hoge4.....hogeXXの項目のデータを取ってきて、
このデータを変数に格納したいのですが、
今のところ、
hoge1 = objRS("hoge1")
hoge2 = objRS("hoge2")
hoge3 = objRS("hoge3")
と言ったかなり格好悪いやり方をしています。
これを、スマートにするにはどうしたらいいのでしょうか。

ちなみに
1回目のレコードセットはhoge1〜hoge20
2個目のレコードセットはhoge1〜hoge25
と言ったように、
項目数も変わってくるんです。
■ このスレッドは過去ログ倉庫に格納されています