1. Top » 
  2. スポンサー広告 » 
  3. 【Haskell】絶対パスからファイル名だけを取り出す
  4. プログラミング全般 » 
  5. Haskell » 
  6. 【Haskell】絶対パスからファイル名だけを取り出す

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Genre:

【Haskell】絶対パスからファイル名だけを取り出す

ファイル名のリストを取り出せることは前回のことで分かった。
つまり入力ファイル名は、指定することなしにファイルを開くことに応用できる。
残りは、たとえば入力ファイル名がsrc_haskell.txtであれば
出力としてoutput_src_haskell.txt.txtのように、それに対応する結果を出力ファイルに書き出したい。
(うまくやれば拡張子を一つに出来るが、別に気にしなくてもいいかもしれない)

たとえばパス名というのは

d:\taki\program\haskell\src.txt


のような形で取得できる。ここからファイル名src.txtを得るにはどうすればいいか。
とりあえず次のようなやり方を考えた。


  1. ¥マークをスペースに変える
  2. 文字列をスペースで分けてリスト[String]として返す関数wordを通す
  3. リストとして [ ... "haskell", "src.txt"] のようなものを得る
  4. リストをひっくり返すreverseを通す ["src.txt", "haskell", ...]
  5. そのリストの先頭をheadで引っ張ってくる


つまり次のようにすればいい。
データはテスト。

test = "d:\\taki\\program\\haskell\\blog\\src.txt"
main = putStrLn $ head . reverse . words $ split test

split :: String -> String
split str = map yenToSpace test

yenToSpace :: Char -> Char
yenToSpace '\\' = ' '
yenToSpace x = x

これを動かすと次のように出力される。

d:\taki\program\haskell\blog\memo>ghc -o test test.hs

d:\taki\program\haskell\blog\memo>test.exe
src.txt


望み通りファイル名だけを取ってくることができた。





category of Haskell:
【Haskell】とても簡単なHaskellプログラムについて
【Haskell】標準入力(stdin)を読み込むために
【Haskell】結構頻繁に使う関数などの話
【Haskell】高階関数と型の定義について
【Haskell】リストの処理について
【Haskell】コマンドライン引数を得る方法
【Haskell】C言語の構造体のようなものをHaskellで利用する
【Haskell】Haskellを使ってブログに微妙に役立つプログラムを書きたい(Ver.0)
【Haskell】Haskellを使ってブログに微妙に役立つプログラムを書きたい(Ver.1)
【Haskell】コマンドライン引数の取得を活用する。
関連記事
スポンサーサイト

Comment

コメントフォーム
このエントリへコメントを書く
(任意)
(任意)
(任意)
(必須) HTMLタグは使用できません
(任意) ID生成と編集に使用します
(任意) 非公開コメントにする

Page Top

Trackback

Trackback URI
http://parabola0.blog86.fc2.com/tb.php/518-78402e51 この記事にトラックバックする(FC2ブログユーザーのみ)

Page Top

訪問者

お引っこし。 http://parabola.sblog.jp/

プロフィール

parabola0

Author:parabola0
Twitter用ですが…。
プロフィール

最新記事
最新コメント
最新トラックバック
カテゴリ
月別アーカイブ
検索フォーム
リンク

このブログをリンクに追加する

QRコード
QRコード
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。