[三流君] −−> [ASPで遊ぶ、失敗する] −−> [バックナンバー一覧]
−−> No.019 001行目と表示したくてRight関数を使う

001行目と表示したくてRight関数を使う



本文(発行内容)


<001行目と表示したくてRight関数を使う>

こんにちは、Ken3です。

今回も、軽くで、
001と表示したくてRight関数を使う
です。

あまり期待しないでね。

/*
 * 1.001行目と桁をそろえて表示してみたいとフト思う
*/

前回の
http://www.ken3.org/cgi-bin/test/test018-1.asp
をテストで実行すると、
行番号と5行単位で区切られて表示してました。

1行目 2002/12/05 8:11:04 , 満足
2行目 2002/12/05 8:14:12 , 普通
3行目 2002/12/05 15:53:28 , 満足
4行目 2002/12/05 15:53:44 , 不満
5行目 2002/12/05 19:41:41 , 不満
---------------------------------
6行目 2002/12/06 13:10:22 , 満足
7行目 2002/12/06 13:10:40 , 不正なパラメーターです
8行目 2002/12/06 15:28:53 , 満足
9行目 2002/12/06 15:29:34 , 普通
10行目 2002/12/06 15:29:35 , 不満
---------------------------------
11行目 2002/12/06 16:19:12 , 不満

これでもいいんだけど、
ふと、
1行目
の行番号を
001行目
と桁数を3桁固定にしてみたくなりました。

/*
 * 2.あれ?Format関数って使えないの?
*/

VBAも少し知ってる私は、
有名なFormat関数を使用して、
Format(カウンター,"000")
にすればOKだと思い軽く修正しました。

Do While ts.AtEndOfStream = False  '*6ファイルの終端になってない間ループ
    strDATA = ts.ReadLine   'ファイルからデータを一行を読む
    nLINE   = nline + 1     '行カウンタを+1する
    Response.Write Format(nLINE,"000") & "行目 " '*1行番号の表示
    Response.Write strDATA  '読み込んだデータを表示
    Response.Write "<BR>"   '改行のタグを入れる
    '行カウンタが5、10、15、、5で/って余りが0なら
    '<HR>タグを挿入する
    If nLINE Mod 5 = 0 Then
        Response.Write "<HR>"   'タグを入れる
    End If
Loop

の表示部分を、
    Response.Write Format(nLINE,"000") & "行目 " '*1行番号の表示
に変えました、余裕でしょ。

あれ?

エラー タイプ
Microsoft VBScript 実行時エラー (0x800A000D)
型が一致しません。: 'Format'
/test/test019-1.asp, line 26

ウソでしょ?エラーだよ。
なんで?

何でジャねぇダロ三流君、
ASP(VBScript)に、
Format関数は無いんだよ。存在しないの。

またまたぁ。
と
思い、少し調べてみると、やはり無いみたい。

/*
 * 3.違う関数で代用するか(Right関数を使用する)
*/

無いものはしょうがない、作るか。
なんて話を大きくしないで、
違う関数で代用してみます。

代用?どんな感じで?

よく使っている&の文字列連結
と
文字列の右から取ってくるRight関数
を組み合わせて使ってみます。

Right関数の書式は、
Right(文字列,抜き出す文字数)
なので、
Right("000" & カウンタ変数, 3)
で、
頭に000を強引に付けてから、右3文字を取ります。

カウンタが1の時は"000"に1を連結後の
0001の右から3文字取るので、
001となり
カウンタが12の時は、"000"に12を連結後の
00012の右から3文字取るので
012となります。

/*
 * 4.Right("000" & nLINE, 3)でなんとか完成
*/

Right("000" & nLINE, 3)に修正すると、

-- test019-1.asp
<%@LANGUAGE=VBScript%>
<html>
<head>
<title>Right("000" & nLINE, 3)を使用して001の三桁で表示</title>
</head>
<body>
<h2>Right("000" & nLINE, 3)を使用して001の三桁で表示</h2>
test019-1.asp<br>
動作仕様:<br>
test008.txtを読み込み、5行単位で線を引く(<HR>タグを入れる)<br>
行番号を001の三桁0付きで表示する<br>
<hr>
<%
'FileSystemObjectを生成します
Set objFS = Server.CreateObject("Scripting.FileSystemObject")

