2015年5月20日水曜日

Google Spreadsheetのスクリプトで列のアルファベットと数値の相互変換

Google Apps Script(GAS)を使用して、列のアルファベットを数値に変換したり、その逆を行うスクリプトを作成してみた。
Google Spreadsheetの場合、A列は 0 となる。
⇒A列は 1 でした。。。getValues()で使用していたため、0としてました。。。
 個々の関数は、すべて 0 基準としています。

数値->アルファベット

function ConvertToLetter(iCol) {
  var str = "";
  var iAlpha = 0;
  var iRemainder = 0;
  
  iAlpha = parseInt((iCol / 26), 10);
  iRemainder = iCol - (iAlpha * 26);
  if(iAlpha > 0) {
    str = String.fromCharCode(iAlpha + 64);
  }
  if(iRemainder >= 0) {
    str = str + String.fromCharCode(iRemainder + 65);
  }
  return str;
}

アルファベット->数値

function ConvertToNumber(strCol) {  
  var iNum = 0;
  var temp = 0;
  
  strCol = strCol.toUpperCase();
  for (i = strCol.length - 1; i >= 0; i--) {
    temp = strCol.charCodeAt(i) - 65; // 現在の文字番号;
    if(i != strCol.length - 1) {
      temp = (temp + 1) * Math.pow(26,(i + 1));
    }
    iNum = iNum + temp
  }
  return iNum;
}

サンプル

function sample(){
  var str = ConvertToLetter(0);   // A
  var str2 = ConvertToLetter(2);  // C
  var str3 = ConvertToLetter(5);  // F
  var str4 = ConvertToLetter(6);  // G
  var str5 = ConvertToLetter(11); // L
  var str6 = ConvertToLetter(25); // Z
  var str7 = ConvertToLetter(26); // AA

  var num = ConvertToNumber("A");   // 0
  var num2 = ConvertToNumber("C");  // 2
  var num3 = ConvertToNumber("F");  // 5
  var num4 = ConvertToNumber("G");  // 6
  var num5 = ConvertToNumber("L");  // 11
  var num6 = ConvertToNumber("Z");  // 25
  var num7 = ConvertToNumber("AA"); // 26
  
  return;
}

2010年1月21日木曜日

cabarc.exe と makecab.exe

cabinetファイル(.cab)を Microsoft のライブラリのみで作成しようとする場合、
"Microsoft Cabinet SDK"を使用して作るのが一般的だろうか。

作成する際、2つくらい選択肢があった。
"cabarc.exe" と "makecab.exe"

初めは、"cabarc.exe"を使用していた。
なんでこっちを選んだか。
たぶん、これで圧縮も展開もできたからだと思いますが、経緯は忘れました。。。

ただ、これには問題があって、圧縮時にファイルのタイムスタンプを勝手に書き換えていました
しばらく気付かずに使用していましたが、これは望んでいない動きのため、"makecab.exe"に変更したというわけです。

今後使用する予定のある方、お気を付けください。


また、"cabarc.exe"のヘルプは、extract32.exe同様、
"cabarc > helpfile.txt" などでファイルに出力ができる。
"makecab.exe"は、"makecab.exe /?"でヘルプが表示されます。

以下、cabarc.exeのヘルプ。

----
Microsoft (R) Cabinet Tool - Version 1.00.0601 (03/18/97)
Copyright (c) Microsoft Corp 1996-1997. All rights reserved.

Usage: CABARC [options] command cabfile [@list] [files] [dest_dir]

Commands:
   L   List contents of cabinet (e.g. cabarc l test.cab)
   N   Create new cabinet (e.g. cabarc n test.cab *.c app.mak *.h)
   X   Extract file(s) from cabinet (e.g. cabarc x test.cab foo*.c)

Options:
  -c   Confirm files to be operated on
  -o   When extracting, overwrite without asking for confirmation
  -m   Set compression type [LZX:<15..21>|MSZIP|NONE], (default is MSZIP)
  -p   Preserve path names (absolute paths not allowed)
  -P   Strip specified prefix from files when added
  -r   Recurse into subdirectories when adding files (see -p also)
  -s   Reserve space in cabinet for signing (e.g. -s 6144 reserves 6K bytes)
  -i   Set cabinet set ID when creating cabinets (default is 0)

