CGIで文字列操作
[上に]
[前に]
[次に]
TAK
[E-Mail]
1999/08/19(木) 13:04:03
Takといいます。
CGIスクリプトディレクトリー+ファイル名からファイル名のみを取り出したいのですが どう記述すればよいか教えてください。
$fnameに"c:/temp/test.dat"と入っていた場合に
レングス文1文字ずつ後方から"/"を検索して"/"があるまで変数に
セットすればできそうなのですが..
すみませんが教えてください。
ふじ
1999/08/19(木) 13:26:19
Perlですよね?
なら、
$str =~ /.*\/(.*)/;
とすれば
$1 にファイル名が入ります。
TAK
[E-Mail]
1999/08/19(木) 16:35:20
ふじさん こんにちは
まだよくわからないのですが...たぶん質問の仕方が悪かったと思うので今一度(^^;
例えば$fnameに"c:/temp/test.dat"と入っていた文字列を
"test.dat"の様にしたいだけなんです。
すみません よろしくおねがいします。
葉月
1999/08/19(木) 17:12:59
ふじさんのやりかたでできますよ。。
print $1;
で、test.datが表示されますよ。。
TAK
[E-Mail]
1999/08/19(木) 18:32:22
ふじさん 葉月さんこんにちは
ちょっと人の作成したものをカスタマイズしているのですが
どうもセットされないようなのです(^^;
もうちょっと がんばります(^^;
ふじ
1999/08/19(木) 20:22:09
$fname =~ s/.*\/(.*)/$1/;
で、どう?
$fname にはファイル名のみ残るはず。
TAK
[E-Mail]
1999/08/20(金) 09:35:58
ふじさん たびたびすみませんでした。
>$fname =~ s/.*\/(.*)/$1/;
>で、どう?
結果はなにもセットされていない様です(^^;
でよくわからないのですが...
$fnameにすでに"C:/temp/test.dat"
$org_fileにセットしようとしたら
$org_file=~ s/.*\/(.*)/$fname/;
でよいのでしょうか?
"\/"で"/"を検索しているということですよね?
すみません よろしくおねがいします。
ふじ
1999/08/20(金) 13:55:57
>$org_file=~ s/.*\/(.*)/$fname/;
>でよいのでしょうか?
駄目です(^^;
$var =~ s/match/replace/ は、
「$var の中で match にマッチするものを replace に置き換える。」
という動作をしますので。
$fname の値を変えてしまって良いのなら
$fname =~ s/.*\/(.*)/$1/;
$fname の値はそのままで $org_file にファイル名だけ取り出し
たいのなら、
if($fname =~ /.*\/(.*)/){ $org_file = $1 };
で出来るはずですが。
TAK
[E-Mail]
1999/08/20(金) 14:17:27
[[解決]]
ふじさん こんにちは
おかげさまでセットされるようになりました。(^^)
>$var =~ s/match/replace/ は、
>「$var の中で match にマッチするものを replace に置き換える。」
>という動作をしますので。
で 納得しました。すっきりです。
まえのレスにありました
$fname =~ s/.*\/(.*)/$1/;
はその後に$1に入っているということですね。
てっきり$fnameに入るのかと..(^^;
基本がわかっていない私の面倒をみていただいて
ありがとうございました。m(_ _)m
[上に]
[前に]
[次に]