;;; nt-file.el --- file-related functions ;; ;; Copyright (C) 2005-2009 naoya_t. All Rights Reserved. ;; ;; Author: naoya_t ;; Maintainer: naoya_t ;; Primary distribution site: ;; http://lambdarepos.svnrepository.com/svn/share/lang/elisp/pdicv-mode/trunk ;; ;; Created: 16 Feb 2005 (formerly nt-utils) ;; Last modified: 15 Dec 2005 ;; Version: 1.0 ;; Keywords: read-from-file (provide 'nt-file) ;;; Commentary: ; (read-from-file FNAME FROM LENGTH) ; - ファイル FNAME の、先頭からの位置 FROM から ; LENGTH バイト分を読み取り、文字列として返す。 ; (scan-latest-version PATHNAME-FMT MIN MAX) ; - フォーマット PATHNAME-FMT で指定されたパス名のファイルのうち ; バージョン番号が MIN 以上 MAX 以下の範囲内で最も大きいものを探す。 ; (例) (scan-latest-version "EIJIRO%d.DIC" 50 100) ; - 見つからなければ nil を返す。 ;;; Code: (defun nt:read-from-file (filename read-from read-length) "read a part of file" (save-current-buffer (let ((buffer-name (generate-new-buffer-name "*read-from-file*")) (my-buffer nil)) (generate-new-buffer buffer-name) (set-buffer buffer-name) (insert-file-contents-literally filename nil read-from (+ read-from read-length) nil) ; (setq buffer-read-only t) (setq my-buffer (buffer-substring 1 (+ 1 read-length))) (kill-buffer buffer-name) my-buffer))) (defun nt:scan-latest-version (filename-format min max) (catch 'scan-latest-version (let ((version max)) (while (>= version min) (let ((file (format filename-format version))) (if (file-readable-p file) (throw 'scan-latest-version (list file version)) (setq version (1- version))))) nil))) ;;; nt-file.el ends here