Notes
-----
When creating a cabinet, the plus sign (+) may be used as a filename
to force a folder boundary; e.g. cabarc n test.cab *.c test.h + *.bmp

When extracting files to disk, the , if provided, must end in
a backslash; e.g. cabarc x test.cab bar*.cpp *.h d:\test\

The -P (strip prefix) option can be used to strip out path information
e.g. cabarc -r -p -P myproj\ a test.cab myproj\balloon\*.*
The -P option can be used multiple times to strip out multiple paths



2009年12月17日木曜日

TestLink

TestLinkについていろいろと調べているので、ここに覚書。(まだ未完成)
ここの記載は、2009/12/17現在の情報で自分が調べた限りのものである。



■TestLinkの日本語版ダウンロード先
1.7.2?から、日本語も標準で提供されている。


・v1.8.0~v1.8.5(最新)
http://sourceforge.net/projects/testlink/files/

・v1.7.xのクリーンパッケージは入手不可?
⇒「TEF有志によるTestLink日本語化プロジェクト」ページ内に、v1.7.3、v1.7.5のリンクがあったが、sourceforgeが表示できず。。。
下記にも記すが、ツール「TestLinkCnvMacro」配布先で、v1.7.5を配布しているようだ。
http://sourceforge.jp/projects/testlinktools/releases?package_id=7520#package-7520

また、クリーンではないが、v1.7.4は、「All in one パッケージ」から入手可能。
http://testlinkjp.org/modules/pukiwiki/?All_In_One_TestLink_JP
⇒実際の配布先はこっち http://sourceforge.jp/projects/testlinkjp/releases/?package_id=6534


■現状?について
現在(2009/12/17)の時点での最新はv1.8.5のようだが、新しすぎてパッチもない。
v1.8.4を本家ではお勧めしているようだが、日本で使用するなら以下のパッチをあてるために、 v1.8.3の利用がお勧めではないだろうか。

「添付ファイルの画像を表示等(patch No14 for Testlink 1.8.3)」
http://sourceforge.jp/ticket/browse.php?group_id=3032&tid=18865

エクセルとの連携ツールとして、「TestLinkCnvMacro」というマクロを含んだエクセルファイルが、以下で配布されている。
http://sourceforge.jp/projects/testlinktools/releases?package_id=7520#package-7520

しかし、このマクロは v1.7.4/v1.7.5 向けになっており、同梱されているv1.7.4/v1.7.5のパッチファイルをTestLink本体に組み込んで使用することが前提となっている。
よって、v1.8.xで組み合わせて使用というのは無理。
このマクロを使用すると、v1.7.4/v1.7.5であれば、
・XLS⇒XML⇒TestLink (インポート)
・TestLink⇒XML⇒XLS (エクスポート)
ができる。
v1.8.xでも、TestLinkへのインポート機能は可能である。

2008年9月6日土曜日

extrac32.exe

extrac32.exe

cabファイルの操作を行うexe。
/h とか /? でもオプションが出なくて困っていたが、ヘルプファイルを吐き出させるコマンドをWebページで見つけた。

以下コマンド
extrac32 > helpfile.txt
すると、実行時のディレクトリルートに helpfile.txt が作成され、以下の内容がテキスト化されている。

Microsoft (R) Cabinet Extraction Tool - Version 5.1.2600.2180
Copyright (c) Microsoft Corporation. All rights reserved..

EXTRACT [/Y] [/A] [/D | /E] [/L dir] cabinet [filename ...]
EXTRACT [/Y] source [newname]
EXTRACT [/Y] /C source destination

cabinet - Cabinet file (contains two or more files).
filename - Name of the file to extract from the cabinet.
Wild cards and multiple filenames (separated by
blanks) may be used.

source - Compressed file (a cabinet with only one file).
newname - New filename to give the extracted file.
If not supplied, the original name is used.

/A Process ALL cabinets. Follows cabinet chain
starting in first cabinet mentioned.
/C Copy source file to destination (to copy from DMF disks).
/D Display cabinet directory (use with filename to avoid extract).
/E Extract (use instead of *.* to extract all files).
/L dir Location to place extracted files (default is current directory).
/Y Do not prompt before overwriting an existing file.
意外と出てこなくて苦労した。