'test008.txt を読取専用モードで開く
Set ts = objFS.OpenTextFile(Server.MapPath("test008.txt"), 1, True)

Dim nLINE  '行数のカウンター
nLINE = 0  'カウンターを初期化

Do While ts.AtEndOfStream = False  '*6ファイルの終端になってない間ループ
    strDATA = ts.ReadLine   'ファイルからデータを一行を読む
    nLINE   = nline + 1     '行カウンタを+1する
    Response.Write Right("000" & nLINE, 3) & "行目 " '*1行番号の表示
    Response.Write strDATA  '読み込んだデータを表示
    Response.Write "<BR>"   '改行のタグを入れる
    '行カウンタが5、10、15、、5で/って余りが0なら
    '<HR>タグを挿入する
    If nLINE Mod 5 = 0 Then
        Response.Write "<HR>"   'タグを入れる
    End If
Loop

ts.close  '使ったファイルは閉じようよ

%>
<hr>
<A HREF="test008.txt">使用したtest008.txtを見る</A><br>
<br>

</body>
</html>
---

なんとか、
Response.Write Right("000" & nLINE, 3) & "行目 " '*1行番号の表示
で無事にできました。

http://www.ken3.org/cgi-bin/test/test019-1.asp
を見て笑ってください。

/*
 * 5.終わりの挨拶
*/

今回は、
・えっ、VBAで有名なFormat関数無いの?
・Right("000" & nLINE, 3)でかわしてみました
でした。

できないとあせるけど、
プログラムって、楽しいでしょ?

Right("000" & nLINE, 3)
は
苦肉の策だったけどね。

最強ページへの道のりは遠いなぁ〜。

またね(笑)

何か質問・感想があったら、気軽に、
メール、掲示板に書き込んでくださいね。

三流プログラマーのKen3でした。


ページフッター

ここまで、読んでいただきどうもです。目的の情報が見つかったか?少々心配しつつ、、、

三流君へ メッセージを送る

感想や質問・要望・苦情など 三流君へメッセージを送る。
返信例 XXXXさんへ
下記のフォームからメッセージを送ることができます。


あなたのお名前(ニックネーム):さん
返信は?:

アドレス:に返事をもらいたい
感想や質問↓:


(感想や質問・要望・苦情はHPで記事に載せることがあります。)

種類別のリンク や 広告など

[三流君(TOP ken3.org へ戻る)] / [ASPで遊ぶ、失敗する] / [ASP記事 バックナンバー目次]


Blogとリンク:[三流君のMemo別館]/ [ASP 三流君のソースコード置き場]/ [Ken3Video YouTubeで動画解説]
広告:

気になった ジャンル ↓を選択してください。

まぁ、基本はデータの受け取りかなぁ。
・[Form等を使用したデータのやり取り]・・・ASPと言っても、HTMLの入力フォームからデータを受け取ります。POSTやGETでやりとりを押さえますか。

次は、データの入出力 で ADOを使った(ADOで接続) と SQLの解説を少々
・[ADOでMdbファイルを使う]・・・MDBと接続して、簡単な追加・更新・削除を行った。
・[ADOでExcelと接続してみた]・・・.xlsと接続してSQLを使ってみた。
・[ADOでCSVと接続してみた]・・・.CSV テキストを読み出した。※更新・削除はできません

広告:



DBが使えるので、あまり使用しないけど、普通のテキストファイル処理
・[テキストファイル処理]・・・ファイルを開いて、書き込む。1行読み込みなどを軽く

VBScriptでFormat関数が無いなど、微妙にVBAと違うけど
[VBScript関数関係の説明]・・・少し、処理を書いてみた。
[その他処理サンプル]・・・あまり良いサンプル作れなかったけど。。。
何かの参考となれば幸いです。



[三流君(TOP ken3.org へ戻る)] / [ASPで遊ぶ、失敗する] / [ASP記事 バックナンバー目次]


広告: