|
出来るのだASP Q&A掲示板(過去LOG)
訪問数 52046
昨日 889
今日 776 【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。 |
Topに戻る
掲示板に戻る
検索
削除
管理者
|
![]()
ファイル処理、配列について
shuuさん
[2002/02/27 14:41:16]
[1751]
|
Re:ファイル処理、配列について
Tomitomiさん
[2002/02/27 15:47:20]
[1753]
Re:ファイル処理、配列について
shuuさん
[2002/02/27 16:41:53]
[1756]
結果です。
shuuさん
[2002/02/27 16:49:08]
[1757]
|
| [1751] ファイル処理、配列について |
| 投稿者:shuuさん 2002/02/27 14:41:16 |
| お久しぶりです、shuuです。またお世話になります。。。 今、コメントボード(いわゆる掲示板)を作ろうと思っているのですが、仕様が、 ・DBは使わない。comment.html(ファイル)のみ。 ・入力されたコメントが一番上に表示される。 ・comment.htmlを月ごとに管理する。ex).200202_comment.htmlを作成し、書き込んでいく。 というもので、ファイル処理がメインなので、困っています。 先ほどまで試していた方法は、 1.配列を使い、comment.htmlをReadLineで1行ずつ読み込み、配列に格納し、 あとでfor文などを逆から回して、配列の最後からcomment.htmlに書き込み、表示する。 -- 1.のソース --------------------------------------------- tmpFile = "d:\inetpub\wwwroot\template\" & yyyymm & "_comment.html" 'make object Set objTOpen = Server.CreateObject("Scripting.FileSystemobject") 'make file(write only) Set objTFile = objTOpen.openTextFile(tmpFile, 8, True, -2) i=0 Do Until objTFile.AtEndofStream comArray(i) = objTFile.ReadLine i = i+1 Loop 'for文等で逆から回す。。。 -- 1.のソース --------------------------------------------- 2.ファイルポインタをファイルの最後の行にセットして、 1行ずつ戻りつつ読み込んで、comment.htmlに書き込み、表示する。 というものです。 何に困っているかというと、 1.の方は配列の使い方がいまいち分からないことです。 Micrisoftのリファレンスページ、VBScriptの部分を参考にしているのですが、エラーが消えません。 エラーが出るのは、「comArray(i) = objTFile.ReadLine」の部分で、 「型が一致しません。: 'comArray' 」と出てきます。 2.はファイルポインタをファイル末尾にセットする方法と、 読み込みたい行の指定が分からないので、 ファイルオブジェクトを作成して、ファイルオープンしたところから先に進めません。 この部分をC++で作成してみたところ、C++では作ることができました。 やはり、C++とでは、考え方がまったく違うということなのでしょうか? うまく説明できたか不安なんですが、どなたか配列やファイルポインタについて詳しい方や、 アイディアとかありましたら、教えて下さい。 よろしくお願いします。 |
| [1753] Re:ファイル処理、配列について |
| 投稿者:Tomitomiさん 2002/02/27 15:47:20 |
| こんにちは、Tomitomiです。 > 1.の方は配列の使い方がいまいち分からないことです。 > Micrisoftのリファレンスページ、VBScriptの部分を参考にしているのですが、エラーが消えません。 > エラーが出るのは、「comArray(i) = objTFile.ReadLine」の部分で、 > 「型が一致しません。: 'comArray' 」と出てきます。 配列変数は宣言しているでしょうか? Dim comArray(配列数) とか。 配列数が動的ならば、VBScriptにあったかわかりませんが、 ReDim で配列数を変更してあげる。例:ReDim comArray(30) i=0 Dim comArray() ReDim comArray(i+1) 'ここで配列数は1 Do Until objTFile.AtEndofStream comArray(i) = objTFile.ReadLine i = i+1 ReDim comArray(i+1) 'ここで配列数を増やしてあげる Loop > 2.はファイルポインタをファイル末尾にセットする方法と、 > 読み込みたい行の指定が分からないので、 > ファイルオブジェクトを作成して、ファイルオープンしたところから先に進めません。 > この部分をC++で作成してみたところ、C++では作ることができました。 > やはり、C++とでは、考え方がまったく違うということなのでしょうか? すみません。ファイルポインタもC++もわかりません。 ここは他の人にお願いしますw |
| [1756] Re:ファイル処理、配列について |
| 投稿者:shuuさん 2002/02/27 16:41:53 |
| shuuです。 Tomitomiさん、速くてわかりやすいレスをいつもありがとうございます!! Dim comArray()とすれば動的になるのはわかっていたのですが、 > i=0 > Dim comArray() > ReDim comArray(i+1) 'ここで配列数は1 が、抜けていました。 > i=0 > Dim comArray() > ReDim comArray(i+1) 'ここで配列数は1 > > Do Until objTFile.AtEndofStream > > comArray(i) = objTFile.ReadLine > > i = i+1 > ReDim comArray(i+1) 'ここで配列数を増やしてあげる > > Loop の、 > ReDim comArray(i+1) 'ここで配列数を増やしてあげる というのは、目から鱗でした。 やっと、動的な配列の仕組みが分かりました。 ありがとうございました。 |
| [1757] 結果です。 |
| 投稿者:shuuさん 2002/02/27 16:49:08 |
| shuuです。 嬉しさのあまり、結果を書くのを忘れました。すいません。 無事、コメントボードのファイル処理の問題は解決し、 動くようになりました。 ありがとうございました!!m(_ _)m |
|
TreeBBS For ASP V.0.1.3 |