このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

ファイルの読み込み

発言者:gon
( Date Monday, July 14, 1997 18:52:48 )


基本的な質問で申し訳ありませんが、教えていただきたいことがあります。

AppleScriptでcgiを書いておりますが、テキストファイルのデータを読み
込むのはどう書けばいいのでしょうか。


何分、初心者なもので単純な質問で申し訳ありませんが、宜しくお願い致し
ます。

田中求之 さんからのコメント
( Monday, July 14, 1997 19:48:24 )

読み込むファイルのフルパスが myFile に収められているとして、
( myFile = "MacintoshHD:Folder:datafile" というように)

set myRef to open for access myFile
set myData to read myRef
close access myRef

の3行で、ファイルのデータを myData に読み込むことが可能です。

田中求之 さんからのコメント
( Monday, July 14, 1997 20:05:35 )

>( myFile = "MacintoshHD:Folder:datafile" というように)

以下の間違いです

( myFile = alias "MacintoshHD:Folder:datafile" というように)



gon さんからのコメント
( Tuesday, July 15, 1997 13:37:08 )

ご回答ありがとうございます。

property myFile1 : alias "MacintoshHD:httpd:Folder:datafile1"
property myFile2 : alias "MacintoshHD:httpd:Folder:datafile2"
property myFile3 : alias "MacintoshHD:httpd:Folder:datafile3"
property myFile4 : alias "MacintoshHD:httpd:Folder:datafile4"
property myFile5 : alias "MacintoshHD:httpd:Folder:datafile5"

のように5つのファイルを読み込もうとしたのですが、うまくいきません。
"Duplicate File..."というエラーが返ってきます。

一つのファイルを読み込んだ時はうまくいきました。読み込むテキストファイルの
データは20〜30行ぐらいなのですが、問題がありますでしょうか。

田中求之 さんからのコメント
( Tuesday, July 15, 1997 18:58:57 )

5つのファイルをどのように読み込もうとなさっていますか?

それぞれを別の変数に読み込みたいということであれば、読み込み部分をハンドラーとして
独立させておいて処理するのがよいと思います。

on readFile(xFile)
  set myRef to open for access xFile
  set xData to read myRef
  close access myRef
  return xData
end readFile

というハンドラーを作っておいて、

set myData1 to readFile(myFile1)
set myData2 to readFile(myFile2)
....
set myData5 to readFile(myFile5)

という感じで処理を行なうことになります。

gon さんからのコメント
( Wednesday, July 16, 1997 15:24:49 )

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

ファイルを読み込むというのはcgiを書く際にサーバーになにか
負担になるような事でもあるんでしょうか。

ご指導の通りやっているのですが、サーバーが必ずフリーズして
しまいます。

田中求之 さんからのコメント
( Wednesday, July 16, 1997 17:45:33 )

ファイルの読み込みがサーバーにかける負担というのは、しれています(影響はあり
ますが)。この会議室などは、言ってみればファイルの読み書きの処理だけでなり
たってますが、特に問題はないですよ。

>ご指導の通りやっているのですが、サーバーが必ずフリーズして
>しまいます。

それは絶対に何かがおかしいですね。AppleScript のバージョンがふるい場合に
PowerMac で read/write が問題を起こすというのがかつてありましたが、少な
くとも漢字Talk 7.5 以降のシステムに付属するものを使用しているかぎり、その
ような問題は起きないはずです。

サーバーのマシン、システム、などの状況はどうなっていますか?

gon さんからのコメント
( Thursday, July 17, 1997 11:09:32 )

AppleScript のバージョンは1.1ですから古くはないですよね。
サーバーのシステムは7.5.3ですからこれも問題ないと思います。

確かに読み込むファイルが一つだけでそのテキストの内容が4行
程度の場合は問題なかったのですが、そのテキストの行数が30行
程度に変更したとたんにだめです。cgiにとばして少しすると
マシンが止まります。

今はcgiの中に変数にいれるテキストの内容をそのままベタで
張り付けているような状況でかなり情けない事になってます。
コンパイルの時にEditorの中で文字化けした日本文でエラーが
出たりでとんでもないことになってしまいました。