たとえば、
procedure TForm1.Button1Click(Sender: TObject);
var
vipper : String;
begin
vipper := ExtractFileName('http://google.com/Sample.jpg');
Edit1.Text := (vipper);
end;
のように記述しますと、
"//google.com/Sample.jpg"のように帰ってきてしまいます。
Sample.jpgのみ取得したいのですが、何か参考になるものはありますでしょうか。
もしくはサンプルコード等を挙げてもらえると幸いです
ヘルプの「文字列処理ルーチン」を見れば、必要十分な関数がそろってる。
・文字列(“http://〜”)にある“/”のうち、最後の“/”の位置を取得。
・その位置の次の位置から最後までの文字列を取得。
でどうでしょう。
ヘルプを見てもよく分かりませんでした。
申し訳ないです。
とりあえず、ポタンを押すと"http://"のみを削除し、
残った"/"を"¥"に変換する方式をとりたいと思います。
igyさんがおっしゃっていた、"最後の/を取得"というのがヘタレなので出来なかったので。。。
最後にお聞きしたいのですが、最後の文字列を取得する際に必要な関数は何なんでしょうか?
>・文字列(“http://〜”)にある“/”のうち、最後の“/”の位置を取得。
LastDelimiter 関数
で、位置を取得できると思います。
>・その位置の次の位置から最後までの文字列を取得。
は、Copy 関数で。
Shellwapi に PathFindFileName があります。
解決しました!
本当にありがとうございます(^^
>PathFindFileName があります。
おや?この関数 URLでも使えるのか。と思ったら、
Memo1.Lines.Add(PathFindFileNameA('http://google.com/'));
の実行結果は、google.com/
つかえね〜(-_-;)
とりあえず、このような質問をまたいつ誰がするともわからないので、乗せておきます
var
MyIndex : integer;
copy1 : string;
copy2 : string;
filepass : string;
begin
MyIndex := LastDelimiter('/',Edit1.Text);
copy1 := Copy( Edit1.Text, MyIndex, 99);
copy2 := StringReplace(copy1,'/','',[]);
filepass := ChangeFileExt(copy2,'');
Edit1.text := filepass;
ツイート | ![]() |