http://〜のパスをExtractFileNameのように出力するには?

解決


lon  2006-04-01 20:33:46  No: 20791

たとえば、
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のみ取得したいのですが、何か参考になるものはありますでしょうか。
もしくはサンプルコード等を挙げてもらえると幸いです


ion  2006-04-01 21:52:15  No: 20792

ヘルプの「文字列処理ルーチン」を見れば、必要十分な関数がそろってる。


igy  2006-04-01 23:02:07  No: 20793

・文字列(“http://〜”)にある“/”のうち、最後の“/”の位置を取得
・その位置の次の位置から最後までの文字列を取得。
でどうでしょう。


lon  2006-04-02 09:37:46  No: 20794

ヘルプを見てもよく分かりませんでした。
申し訳ないです。

とりあえず、ポタンを押すと"http://"のみを削除し、
残った"/"を"¥"に変換する方式をとりたいと思います。

igyさんがおっしゃっていた、"最後の/を取得"というのがヘタレなので出来なかったので。。。

最後にお聞きしたいのですが、最後の文字列を取得する際に必要な関数は何なんでしょうか?


igy  2006-04-02 17:47:04  No: 20795

>・文字列(“http://〜”)にある“/”のうち、最後の“/”の位置を取得
LastDelimiter 関数
で、位置を取得できると思います。


igy  2006-04-02 19:36:34  No: 20796

>・その位置の次の位置から最後までの文字列を取得。
は、Copy 関数で。


Basser  2006-04-03 18:50:39  No: 20797

Shellwapi に PathFindFileName があります。


lon  2006-04-03 19:48:33  No: 20798

解決しました!
本当にありがとうございます(^^


名前なし  2006-04-03 19:48:37  No: 20799

>PathFindFileName があります。
おや?この関数 URLでも使えるのか。と思ったら、
Memo1.Lines.Add(PathFindFileNameA('http://google.com/'));
の実行結果は、google.com/
つかえね〜(-_-;)


lon  2006-04-16 02:40:02  No: 20800

とりあえず、このような質問をまたいつ誰がするともわからないので、乗せておきます

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;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加