• ベストアンサー

文字列のなかの最後の文字

TAGOSAKU7の回答

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.5

一通り、考えられるパターンが出揃っているみたいなので、皆さんの発言ついて補足です。 #1.Mizyuさんの方法が、昔ながらの処理のです。ぼくもこの方法がよいと思います。 #2.josyo_mさんの方法と#4.bin-chanさんの方法は、VB6もしくはOffice2000以降の製品の関数だと思いますので、使用については環境によります。(質問に環境を書くようにしましょうね。) #3.promeさんの方法は、すでに存在しているファイルでしか使用できないのでは? もし確実にファイルが存在しているのであれば、FileSystemObject(FSO)を使用してもかまわないと思います。 (いつも述べていますが、インストールされているIEのバージョンによって、FSOは使えません。) そのような限定条件のもとであれば、この場合はFSOを使用してもいいと思います。 (さらに追記で、FSOを使用すべきではないパターンとしては、ルートディレクトリをFSOで参照することです。ルートに存在するフォルダ以下のサブフォルダの数などの情報を得たりする場合があり、負荷がかかる恐れがあります。PGの設計次第ですが・・・)

関連するQ&A

  • 変数内の文字列にある最後の「"」位置を調べたい。

    変数myStrに格納されている文字列に幾つか含まれる文字「"」のうち、最後の「"」が文字列の何文字目に有るか出したいです。 InStr(1,myStr,""") 普通にInstrを使うと最初の文字位置を返してきます。 また「"」は"""になってしまいます。

  • 文字列取得

    '/path1/path2/file1.txt' '/path1/path2/path3/file2.txt' 上記のようなpathがあった場合にファイル名(拡張子なし)の 文字列を取得したいのですがどのように良いでしょうか? 宜しくお願い致します。 awkで$4と指定すれば「file1.txt」の文字列を取得できるのですが パスの長さが定まっていないため$4ではなく最後の文字と指定する 記号はないでしょうか? echo /path1/path2/file1.txt |awk '{FS="/"; print $4}'

  • 秀丸マクロで、一部文字列を変換後クリップボードコピーしたい

    秀丸マクロで、一部文字列を変換後クリップボードコピーしたい 秀丸マクロで、setclipboard filename;とすると、 現在開いているファイルのフルパスを取得してクリップボードにコピーすることができますが、 この際に\を/に変換して、クリップボードコピーしたいと思いますがうまくいきません。 どうすればよいのでしょうか。。 例) filenameで取得した c:\documents and settings\user\my documents\sample.txt というパスを c:/documents and settings/user/my documents/sample.txt のようにしてから、クリップボードコピーしたい。 意味不明でしたら加筆修正しますのでよろしくお願いします。

  • 特定の文字列が一致する行から、文字列を抽出する方法

    ファイルから、特定の文字列を検索し、その文字列に対応する文字列を取得したいのですが、どなたか方法を教えていただけないでしょうか? 処理: test.txt中に以下の文字列が記載されています。 ----- TEST011:FILE00 TEST01:FILE01 TEST02:FILE02 XTEST01:FILE01 XTEST02:FILE02 ----- test.txtから、TEST01に対応する文字列FILE01を取得したいです。 当初、strchrを利用すれば良いかと考えていたのですが、 TEST011の行が先に抽出されてしまい、うまくいきません。 どなたか解決方法を教えていただけないでしょうか。

  • シェルの文字列取得について

    シェル(Bash)の文字列取得についてご教授ください。 文字列:  test(12345) 上記の文字列から"12345"(括弧内の数値部分)を取り出し、変数へ格納する場合、どのように行えばよいのでしょうか? ちなみに1桁だったり2けただったりと数値の桁は変動します。 よろしくお願いします。

  • String変数の文字列の検索方法

    お世話になっております。 String test = AnsiString(dlgOpen->FileName).c_str(); test = ExtractFileName(test); この方法でtestに文字列”test.bin”を取得できました。このときに変数testが”test.bin”かどうかをif文などで判定したいのですが、例えばtestの中で”test.bin”という文字列を検索して合致していたらTRUEを返すような方法を教えて頂けないでしょうか。 どうぞ、よろしくお願い致します。

  • 文字列を特定文字で分割したい

    はじめまして。宜しくお願いします。 現在Access2002のVBAをつかってタイトルのようなことを実現したいと思っています。 Dim a As String Dim b As String という二つの変数を用意して 「C:\Documents and Settings\デスクトップ\test.csv」という文字列が与えられているとき 変数aには「test.csv」を、変数bには「C:\Documents and Settings\デスクトップ\」を 格納しようとしています。 スマートなやり方がわからず、 文字列の右から一文字ずつ比較して行き、何文字目に「¥」が出てくるかをカウントして、right関数とleft関数で分割を行っています。 このような処理を行う場合、なにか適した関数があると思い探しているのですが、 なかなか見つからず、行き詰っています。(そのような関数があるのかも分からず・・) もしもなにかお気づきの方が居られましたら、ご教授宜しくお願いします。

  • 文字列中からファイルパスのみを取得する方法

    テキストファイルからデータを1行ずつ読み取り、 その中にファイルパスがあれば他のファイルに書き出すというロジックを考えています。 文字列は 例えば  include ROOT_PATH."/class/test.txt"; という文字列で、この中から  /class/test.txt という文字列だけを取得したいのです。 現在、拡張子から1文字ずつ前の文字列をチェックしていって、「”」が見つかったらその間の文字列を ファイルパスとしようとしています。 これを1発で行ってくれるような関数等ははないでしょうか?   良いお知恵がありましたらご教授お願いします。

  • 文字列の並び替え

    お世話になっております。 以下、ご指導いただければ幸いです。 カンマで区切られた以下のような文字列があります。 $txt = "佐藤,武田,斉藤,鈴木,内田"; この変数txt内にある文字列を、「武田」と「斉藤」を入れ替えたい(並び替え)と思うのですが、どのようにすれば宜しいでしょうか? (隣り合わせのデータのみの並び替えです) ※並び返したい命令?は、順番の番号にて取得出来る状態です。 (この例の場合で言ったら、「1と2」という感じです) 現在、 $txt_array = explode(",", $txt); などとして、一旦配列にして、for文で繰り返し処理を行いながら、武田と斉藤をそれぞれ別の変数に格納し・・・などと考えていますが、とても非効率のような気がするものの、他の策が見えて来ずに困っています。 以上、お恥ずかしい質問かと思いますが、アドバイスなど頂戴出来れば幸いです。 お忙しいなか恐縮ですが宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • ファイルのフルパス splite?InstrRev?

    お世話になります。 エクセル2003のVBAについての質問なのですが、 ファイルパスを分割して、変数に格納したいと考えております。 具体的には、現在のワークブックのパスである C:\○○○\○○○\ABC\test1\test2.xls というフルパスを「C:\○○○\○○○\ABC\」と「\test1\test2.xls」 に分割して、「\test1\test2.xls」だけを変数に格納して他の箇所に 利用したいのです。 下記を試してみたのですが、これでは、「test2.xls」のみしか取得することができません…。 Sub Sample1() Dim PathName As String, FileName As String, pos As Long pos = InStrRev(ThisWorkbook.Path, "\") FileName = Mid(ThisWorkbook.Path, pos + 1) End Sub 一つ上のフォルダ名を含む「\test1\test2.xls」を取得するにはどうすればいいでしょうか。